From 0d4f7cd29a978594453b102d4a767d64085df29d Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期三, 12 六月 2024 15:34:32 +0800 Subject: [PATCH] 提交【管理后台】-资讯管理相关代码 --- ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/dto/MgtArticleDTO.java | 36 +++ ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/dto/MgtSensitiveWordsQuery.java | 22 + ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java | 72 +++++ ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java | 2 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/Article.java | 10 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/IMemberLevelService.java | 4 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/ArticleStatusEnum.java | 2 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleCommentsService.java | 12 + ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/handler/MyMetaObjectHandler.java | 4 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/vo/MgtSensitiveWordsVO.java | 29 ++ ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtArticleCommentsController.java | 70 +++++ ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/dto/MgtMemberLevelDTO.java | 26 - ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberLevelController.java | 11 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java | 29 ++ ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtSensitiveWordsController.java | 22 + ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/dto/MgtArticleCommentsQuery.java | 26 ++ ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberLevelServiceImpl.java | 8 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/AuditStatusEnum.java | 3 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleCommentsServiceImpl.java | 97 +++++++ ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/ISensitiveWordsService.java | 13 /dev/null | 58 ---- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/dto/MgtMemberLevelDetailDTO.java | 24 ++ ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberPointsServiceImpl.java | 1 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/vo/MgtArticleVO.java | 6 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/ArticleComments.java | 1 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/SensitiveWordsServiceImpl.java | 24 + ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtArticleController.java | 43 +++ ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/vo/MgtArticleCommentsVO.java | 39 +++ 28 files changed, 577 insertions(+), 117 deletions(-) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/ArticleStatusEnum.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/ArticleStatusEnum.java index 3d19109..1529363 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/ArticleStatusEnum.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/ArticleStatusEnum.java @@ -10,7 +10,7 @@ @AllArgsConstructor public enum ArticleStatusEnum { - /*状态 1=待审核 2=已通过 3=已拒绝 4被举报*/ + /*状态 1=待审核 2=已通过 3=已拒绝 */ TO_BE_REVIEWED(1, "待审核"), PASSED(2, "已通过"), diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/AuditStatusEnum.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/AuditStatusEnum.java index fd94d56..78d6e94 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/AuditStatusEnum.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/AuditStatusEnum.java @@ -14,8 +14,7 @@ TO_BE_REVIEWED(1, "待审核"), PASSED(2, "已通过"), - REJECTED(3, "已拒绝"), - REPORTED(4, "被举报"); + REJECTED(3, "已拒绝"); @EnumValue private final int code; @JsonValue diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtArticleCommentsController.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtArticleCommentsController.java new file mode 100644 index 0000000..31b6873 --- /dev/null +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtArticleCommentsController.java @@ -0,0 +1,70 @@ +package com.ruoyi.article.controller.management; + + +import com.ruoyi.article.controller.forepart.dto.ArticleCommentsDTO; +import com.ruoyi.article.controller.management.dto.MgtArticleCommentsQuery; +import com.ruoyi.article.controller.management.vo.MgtArticleCommentsVO; +import com.ruoyi.article.service.IArticleCommentsService; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.page.PageDTO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * <p> + * 资讯评论回复表 前端控制器 + * </p> + * + * @author mitao + * @since 2024-05-16 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/mgt/article-comments") +@Api(value = "管理后台-资讯评论回复相关接口", tags = "管理后台-资讯评论回复相关接口") +public class MgtArticleCommentsController { + + private final IArticleCommentsService articleCommentsService; + + @PostMapping("/delMemberArticleComments") + @ApiOperation(value = "用户端-删除用户评论/回复") + public R delMemberArticleComments(@RequestBody ArticleCommentsDTO articleCommentsDTO) { + articleCommentsService.delMemberArticleComments(articleCommentsDTO); + return R.ok(); + } + + /** + * 查看详情-评论详情 + * + * @param query 资讯评论回复查询对象 + * @return PageDTO<MgtArticleCommentsVO> + */ + @ApiOperation(value = "查看详情-评论详情") + @PostMapping("/page") + public R<PageDTO<MgtArticleCommentsVO>> getArticleCommentsPage( + @Validated @RequestBody MgtArticleCommentsQuery query) { + return R.ok(articleCommentsService.getArticleCommentsPage(query)); + } + + /** + * 删除评论 + * + * @param id 评论id + */ + @ApiOperation("删除评论") + @DeleteMapping("/{id}") + public R<?> delArticleComments( + @ApiParam(name = "id", value = "评论id", required = true) @PathVariable("id") Long id) { + articleCommentsService.delArticleComments(id); + return R.ok(); + } +} diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtArticleController.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtArticleController.java index c5151a6..594b2f0 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtArticleController.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtArticleController.java @@ -1,6 +1,7 @@ package com.ruoyi.article.controller.management; +import com.ruoyi.article.controller.management.dto.MgtArticleDTO; import com.ruoyi.article.controller.management.dto.MgtArticleQuery; import com.ruoyi.article.controller.management.vo.MgtArticleVO; import com.ruoyi.article.service.IArticleService; @@ -8,9 +9,13 @@ import com.ruoyi.common.core.utils.page.PageDTO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -43,5 +48,43 @@ return R.ok(articleService.getArticlePage(query)); } + /** + * 添加/编辑资讯 + * + * @param dto 管理后台-资讯传输对象 + */ + @ApiOperation(value = "添加/编辑资讯") + @PostMapping("/save") + public R<?> saveArticle(@Validated @RequestBody MgtArticleDTO dto) { + articleService.saveArticle(dto); + return R.ok(); + } + + /** + * 处理举报 + * + * @param id 资讯id + */ + @ApiOperation(value = "处理举报") + @PutMapping("/handle-report/{id}") + public R<?> handleReport( + @ApiParam(name = "id", value = "资讯id", required = true) @PathVariable("id") Long id) { + articleService.handleReport(id); + return R.ok(); + } + + /** + * 查看详情 + * + * @param id 资讯id + * @return MgtArticleVO + */ + @ApiOperation(value = "查看详情") + @GetMapping("/detail/{id}") + public R<MgtArticleVO> getDetail( + @ApiParam(name = "id", value = "资讯id", required = true) @PathVariable("id") Long id) { + return R.ok(articleService.getDetail(id)); + } + } diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtSensitiveWordsController.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtSensitiveWordsController.java index 533e27a..91ee21d 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtSensitiveWordsController.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtSensitiveWordsController.java @@ -1,9 +1,17 @@ package com.ruoyi.article.controller.management; +import com.ruoyi.article.controller.management.dto.MgtSensitiveWordsQuery; +import com.ruoyi.article.controller.management.vo.MgtSensitiveWordsVO; import com.ruoyi.article.service.ISensitiveWordsService; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.page.PageDTO; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -16,12 +24,24 @@ * @since 2024-05-16 */ @RestController -@RequestMapping("/sensitive-words") +@RequestMapping("/mgt/sensitive-words") @RequiredArgsConstructor @Api(value = "管理后台-敏感词管理相关接口", tags = "管理后台-敏感词管理相关接口") public class MgtSensitiveWordsController { private final ISensitiveWordsService sensitiveWordsService; + /** + * 获取敏感词列表的分页数据 + * + * @param query 管理后台-敏感词查询对象 + * @return PageDTO<MgtSensitiveWordsVO> + */ + @ApiOperation("获取敏感词列表的分页数据") + @PostMapping("/page") + public R<PageDTO<MgtSensitiveWordsVO>> getSensitiveWordsPage( + @Validated @RequestBody MgtSensitiveWordsQuery query) { + return R.ok(sensitiveWordsService.getSensitiveWordsPage(query)); + } } diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/dto/MgtArticleCommentsQuery.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/dto/MgtArticleCommentsQuery.java new file mode 100644 index 0000000..95eec94 --- /dev/null +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/dto/MgtArticleCommentsQuery.java @@ -0,0 +1,26 @@ +package com.ruoyi.article.controller.management.dto; + +import com.ruoyi.common.core.web.page.BasePage; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import javax.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author mitao + * @date 2024/6/12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "资讯评论回复查询对象", description = "资讯评论回复查询对象") +public class MgtArticleCommentsQuery extends BasePage { + + private static final long serialVersionUID = -5273257330099726767L; + @ApiModelProperty(value = "资讯id") + @NotNull(message = "资讯id不能为空") + private Long articleId; + + @ApiModelProperty(value = "发布人") + private String nickname; +} diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/dto/MgtArticleDTO.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/dto/MgtArticleDTO.java new file mode 100644 index 0000000..9329007 --- /dev/null +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/dto/MgtArticleDTO.java @@ -0,0 +1,36 @@ +package com.ruoyi.article.controller.management.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import javax.validation.constraints.NotBlank; +import lombok.Data; + +/** + * @author mitao + * @date 2024/6/12 + */ +@Data +@ApiModel(value = "管理后台-资讯传输对象", description = "管理后台-资讯传输对象") +public class MgtArticleDTO implements Serializable { + + private static final long serialVersionUID = 5753062638043360603L; + + @ApiModelProperty(value = "资讯id", notes = "更新必传,添加不传") + private Long id; + + @ApiModelProperty(value = "资讯标题") + @NotBlank(message = "资讯标题不能为空") + private String title; + + @ApiModelProperty(value = "资讯内容") + @NotBlank(message = "资讯内容不能为空") + private String content; + + @ApiModelProperty(value = "资讯图片 ['a','b','c','d','e']") + @NotBlank(message = "资讯图片不能为空") + private String images; + + @ApiModelProperty(value = "资讯视频") + private String videoUrl; +} diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/dto/MgtSensitiveWordsQuery.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/dto/MgtSensitiveWordsQuery.java new file mode 100644 index 0000000..a77f9a5 --- /dev/null +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/dto/MgtSensitiveWordsQuery.java @@ -0,0 +1,22 @@ +package com.ruoyi.article.controller.management.dto; + +import com.ruoyi.common.core.web.page.BasePage; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author mitao + * @date 2024/6/12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "管理后台-敏感词查询对象", description = "管理后台-敏感词查询对象") +public class MgtSensitiveWordsQuery extends BasePage { + + private static final long serialVersionUID = 821139236744918828L; + + @ApiModelProperty(value = "敏感词") + private String word; +} diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/vo/MgtArticleCommentsVO.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/vo/MgtArticleCommentsVO.java new file mode 100644 index 0000000..48f2d99 --- /dev/null +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/vo/MgtArticleCommentsVO.java @@ -0,0 +1,39 @@ +package com.ruoyi.article.controller.management.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.time.LocalDateTime; +import lombok.Data; + +/** + * @author mitao + * @date 2024/6/12 + */ +@Data +@ApiModel(value = "资讯评论视图对象", description = "资讯评论视图对象") +public class MgtArticleCommentsVO implements Serializable { + + private static final long serialVersionUID = -1559372355057590070L; + + @ApiModelProperty(value = "资讯评论id") + private Long id; + + @ApiModelProperty(value = "评论id") + private Long replyId; + + @ApiModelProperty(value = "会员id") + private Long memberId; + + @ApiModelProperty(value = "发布人") + private String nickname; + + @ApiModelProperty(value = "联系电话") + private String phone; + + @ApiModelProperty(value = "评论内容") + private String content; + + @ApiModelProperty(value = "发布时间") + private LocalDateTime createTime; +} diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/vo/MgtArticleVO.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/vo/MgtArticleVO.java index e51c9c6..d4d1022 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/vo/MgtArticleVO.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/vo/MgtArticleVO.java @@ -37,7 +37,7 @@ @ApiModelProperty(value = "资讯视频") private String videoUrl; - @ApiModelProperty(value = "状态 1=待审核 2=已通过 3=已拒绝 4被举报") + @ApiModelProperty(value = "状态 1=待审核 2=已通过 3=已拒绝") private AuditStatusEnum status; @ApiModelProperty(value = "举报用户") @@ -72,5 +72,7 @@ @ApiModelProperty(value = "上架状态 上架中 已下架") private ListingStatusEnum listingStatus; - + + @ApiModelProperty(value = "是否被举报") + private Boolean reported; } diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/vo/MgtSensitiveWordsVO.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/vo/MgtSensitiveWordsVO.java new file mode 100644 index 0000000..e2c50f0 --- /dev/null +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/vo/MgtSensitiveWordsVO.java @@ -0,0 +1,29 @@ +package com.ruoyi.article.controller.management.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.time.LocalDateTime; +import lombok.Data; + +/** + * @author mitao + * @date 2024/6/12 + */ +@Data +@ApiModel(value = "管理后台-敏感词视图对象", description = "管理后台-敏感词视图对象") +public class MgtSensitiveWordsVO implements Serializable { + + private static final long serialVersionUID = -4798653916602479053L; + @ApiModelProperty(value = "敏感词id") + private Long id; + + @ApiModelProperty(value = "敏感词") + private String word; + + @ApiModelProperty(value = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime createTime; + +} diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/Article.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/Article.java index 3322a36..06395ae 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/Article.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/Article.java @@ -53,11 +53,11 @@ @ApiModelProperty(value = "资讯视频") private String videoUrl; - @ApiModelProperty(value = "状态 1=待审核 2=已通过 3=已拒绝 4被举报") + @ApiModelProperty(value = "状态 1=待审核 2=已通过 3=已拒绝") private AuditStatusEnum status; - @ApiModelProperty(value = "举报用户") - private String reportBy; + @ApiModelProperty(value = "举报用户id") + private Long reportBy; @ApiModelProperty(value = "举报时间") private LocalDateTime reportedTime; @@ -99,5 +99,7 @@ @ApiModelProperty(value = "上架状态 上架中 已下架") private ListingStatusEnum listingStatus; - + + @ApiModelProperty(value = "是否被举报") + private Boolean reported; } diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/ArticleComments.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/ArticleComments.java index 85e8ae6..67a21cb 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/ArticleComments.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/ArticleComments.java @@ -73,6 +73,7 @@ @ApiModelProperty(value = "1 评论,2 是回复") private Integer type; + @ApiModelProperty(value = "点赞数") private Integer likeCount; diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/handler/MyMetaObjectHandler.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/handler/MyMetaObjectHandler.java index c3b74c9..19b9177 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/handler/MyMetaObjectHandler.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/handler/MyMetaObjectHandler.java @@ -21,7 +21,7 @@ public void insertFill(MetaObject metaObject) { // 获取当前登录用户 Long userId = SecurityUtils.getUserId(); - fillValue("createBy", userId, metaObject); + fillValue("createBy", userId.toString(), metaObject); fillValue("createTime", LocalDateTime.now(), metaObject); } @@ -29,7 +29,7 @@ public void updateFill(MetaObject metaObject) { // 获取当前登录用户 Long userId = SecurityUtils.getUserId(); - fillValue("updateBy", userId, metaObject); + fillValue("updateBy", userId.toString(), metaObject); fillValue("updateTime", LocalDateTime.now(), metaObject); } diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleCommentsService.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleCommentsService.java index 2a6fa4c..da40246 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleCommentsService.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleCommentsService.java @@ -2,7 +2,10 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.article.controller.forepart.dto.ArticleCommentsDTO; +import com.ruoyi.article.controller.management.dto.MgtArticleCommentsQuery; +import com.ruoyi.article.controller.management.vo.MgtArticleCommentsVO; import com.ruoyi.article.domain.ArticleComments; +import com.ruoyi.common.core.utils.page.PageDTO; /** * <p> @@ -18,4 +21,13 @@ void delMemberArticleComments(ArticleCommentsDTO articleCommentsDTO); + /** + * 查看详情-评论详情 + * + * @param query 资讯评论回复查询对象 + * @return PageDTO<MgtArticleCommentsVO> + */ + PageDTO<MgtArticleCommentsVO> getArticleCommentsPage(MgtArticleCommentsQuery query); + + void delArticleComments(Long id); } diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java index 5926423..e493674 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java @@ -4,6 +4,7 @@ import com.ruoyi.article.controller.forepart.dto.ArticleDTO; import com.ruoyi.article.controller.forepart.vo.ArticleCommentsVO; import com.ruoyi.article.controller.forepart.vo.ArticleVO; +import com.ruoyi.article.controller.management.dto.MgtArticleDTO; import com.ruoyi.article.controller.management.dto.MgtArticleQuery; import com.ruoyi.article.controller.management.vo.MgtArticleVO; import com.ruoyi.article.domain.Article; @@ -32,5 +33,33 @@ PageDTO<ArticleCommentsVO> getArticleCommentsList(ArticleDTO articleDTO); void getReport(ArticleDTO articleDTO); + /** + * 获取资讯列表的分页数据 + * + * @param query 资讯管理查询条件 + * @return PageDTO<ArticleVO> + */ PageDTO<MgtArticleVO> getArticlePage(MgtArticleQuery query); + + /** + * "添加/编辑资讯 + * + * @param dto 管理后台-资讯传输对象 + */ + void saveArticle(MgtArticleDTO dto); + + /** + * 处理举报 + * + * @param id 资讯id + */ + void handleReport(Long id); + + /** + * 查看详情 + * + * @param id 资讯id + * @return MgtArticleVO + */ + MgtArticleVO getDetail(Long id); } diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/ISensitiveWordsService.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/ISensitiveWordsService.java index c46c154..5ebac41 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/ISensitiveWordsService.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/ISensitiveWordsService.java @@ -1,12 +1,14 @@ package com.ruoyi.article.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.article.controller.management.dto.MgtSensitiveWordsQuery; +import com.ruoyi.article.controller.management.vo.MgtSensitiveWordsVO; import com.ruoyi.article.domain.SensitiveWords; +import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.system.api.domain.dto.judgeSensitiveWordsDTO; import com.ruoyi.system.api.domain.vo.judgeSensitiveWordsVO; -import org.springframework.web.bind.annotation.RequestBody; - import java.util.List; +import org.springframework.web.bind.annotation.RequestBody; /** * <p> @@ -21,4 +23,11 @@ judgeSensitiveWordsVO judgeSensitiveWordsList(@RequestBody judgeSensitiveWordsDTO SensitiveWordsDTO); + /** + * 获取敏感词列表的分页数据 + * + * @param query 管理后台-敏感词查询对象 + * @return PageDTO<MgtSensitiveWordsVO> + */ + PageDTO<MgtSensitiveWordsVO> getSensitiveWordsPage(MgtSensitiveWordsQuery query); } diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleCommentsServiceImpl.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleCommentsServiceImpl.java index ba9e375..7d6996b 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleCommentsServiceImpl.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleCommentsServiceImpl.java @@ -1,16 +1,31 @@ package com.ruoyi.article.service.impl; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.article.controller.forepart.dto.ArticleCommentsDTO; +import com.ruoyi.article.controller.management.dto.MgtArticleCommentsQuery; +import com.ruoyi.article.controller.management.vo.MgtArticleCommentsVO; import com.ruoyi.article.domain.Article; import com.ruoyi.article.domain.ArticleComments; -import com.ruoyi.article.controller.forepart.dto.ArticleCommentsDTO; import com.ruoyi.article.mapper.ArticleCommentsMapper; import com.ruoyi.article.mapper.ArticleMapper; import com.ruoyi.article.service.IArticleCommentsService; +import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.exception.ServiceException; -import org.springframework.stereotype.Service; - +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.page.PageDTO; +import com.ruoyi.system.api.domain.Member; +import com.ruoyi.system.api.domain.dto.MemberDTO; +import com.ruoyi.system.api.feignClient.MemberClient; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; import javax.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; /** * <p> @@ -26,7 +41,8 @@ @Resource private ArticleMapper articleMapper; - + @Resource + private MemberClient memberClient; @Override public void saveMemberArticleComments(ArticleCommentsDTO articleCommentsDTO) { ArticleComments articleComments=new ArticleComments(); @@ -65,4 +81,77 @@ this.removeById(articleCommentsDTO.getId()); } + + /** + * 查看详情-评论详情 + * + * @param query 资讯评论回复查询对象 + * @return PageDTO<MgtArticleCommentsVO> + */ + @Override + public PageDTO<MgtArticleCommentsVO> getArticleCommentsPage(MgtArticleCommentsQuery query) { + PageDTO<MgtArticleCommentsVO> result; + Set<Long> memberIdSet = null; + if (StringUtils.isNotBlank(query.getNickname())) { + MemberDTO memberDTO = new MemberDTO(); + memberDTO.setNickname(query.getNickname()); + List<Member> data = memberClient.getMemberListByCondition(memberDTO, + SecurityConstants.INNER).getData(); + if (StringUtils.isNotEmpty(data)) { + memberIdSet = data.stream().map(Member::getId) + .collect(Collectors.toSet()); + } + } + Page<ArticleComments> page = this.lambdaQuery() + .eq(ArticleComments::getArticleId, query.getArticleId()) + .in(StringUtils.isNotEmpty(memberIdSet), ArticleComments::getMemberId, memberIdSet) + .page(new Page<>(query.getPageCurr(), query.getPageSize())); + if (StringUtils.isEmpty(page.getRecords())) { + result = PageDTO.empty(page); + } else { + PageDTO<MgtArticleCommentsVO> pageVO = PageDTO.of(page, + MgtArticleCommentsVO.class);// 获取会员信息 + Set<Long> memIdSet = pageVO.getList().stream().map(MgtArticleCommentsVO::getMemberId) + .collect(Collectors.toSet()); + List<Member> memberList = memberClient.getMemberListByIds(memIdSet, + SecurityConstants.INNER).getData(); + Map<Long, Member> memberMap = memberList.stream() + .collect(Collectors.toMap(Member::getId, Function.identity())); + pageVO.getList().forEach(item -> { + Member member = memberMap.get(item.getMemberId()); + if (StringUtils.isNotNull(member)) { + item.setNickname(member.getNickname()); + item.setPhone(member.getPhone()); + } + }); + result = pageVO; + } + + return result; + } + + @Override + @Transactional(propagation = Propagation.REQUIRES_NEW) + public void delArticleComments(Long id) { + ArticleComments articleComments = this.getById(id); + if (StringUtils.isNull(articleComments)) { + throw new ServiceException("评论不存在"); + } + // 查询资讯 + Article article = articleMapper.selectById(articleComments.getArticleId()); + + if (articleComments.getType() == 2) { + this.removeById(id); + article.setCommentCount(Math.max(article.getCommentCount() - 1, 0)); + } else if (articleComments.getType() == 1) { + List<ArticleComments> list = this.lambdaQuery().eq(ArticleComments::getReplyId, id) + .list(); + List<Long> commentsIds = list.stream().map(ArticleComments::getId) + .collect(Collectors.toList()); + commentsIds.add(articleComments.getId()); + this.removeByIds(commentsIds); + article.setCommentCount(Math.max((article.getCommentCount() - list.size()), 0)); + } + articleMapper.updateById(article); + } } diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java index 1552bc7..4e43392 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java @@ -8,6 +8,7 @@ import com.ruoyi.article.controller.forepart.dto.ArticleDTO; import com.ruoyi.article.controller.forepart.vo.ArticleCommentsVO; import com.ruoyi.article.controller.forepart.vo.ArticleVO; +import com.ruoyi.article.controller.management.dto.MgtArticleDTO; import com.ruoyi.article.controller.management.dto.MgtArticleQuery; import com.ruoyi.article.controller.management.vo.MgtArticleVO; import com.ruoyi.article.domain.Article; @@ -23,8 +24,9 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.enums.ArticleTypeEnum; import com.ruoyi.common.core.enums.AuditStatusEnum; +import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.common.core.utils.bean.BeanUtils; +import com.ruoyi.common.core.utils.page.BeanUtils; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.system.api.domain.Member; import com.ruoyi.system.api.domain.SysUser; @@ -156,10 +158,8 @@ @Override public ArticleVO getMemberArticleInfo(ArticleDTO articleDTO) { Article article=this.getById(articleDTO.getId()); - ArticleVO articleVO=new ArticleVO(); - - BeanUtils.copyProperties(article, articleVO); - + ArticleVO articleVO = BeanUtils.copyBean(article, + ArticleVO.class); R<Member> membeOne = memberClient.getMembeOne(articleVO.getMemberId(), SecurityConstants.INNER); Member data = membeOne.getData(); @@ -278,11 +278,18 @@ R<Member> membeOne = memberClient.getMembeOne(articleDTO.getMemberId(), SecurityConstants.INNER); Member data = membeOne.getData(); - article.setReportBy(data.getNickname()); + article.setReportBy(data.getId()); article.setReportedTime(LocalDateTime.now()); + article.setReported(Boolean.TRUE); this.saveOrUpdate(article); } + /** + * 获取资讯列表的分页数据 + * + * @param query 资讯管理查询条件 + * @return PageDTO<ArticleVO> + */ @Override public PageDTO<MgtArticleVO> getArticlePage(MgtArticleQuery query) { // 构建查询条件 @@ -372,4 +379,57 @@ } return pageVO; } + + /** + * "添加/编辑资讯 + * + * @param dto 管理后台-资讯传输对象 + */ + @Override + public void saveArticle(MgtArticleDTO dto) { + Article article = BeanUtils.copyBean(dto, Article.class); + if (StringUtils.isNull(article.getId())) { + article.setStatus(AuditStatusEnum.PASSED); + this.save(article); + } else { + Article articleById = this.getById(article.getId()); + if (StringUtils.isNull(articleById)) { + throw new ServiceException("资讯不存在"); + } + this.updateById(article); + } + } + + /** + * 处理举报 + * + * @param id 资讯id + */ + @Override + public void handleReport(Long id) { + Article article = this.getById(id); + if (StringUtils.isNull(article)) { + throw new ServiceException("资讯不存在"); + } + if (Boolean.FALSE.equals(article.getReported())) { + throw new ServiceException("该资讯未举报"); + } + article.setReported(Boolean.FALSE); + this.updateById(article); + } + + /** + * 查看详情 + * + * @param id 资讯id + * @return MgtArticleVO + */ + @Override + public MgtArticleVO getDetail(Long id) { + Article article = this.getById(id); + if (StringUtils.isNull(article)) { + throw new ServiceException("资讯不存在"); + } + return BeanUtils.copyBean(article, MgtArticleVO.class); + } } diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/SensitiveWordsServiceImpl.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/SensitiveWordsServiceImpl.java index b176bc9..1db9697 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/SensitiveWordsServiceImpl.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/SensitiveWordsServiceImpl.java @@ -3,18 +3,17 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.article.controller.management.dto.MgtSensitiveWordsQuery; +import com.ruoyi.article.controller.management.vo.MgtSensitiveWordsVO; import com.ruoyi.article.domain.SensitiveWords; import com.ruoyi.article.mapper.SensitiveWordsMapper; import com.ruoyi.article.service.ISensitiveWordsService; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.regex.Pattern; -import javax.annotation.Resource; - +import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.system.api.domain.dto.judgeSensitiveWordsDTO; import com.ruoyi.system.api.domain.vo.judgeSensitiveWordsVO; +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Pattern; import org.springframework.stereotype.Service; /** @@ -55,5 +54,14 @@ return SensitiveWordsVO; } - + /** + * 获取敏感词列表的分页数据 + * + * @param query 管理后台-敏感词查询对象 + * @return PageDTO<MgtSensitiveWordsVO> + */ + @Override + public PageDTO<MgtSensitiveWordsVO> getSensitiveWordsPage(MgtSensitiveWordsQuery query) { + return null; + } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberAddressController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberAddressController.java deleted file mode 100644 index bea778f..0000000 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberAddressController.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.ruoyi.member.controller.management; - - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.security.annotation.InnerAuth; -import com.ruoyi.member.service.IMemberAddressService; -import com.ruoyi.system.api.domain.MemberAddress; -import io.swagger.annotations.ApiModelProperty; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * <p> - * 会员地址表 前端控制器 - * </p> - * - * @author mitao - * @since 2024-05-16 - */ -@RestController -@RequestMapping("/mgt/member-address") -public class MgtMemberAddressController { - - /** - * 获取当前商品信息 - */ - - @ApiModelProperty - private IMemberAddressService iMemberAddressService; - - - @PostMapping("/getMemberAddressOne") - @ResponseBody - @InnerAuth - public R<MemberAddress> getMemberAddressOne(@RequestBody Integer userId) { - LambdaQueryWrapper<MemberAddress> wrapper2 = Wrappers.lambdaQuery(); - wrapper2.eq(MemberAddress::getMemberId, userId); - wrapper2.eq(MemberAddress::getDelFlag, 0); - wrapper2.eq(MemberAddress::getIsDefault, 2); - MemberAddress memberAddress = iMemberAddressService.getOne(wrapper2); - if (memberAddress == null) { - LambdaQueryWrapper<MemberAddress> wrapper = Wrappers.lambdaQuery(); - wrapper.eq(MemberAddress::getMemberId, userId); - wrapper.eq(MemberAddress::getDelFlag, 0); - wrapper.last("limit 1"); - memberAddress = iMemberAddressService.getOne(wrapper2); - } - return R.ok(memberAddress); - - } - - -} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java index c58bd1d..5532c84 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java @@ -7,6 +7,7 @@ import com.ruoyi.member.controller.management.vo.MgtMemberPointsVO; import com.ruoyi.member.controller.management.vo.MgtMemberVO; import com.ruoyi.member.service.IMemberService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; @@ -24,6 +25,7 @@ @RestController @RequestMapping("/mgt/member") @RequiredArgsConstructor +@Api(value = "管理后台-会员管理相关接口", tags = "管理后台-会员管理相关接口") public class MgtMemberController { private final IMemberService memberService; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberLevelController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberLevelController.java index adbcac7..8ac109d 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberLevelController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberLevelController.java @@ -5,9 +5,9 @@ import com.ruoyi.member.controller.management.dto.MgtMemberLevelDTO; import com.ruoyi.member.controller.management.vo.MgtMemberLevelVO; import com.ruoyi.member.service.IMemberLevelService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import java.util.List; -import javax.validation.constraints.NotEmpty; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; @@ -24,10 +24,10 @@ * @author mitao * @since 2024-05-16 */ -@Validated @RestController @RequestMapping("/mgt/member-level") @RequiredArgsConstructor +@Api(value = "管理后台-会员等级相关接口", tags = "管理后台-会员等级相关接口") public class MgtMemberLevelController { private final IMemberLevelService memberLevelService; @@ -46,13 +46,12 @@ /** * 保存会员等级配置 * - * @param memberLevelDTOList 会员等级配置列表 + * @param dto 会员等级配置列表 */ @ApiOperation("保存会员等级配置") @PostMapping("/save") - public R<?> saveOrUpdateMemberLevel( - @RequestBody @NotEmpty(message = "会员等级不能为空") List<MgtMemberLevelDTO> memberLevelDTOList) { - memberLevelService.saveOrUpdateMemberLevel(memberLevelDTOList); + public R<?> saveOrUpdateMemberLevel(@Validated @RequestBody MgtMemberLevelDTO dto) { + memberLevelService.saveOrUpdateMemberLevel(dto); return R.ok(); } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/dto/MgtMemberLevelDTO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/dto/MgtMemberLevelDTO.java index beef6db..3f13a83 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/dto/MgtMemberLevelDTO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/dto/MgtMemberLevelDTO.java @@ -2,23 +2,19 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.math.BigDecimal; -import javax.validation.constraints.NotNull; +import java.util.List; +import javax.validation.Valid; import lombok.Data; +/** + * @author mitao + * @date 2024/6/12 + */ @Data -@ApiModel("会员等级数据传输对象对象") -public class MgtMemberLevelDTO implements Serializable { +@ApiModel("会员等级数据传输对象") +public class MgtMemberLevelDTO { - private static final long serialVersionUID = 841295965476674650L; - - @ApiModelProperty(value = "会员等级") - @NotNull(message = "会员等级不能为空") - private Integer level; - - @ApiModelProperty(value = "累计消费") - @NotNull(message = "累计消费不能为空") - private BigDecimal cumulativeConsumption; - + @ApiModelProperty("会员等级列表") + @Valid + List<MgtMemberLevelDetailDTO> memberLevelDTOList; } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/dto/MgtMemberLevelDetailDTO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/dto/MgtMemberLevelDetailDTO.java new file mode 100644 index 0000000..363e155 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/dto/MgtMemberLevelDetailDTO.java @@ -0,0 +1,24 @@ +package com.ruoyi.member.controller.management.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.math.BigDecimal; +import javax.validation.constraints.NotNull; +import lombok.Data; + +@Data +@ApiModel("会员等级数据传输对象对象") +public class MgtMemberLevelDetailDTO implements Serializable { + + private static final long serialVersionUID = 841295965476674650L; + + @ApiModelProperty(value = "会员等级") + @NotNull(message = "会员等级不能为空") + private Integer level; + + @ApiModelProperty(value = "累计消费") + @NotNull(message = "累计消费不能为空") + private BigDecimal cumulativeConsumption; + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/IMemberLevelService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/IMemberLevelService.java index 900f23e..6a93b72 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/IMemberLevelService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/IMemberLevelService.java @@ -26,7 +26,7 @@ /** * 保存会员等级配置 * - * @param memberLevelDTOList 会员等级配置列表 + * @param dto 会员等级配置列表 */ - void saveOrUpdateMemberLevel(List<MgtMemberLevelDTO> memberLevelDTOList); + void saveOrUpdateMemberLevel(MgtMemberLevelDTO dto); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberLevelServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberLevelServiceImpl.java index 352b823..b0f1e51 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberLevelServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberLevelServiceImpl.java @@ -11,7 +11,6 @@ import com.ruoyi.member.mapper.MemberLevelMapper; import com.ruoyi.member.mapper.MemberMapper; import com.ruoyi.member.service.IMemberLevelService; -import com.ruoyi.member.service.IMemberService; import com.ruoyi.member.service.async.AsyncMethodService; import com.ruoyi.system.api.domain.Member; import java.util.List; @@ -66,12 +65,13 @@ /** * 保存会员等级配置 * - * @param memberLevelDTOList 会员等级配置列表 + * @param dto 会员等级配置列表 */ @Override @Transactional(propagation = Propagation.REQUIRES_NEW) - public void saveOrUpdateMemberLevel(List<MgtMemberLevelDTO> memberLevelDTOList) { - List<MemberLevel> memberLevels = BeanUtils.copyList(memberLevelDTOList, MemberLevel.class); + public void saveOrUpdateMemberLevel(MgtMemberLevelDTO dto) { + List<MemberLevel> memberLevels = BeanUtils.copyList(dto.getMemberLevelDTOList(), + MemberLevel.class); this.saveOrUpdateBatch(memberLevels); asyncMethodService.handleMemberLevel(memberLevels); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberPointsServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberPointsServiceImpl.java index 05e3d6d..c3d2409 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberPointsServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberPointsServiceImpl.java @@ -64,6 +64,7 @@ .eq(StringUtils.isNotNull(query.getPointsStatus()), MemberPoints::getPointsStatus, query.getPointsStatus()) .in(StringUtils.isNotEmpty(memberIdSet), MemberPoints::getMemberId, memberIdSet) + .orderByDesc(MemberPoints::getCreateTime) .page(new Page<>(query.getPageCurr(), query.getPageSize())); if (StringUtils.isEmpty(page.getRecords())) { return PageDTO.empty(page); -- Gitblit v1.7.1