From be2ee905df0aa0f7da3edaa2ef2f96926b1079f0 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Fri, 11 Aug 2023 23:49:20 +0800 Subject: [PATCH] =?UTF-8?q?code=20review=EF=BC=9A=E7=A7=AF=E5=88=86?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E7=9A=84=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/member/api/user/MemberUserApi.java | 4 +- .../member/api/user/MemberUserApiImpl.java | 2 +- .../point/MemberPointConfigController.java | 1 + .../point/MemberPointRecordController.java | 44 +++++------- .../vo/config/MemberPointConfigBaseVO.java | 12 ++-- .../vo/config/MemberPointConfigRespVO.java | 4 ++ .../vo/recrod/MemberPointRecordBaseVO.java | 56 --------------- .../vo/recrod/MemberPointRecordPageReqVO.java | 18 ++--- .../vo/recrod/MemberPointRecordRespVO.java | 49 +++++++++++-- .../signin/MemberSignInConfigController.java | 29 ++++---- .../signin/MemberSignInRecordController.java | 50 +++++-------- .../signin/vo/MemberSignInRecordBaseVO.java | 22 ------ .../vo/MemberSignInRecordCreateReqVO.java | 14 ---- .../signin/vo/MemberSignInRecordRespVO.java | 25 ------- .../vo/MemberSignInRecordUpdateReqVO.java | 20 ------ .../MemberSignInConfigBaseVO.java | 12 ++-- .../MemberSignInConfigCreateReqVO.java | 2 +- .../MemberSignInConfigRespVO.java | 2 +- .../MemberSignInConfigUpdateReqVO.java | 4 +- .../MemberSignInRecordPageReqVO.java | 12 ++-- .../vo/record/MemberSignInRecordRespVO.java | 30 ++++++++ .../point/MemberPointConfigConvert.java | 1 - .../point/MemberPointRecordConvert.java | 70 +++---------------- .../signin/MemberSignInConfigConvert.java | 9 +-- .../signin/MemberSignInRecordConvert.java | 69 ++++-------------- .../dataobject/point/MemberPointRecordDO.java | 14 ++-- .../signin/MemberSignInConfigDO.java | 5 +- .../mysql/point/MemberPointRecordMapper.java | 7 +- .../signin/MemberSignInConfigMapper.java | 19 ++--- .../signin/MemberSignInRecordMapper.java | 8 ++- .../point/MemberPointRecordServiceImpl.java | 23 +++++- .../signin/MemberSignInConfigService.java | 10 +-- .../signin/MemberSignInConfigServiceImpl.java | 61 ++++++++-------- .../signin/MemberSignInRecordService.java | 5 +- .../signin/MemberSignInRecordServiceImpl.java | 31 +++++--- .../src/main/resources/application-local.yaml | 6 +- 36 files changed, 293 insertions(+), 457 deletions(-) delete mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/recrod/MemberPointRecordBaseVO.java delete mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordBaseVO.java delete mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordCreateReqVO.java delete mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordRespVO.java delete mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordUpdateReqVO.java rename yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/{ => config}/MemberSignInConfigBaseVO.java (52%) rename yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/{ => config}/MemberSignInConfigCreateReqVO.java (97%) rename yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/{ => config}/MemberSignInConfigRespVO.java (98%) rename yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/{ => config}/MemberSignInConfigUpdateReqVO.java (94%) rename yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/{ => record}/MemberSignInRecordPageReqVO.java (79%) create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/record/MemberSignInRecordRespVO.java diff --git a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApi.java b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApi.java index 6cbb781bf..5743493e3 100644 --- a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApi.java +++ b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApi.java @@ -29,7 +29,7 @@ public interface MemberUserApi { * @param ids 用户编号的数组 * @return 用户信息们 */ - List getUsers(Collection ids); + List getUserList(Collection ids); /** * 获得会员用户 Map @@ -38,7 +38,7 @@ public interface MemberUserApi { * @return 会员用户 Map */ default Map getUserMap(Collection ids) { - return convertMap(getUsers(ids), MemberUserRespDTO::getId); + return convertMap(getUserList(ids), MemberUserRespDTO::getId); } /** diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApiImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApiImpl.java index 37aee217e..5d0aac858 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApiImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApiImpl.java @@ -30,7 +30,7 @@ public class MemberUserApiImpl implements MemberUserApi { } @Override - public List getUsers(Collection ids) { + public List getUserList(Collection ids) { return UserConvert.INSTANCE.convertList2(userService.getUserList(ids)); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/MemberPointConfigController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/MemberPointConfigController.java index 3cebd62c9..cbacb5392 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/MemberPointConfigController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/MemberPointConfigController.java @@ -17,6 +17,7 @@ import javax.validation.Valid; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +// TODO @xiaqing:url 使用 member 作为前缀 @Tag(name = "管理后台 - 会员积分设置") @RestController @RequestMapping("/point/config") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/MemberPointRecordController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/MemberPointRecordController.java index 7745599bf..91c0f8bf7 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/MemberPointRecordController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/MemberPointRecordController.java @@ -8,24 +8,24 @@ import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPoi import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPointRecordRespVO; import cn.iocoder.yudao.module.member.convert.point.MemberPointRecordConvert; import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointRecordDO; -import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO; import cn.iocoder.yudao.module.member.service.point.MemberPointRecordService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; -import org.apache.commons.lang3.StringUtils; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.validation.Valid; - import java.util.List; -import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; +// TODO @xiaqing:url 使用 member 作为前缀 @Tag(name = "管理后台 - 用户积分记录") @RestController @RequestMapping("/point/record") @@ -33,35 +33,25 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; public class MemberPointRecordController { @Resource - private MemberPointRecordService recordService; + private MemberPointRecordService pointRecordService; + @Resource - MemberUserApi memberUserApi; + private MemberUserApi memberUserApi; @GetMapping("/page") @Operation(summary = "获得用户积分记录分页") @PreAuthorize("@ss.hasPermission('point:record:query')") - public CommonResult > getRecordPage(@Valid MemberPointRecordPageReqVO pageVO) { - //根据用户昵称查询出用户ids - List userIds = null; - if (StringUtils.isNotBlank(pageVO.getNickName())) { - List users = memberUserApi.getUserListByNickname(pageVO.getNickName()); - //如果查询用户结果为空直接返回无需继续查询 - if (CollectionUtils.isEmpty(users)) { - return success(new PageResult <>()); - } - userIds=users.stream().map(user->user.getId()).collect(Collectors.toList()); - pageVO.setUserIds(userIds); + public CommonResult> getRecordPage(@Valid MemberPointRecordPageReqVO pageVO) { + // 执行分页查询 + PageResult pageResult = pointRecordService.getRecordPage(pageVO); + if (CollectionUtils.isEmpty(pageResult.getList())) { + return success(PageResult.empty(pageResult.getTotal())); } - PageResult pageResult = recordService.getRecordPage(pageVO); - //根据查询的userId转换成nickName - List result = pageResult.getList(); - List users = null; - if (!CollectionUtils.isEmpty(result)) { - List ids = result.stream().map(user -> user.getUserId()).collect(Collectors.toList()); - users = memberUserApi.getUsers(ids); - } - return success(MemberPointRecordConvert.INSTANCE.convertPage(pageResult,users)); + // 拼接结果返回 + List users = memberUserApi.getUserList( + convertSet(pageResult.getList(), MemberPointRecordDO::getUserId)); + return success(MemberPointRecordConvert.INSTANCE.convertPage(pageResult, users)); } } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/config/MemberPointConfigBaseVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/config/MemberPointConfigBaseVO.java index 1ab1d5a3f..8d67dd19a 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/config/MemberPointConfigBaseVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/config/MemberPointConfigBaseVO.java @@ -3,8 +3,6 @@ package cn.iocoder.yudao.module.member.controller.admin.point.vo.config; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import java.math.BigDecimal; - /** * 会员积分配置 Base VO,提供给添加、修改、详细的子 VO 使用 * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 @@ -12,18 +10,18 @@ import java.math.BigDecimal; @Data public class MemberPointConfigBaseVO { - private Long id; + // TODO @xiaqing:参数校验注解 - @Schema(description = "积分抵扣开关", required = true, example = "true") + @Schema(description = "积分抵扣开关", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") private Boolean tradeDeductEnable; - @Schema(description = "积分抵扣,单位:分", example = "13506") + @Schema(description = "积分抵扣,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "13506") private Integer tradeDeductUnitPrice; - @Schema(description = "积分抵扣最大值", example = "32428") + @Schema(description = "积分抵扣最大值", requiredMode = Schema.RequiredMode.REQUIRED, example = "32428") private Integer tradeDeductMaxPrice; - @Schema(description = "1 元赠送多少分") + @Schema(description = "1 元赠送多少分", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer tradeGivePoint; } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/config/MemberPointConfigRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/config/MemberPointConfigRespVO.java index 36ace83e7..7b5125d1c 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/config/MemberPointConfigRespVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/config/MemberPointConfigRespVO.java @@ -10,4 +10,8 @@ import lombok.ToString; @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class MemberPointConfigRespVO extends MemberPointConfigBaseVO { + + @Schema(description = "自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/recrod/MemberPointRecordBaseVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/recrod/MemberPointRecordBaseVO.java deleted file mode 100644 index bae11b281..000000000 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/recrod/MemberPointRecordBaseVO.java +++ /dev/null @@ -1,56 +0,0 @@ -package cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; - -import java.time.LocalDateTime; -import javax.validation.constraints.*; -import org.springframework.format.annotation.DateTimeFormat; - -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; - -/** - * 用户积分记录 Base VO,提供给添加、修改、详细的子 VO 使用 - * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 - */ -@Data -public class MemberPointRecordBaseVO { - - @Schema(description = "业务编码", example = "22706") - @NotNull(message = "业务编码不能为空") - private String bizId; - - @Schema(description = "业务类型", example = "1") - @NotNull(message = "业务类型不能为空") - private String bizType; - - @Schema(description = "积分标题") - @NotNull(message = "积分标题不能为空") - private String title; - - @Schema(description = "积分描述", example = "你猜") - private String description; - - @Schema(description = "积分") - @NotNull(message = "操作积分不能为空") - private Integer point; - - @Schema(description = "变动后的积分", requiredMode = Schema.RequiredMode.REQUIRED) -// @NotNull(message = "变动后的积分不能为空") - private Integer totalPoint; - - @Schema(description = "状态:1-订单创建,2-冻结期,3-完成,4-失效(订单退款) ", example = "1") - @NotNull(message = "积分状态不能为空") - private Integer status; - - @Schema(description = "冻结时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - @NotNull(message = "冻结时间不能为空") - private LocalDateTime freezingTime; - - @Schema(description = "解冻时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - @NotNull(message = "解冻时间不能为空") - private LocalDateTime thawingTime; - -} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/recrod/MemberPointRecordPageReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/recrod/MemberPointRecordPageReqVO.java index 3f24ec5b7..1e46bfc2b 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/recrod/MemberPointRecordPageReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/recrod/MemberPointRecordPageReqVO.java @@ -1,10 +1,10 @@ package cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod; -import lombok.*; -import io.swagger.v3.oas.annotations.media.Schema; import cn.iocoder.yudao.framework.common.pojo.PageParam; - -import java.util.List; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; @Schema(description = "管理后台 - 用户积分记录分页 Request VO") @Data @@ -13,19 +13,15 @@ import java.util.List; public class MemberPointRecordPageReqVO extends PageParam { @Schema(description = "用户昵称", example = "张三") - private String nickName; - - //用户id集合,用户将nickName查询转换成user_ids查询 - private List userIds; + private String nickname; @Schema(description = "业务类型", example = "1") private String bizType; - @Schema(description = "积分标题") + @Schema(description = "积分标题", example = "呵呵") private String title; - @Schema(description = "状态:1-订单创建,2-冻结期,3-完成,4-失效(订单退款) ", example = "1") + @Schema(description = "积分状态", example = "1") private Integer status; - } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/recrod/MemberPointRecordRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/recrod/MemberPointRecordRespVO.java index 851fc9396..cc5de30e5 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/recrod/MemberPointRecordRespVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/recrod/MemberPointRecordRespVO.java @@ -2,21 +2,56 @@ package cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; import java.time.LocalDateTime; +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + @Schema(description = "管理后台 - 用户积分记录 Response VO") @Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -public class MemberPointRecordRespVO extends MemberPointRecordBaseVO { +public class MemberPointRecordRespVO { @Schema(description = "自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "31457") private Long id; - @Schema(description = "发生时间") + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long userId; + + @Schema(description = "昵称", example = "张三") + private String nickname; + + @Schema(description = "业务编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "22706") + private String bizId; + + @Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private String bizType; + + @Schema(description = "积分标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜") + private String title; + + @Schema(description = "积分描述", example = "你猜") + private String description; + + @Schema(description = "积分", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") + private Integer point; + + @Schema(description = "变动后的积分", requiredMode = Schema.RequiredMode.REQUIRED, example = "200") + private Integer totalPoint; + + @Schema(description = "积分状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer status; + + @Schema(description = "冻结时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime freezingTime; + + @Schema(description = "解冻时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime thawingTime; + + @Schema(description = "发生时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; - //昵称 - private String nickName; - } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/MemberSignInConfigController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/MemberSignInConfigController.java index 361e69506..37dfea356 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/MemberSignInConfigController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/MemberSignInConfigController.java @@ -1,10 +1,9 @@ package cn.iocoder.yudao.module.member.controller.admin.signin; import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigCreateReqVO; -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigRespVO; -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigUpdateReqVO; +import cn.iocoder.yudao.module.member.controller.admin.signin.vo.config.MemberSignInConfigCreateReqVO; +import cn.iocoder.yudao.module.member.controller.admin.signin.vo.config.MemberSignInConfigRespVO; +import cn.iocoder.yudao.module.member.controller.admin.signin.vo.config.MemberSignInConfigUpdateReqVO; import cn.iocoder.yudao.module.member.convert.signin.MemberSignInConfigConvert; import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInConfigDO; import cn.iocoder.yudao.module.member.service.signin.MemberSignInConfigService; @@ -17,11 +16,11 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; - import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +// TODO @xiaqing:url 使用 member 作为前缀 @Tag(name = "管理后台 - 积分签到规则") @RestController @RequestMapping("/point/sign-in-config") @@ -29,20 +28,20 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; public class MemberSignInConfigController { @Resource - private MemberSignInConfigService memberSignInConfigService; + private MemberSignInConfigService signInConfigService; @PostMapping("/create") @Operation(summary = "创建积分签到规则") @PreAuthorize("@ss.hasPermission('point:sign-in-config:create')") - public CommonResult createSignInConfig(@Valid @RequestBody MemberSignInConfigCreateReqVO createReqVO) { - return success(memberSignInConfigService.createSignInConfig(createReqVO)); + public CommonResult createSignInConfig(@Valid @RequestBody MemberSignInConfigCreateReqVO createReqVO) { + return success(signInConfigService.createSignInConfig(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新积分签到规则") @PreAuthorize("@ss.hasPermission('point:sign-in-config:update')") public CommonResult updateSignInConfig(@Valid @RequestBody MemberSignInConfigUpdateReqVO updateReqVO) { - memberSignInConfigService.updateSignInConfig(updateReqVO); + signInConfigService.updateSignInConfig(updateReqVO); return success(true); } @@ -50,8 +49,8 @@ public class MemberSignInConfigController { @Operation(summary = "删除积分签到规则") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('point:sign-in-config:delete')") - public CommonResult deleteSignInConfig(@RequestParam("id") Integer id) { - memberSignInConfigService.deleteSignInConfig(id); + public CommonResult deleteSignInConfig(@RequestParam("id") Long id) { + signInConfigService.deleteSignInConfig(id); return success(true); } @@ -59,16 +58,16 @@ public class MemberSignInConfigController { @Operation(summary = "获得积分签到规则") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('point:sign-in-config:query')") - public CommonResult getSignInConfig(@RequestParam("id") Integer id) { - MemberSignInConfigDO signInConfig = memberSignInConfigService.getSignInConfig(id); + public CommonResult getSignInConfig(@RequestParam("id") Long id) { + MemberSignInConfigDO signInConfig = signInConfigService.getSignInConfig(id); return success(MemberSignInConfigConvert.INSTANCE.convert(signInConfig)); } @GetMapping("/list") @Operation(summary = "获得积分签到规则分页") @PreAuthorize("@ss.hasPermission('point:sign-in-config:query')") - public CommonResult> getSignInConfigPage() { - List pageResult = memberSignInConfigService.getSignInConfigList(); + public CommonResult> getSignInConfigList() { + List pageResult = signInConfigService.getSignInConfigList(); return success(MemberSignInConfigConvert.INSTANCE.convertList(pageResult)); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/MemberSignInRecordController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/MemberSignInRecordController.java index 5a8438980..faad59616 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/MemberSignInRecordController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/MemberSignInRecordController.java @@ -4,30 +4,28 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.member.api.user.MemberUserApi; import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInRecordPageReqVO; -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInRecordRespVO; +import cn.iocoder.yudao.module.member.controller.admin.signin.vo.record.MemberSignInRecordPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.signin.vo.record.MemberSignInRecordRespVO; import cn.iocoder.yudao.module.member.convert.signin.MemberSignInRecordConvert; import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO; import cn.iocoder.yudao.module.member.service.signin.MemberSignInRecordService; -import cn.iocoder.yudao.module.system.api.user.AdminUserApi; -import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; -import org.apache.commons.lang3.StringUtils; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.validation.Valid; - import java.util.List; -import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; +// TODO @xiaqing:url 使用 member 作为前缀 @Tag(name = "管理后台 - 用户签到积分") @RestController @RequestMapping("/point/sign-in-record") @@ -35,34 +33,24 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; public class MemberSignInRecordController { @Resource - private MemberSignInRecordService memberSignInRecordService; - @Resource - MemberUserApi memberUserApi; + private MemberSignInRecordService signInRecordService; + @Resource + private MemberUserApi memberUserApi; @GetMapping("/page") @Operation(summary = "获得用户签到积分分页") @PreAuthorize("@ss.hasPermission('point:sign-in-record:query')") - public CommonResult > getSignInRecordPage(@Valid MemberSignInRecordPageReqVO pageVO) { - //请求中如果有nickName,需要根据nickName查询出userId - if(StringUtils.isNotBlank(pageVO.getNickName())){ - List users= memberUserApi.getUserListByNickname(pageVO.getNickName()).stream() - .map(user->user.getId()).collect(Collectors.toList()); - //如果根据昵称查出来的用户为空,则无需继续查找 - if(CollectionUtils.isEmpty(users)){ - return success(new PageResult <>()); - } - pageVO.setUserIds(users); - } - //处理查询结果首先将数据信息查询,然后将userId转换为nickName - PageResult pageResult = memberSignInRecordService.getSignInRecordPage(pageVO); - List result = pageResult.getList(); - //设置获取的用户信息 - List users = null; - if (!CollectionUtils.isEmpty(result)) { - List ids = result.stream().map(user -> user.getUserId()).collect(Collectors.toList()); - users = memberUserApi.getUsers(ids); + public CommonResult> getSignInRecordPage(@Valid MemberSignInRecordPageReqVO pageVO) { + // 执行分页查询 + PageResult pageResult = signInRecordService.getSignInRecordPage(pageVO); + if (CollectionUtils.isEmpty(pageResult.getList())) { + return success(PageResult.empty(pageResult.getTotal())); } + + // 拼接结果返回 + List users = memberUserApi.getUserList( + convertSet(pageResult.getList(), MemberSignInRecordDO::getUserId)); return success(MemberSignInRecordConvert.INSTANCE.convertPage(pageResult, users)); } } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordBaseVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordBaseVO.java deleted file mode 100644 index c3c51f5ba..000000000 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordBaseVO.java +++ /dev/null @@ -1,22 +0,0 @@ -package cn.iocoder.yudao.module.member.controller.admin.signin.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -/** - * 用户签到积分 Base VO,提供给添加、修改、详细的子 VO 使用 - * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 - */ -@Data -public class MemberSignInRecordBaseVO { - - @Schema(description = "签到用户", example = "6507") - private Long userId; - - @Schema(description = "第几天签到") - private Integer day; - - @Schema(description = "签到的分数") - private Integer point; - -} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordCreateReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordCreateReqVO.java deleted file mode 100644 index f56e240a4..000000000 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordCreateReqVO.java +++ /dev/null @@ -1,14 +0,0 @@ -package cn.iocoder.yudao.module.member.controller.admin.signin.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -@Schema(description = "管理后台 - 用户签到积分创建 Request VO") -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -public class MemberSignInRecordCreateReqVO extends MemberSignInRecordBaseVO { - -} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordRespVO.java deleted file mode 100644 index a01fa5a22..000000000 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordRespVO.java +++ /dev/null @@ -1,25 +0,0 @@ -package cn.iocoder.yudao.module.member.controller.admin.signin.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -import java.time.LocalDateTime; - -@Schema(description = "管理后台 - 用户签到积分 Response VO") -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -public class MemberSignInRecordRespVO extends MemberSignInRecordBaseVO { - - @Schema(description = "签到自增id", requiredMode = Schema.RequiredMode.REQUIRED, example = "11903") - private Long id; - - @Schema(description = "签到时间") - private LocalDateTime createTime; - - //昵称,用于前台展示 - private String nickName; - -} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordUpdateReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordUpdateReqVO.java deleted file mode 100644 index 7fce60861..000000000 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordUpdateReqVO.java +++ /dev/null @@ -1,20 +0,0 @@ -package cn.iocoder.yudao.module.member.controller.admin.signin.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -import javax.validation.constraints.NotNull; - -@Schema(description = "管理后台 - 用户签到积分更新 Request VO") -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -public class MemberSignInRecordUpdateReqVO extends MemberSignInRecordBaseVO { - - @Schema(description = "签到自增id", requiredMode = Schema.RequiredMode.REQUIRED, example = "11903") - @NotNull(message = "签到自增id不能为空") - private Long id; - -} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInConfigBaseVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/config/MemberSignInConfigBaseVO.java similarity index 52% rename from yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInConfigBaseVO.java rename to yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/config/MemberSignInConfigBaseVO.java index 7aa098eed..fab567951 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInConfigBaseVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/config/MemberSignInConfigBaseVO.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.member.controller.admin.signin.vo; +package cn.iocoder.yudao.module.member.controller.admin.signin.vo.config; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; @@ -10,14 +10,16 @@ import lombok.*; @Data public class MemberSignInConfigBaseVO { - @Schema(description = "签到第 x 天", example = "7") + // TODO @xiaqing:必须的参数校验注解 + + @Schema(description = "签到第 x 天", requiredMode = Schema.RequiredMode.REQUIRED, example = "7") private Integer day; - @Schema(description = "签到天数对应分数", example = "10") + @Schema(description = "签到天数对应分数", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") private Integer point; - @Schema(description = "是否启用", example = "1") + // TODO @xiaqing:enable + @Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Boolean isEnable; - } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInConfigCreateReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/config/MemberSignInConfigCreateReqVO.java similarity index 97% rename from yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInConfigCreateReqVO.java rename to yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/config/MemberSignInConfigCreateReqVO.java index 34e921377..49b9f2994 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInConfigCreateReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/config/MemberSignInConfigCreateReqVO.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.member.controller.admin.signin.vo; +package cn.iocoder.yudao.module.member.controller.admin.signin.vo.config; import lombok.*; import io.swagger.v3.oas.annotations.media.Schema; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInConfigRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/config/MemberSignInConfigRespVO.java similarity index 98% rename from yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInConfigRespVO.java rename to yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/config/MemberSignInConfigRespVO.java index a5bfcfa18..191b815a7 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInConfigRespVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/config/MemberSignInConfigRespVO.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.member.controller.admin.signin.vo; +package cn.iocoder.yudao.module.member.controller.admin.signin.vo.config; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInConfigUpdateReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/config/MemberSignInConfigUpdateReqVO.java similarity index 94% rename from yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInConfigUpdateReqVO.java rename to yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/config/MemberSignInConfigUpdateReqVO.java index 74361d5a9..ce014d745 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInConfigUpdateReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/config/MemberSignInConfigUpdateReqVO.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.member.controller.admin.signin.vo; +package cn.iocoder.yudao.module.member.controller.admin.signin.vo.config; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; @@ -13,6 +13,6 @@ public class MemberSignInConfigUpdateReqVO extends MemberSignInConfigBaseVO { @Schema(description = "规则自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "13653") @NotNull(message = "规则自增主键不能为空") - private Integer id; + private Long id; } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordPageReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/record/MemberSignInRecordPageReqVO.java similarity index 79% rename from yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordPageReqVO.java rename to yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/record/MemberSignInRecordPageReqVO.java index 11dd6d69c..a640212d9 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordPageReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/record/MemberSignInRecordPageReqVO.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.member.controller.admin.signin.vo; +package cn.iocoder.yudao.module.member.controller.admin.signin.vo.record; import cn.iocoder.yudao.framework.common.pojo.PageParam; import io.swagger.v3.oas.annotations.media.Schema; @@ -8,7 +8,6 @@ import lombok.ToString; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; -import java.util.List; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -18,13 +17,10 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @ToString(callSuper = true) public class MemberSignInRecordPageReqVO extends PageParam { - //用户前台模糊查询 - @Schema(description = "签到用户", example = "6507") - private String nickName; + @Schema(description = "签到用户", example = "土豆") + private String nickname; - private ListuserIds; - - @Schema(description = "第几天签到") + @Schema(description = "第几天签到", example = "10") private Integer day; @Schema(description = "签到时间") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/record/MemberSignInRecordRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/record/MemberSignInRecordRespVO.java new file mode 100644 index 000000000..a4f466179 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/record/MemberSignInRecordRespVO.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.member.controller.admin.signin.vo.record; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 用户签到积分 Response VO") +@Data +public class MemberSignInRecordRespVO { + + @Schema(description = "签到自增 id", requiredMode = Schema.RequiredMode.REQUIRED, example = "11903") + private Long id; + + @Schema(description = "签到用户", requiredMode = Schema.RequiredMode.REQUIRED, example = "6507") + private Long userId; + + @Schema(description = "昵称", example = "张三") + private String nickname; + + @Schema(description = "第几天签到", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer day; + + @Schema(description = "签到的分数", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + private Integer point; + + @Schema(description = "签到时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/point/MemberPointConfigConvert.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/point/MemberPointConfigConvert.java index bd0d44281..e600378bb 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/point/MemberPointConfigConvert.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/point/MemberPointConfigConvert.java @@ -20,5 +20,4 @@ public interface MemberPointConfigConvert { MemberPointConfigDO convert(MemberPointConfigSaveReqVO bean); - } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/point/MemberPointRecordConvert.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/point/MemberPointRecordConvert.java index d83d45e22..5f6d03503 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/point/MemberPointRecordConvert.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/point/MemberPointRecordConvert.java @@ -1,17 +1,17 @@ package cn.iocoder.yudao.module.member.convert.point; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.MapUtils; import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPointRecordRespVO; import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointRecordDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; -import org.springframework.util.CollectionUtils; -import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; + +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; /** * 用户积分记录 Convert @@ -23,62 +23,14 @@ public interface MemberPointRecordConvert { MemberPointRecordConvert INSTANCE = Mappers.getMapper(MemberPointRecordConvert.class); - default PageResult convertPage(PageResult page, List users) { - if (page == null) { - return null; - } - - PageResult pageResult = new PageResult (); - - pageResult.setList(memberPointRecordDOListToMemberPointRecordRespVOList(page.getList(), users)); - pageResult.setTotal(page.getTotal()); - - return pageResult; + default PageResult convertPage(PageResult pageResult, List users) { + PageResult voPageResult = convertPage(pageResult); + // user 拼接 + Map userMap = convertMap(users, MemberUserRespDTO::getId); + voPageResult.getList().forEach(record -> MapUtils.findAndThen(userMap, record.getUserId(), + memberUserRespDTO -> record.setNickname(memberUserRespDTO.getNickname()))); + return voPageResult; } - - default List memberPointRecordDOListToMemberPointRecordRespVOList(List list, List users) { - if (list == null) { - return null; - } - Map maps = null; - //是否需要转换用户标志 - boolean userNickFlag = !CollectionUtils.isEmpty(users); - if (userNickFlag) { - maps = users.stream() - .collect(Collectors.toMap(MemberUserRespDTO::getId, MemberUserRespDTO::getNickname, (key1, key2) -> key2)); - } - List list1 = new ArrayList (list.size()); - for (MemberPointRecordDO memberPointRecordDO : list) { - MemberPointRecordRespVO recordRespVO = memberPointRecordDOToMemberPointRecordRespVO(memberPointRecordDO); - recordRespVO.setNickName(maps.get(memberPointRecordDO.getUserId())); - list1.add(recordRespVO); - } - - return list1; - } - - default MemberPointRecordRespVO memberPointRecordDOToMemberPointRecordRespVO(MemberPointRecordDO memberPointRecordDO) { - if (memberPointRecordDO == null) { - return null; - } - - MemberPointRecordRespVO memberPointRecordRespVO = new MemberPointRecordRespVO(); - - memberPointRecordRespVO.setBizId(memberPointRecordDO.getBizId()); - memberPointRecordRespVO.setBizType(memberPointRecordDO.getBizType()); - memberPointRecordRespVO.setType(memberPointRecordDO.getType()); - memberPointRecordRespVO.setTitle(memberPointRecordDO.getTitle()); - memberPointRecordRespVO.setDescription(memberPointRecordDO.getDescription()); - memberPointRecordRespVO.setPoint(memberPointRecordDO.getPoint()); - memberPointRecordRespVO.setTotalPoint(memberPointRecordDO.getTotalPoint()); - memberPointRecordRespVO.setStatus(memberPointRecordDO.getStatus()); - memberPointRecordRespVO.setFreezingTime(memberPointRecordDO.getFreezingTime()); - memberPointRecordRespVO.setThawingTime(memberPointRecordDO.getThawingTime()); - memberPointRecordRespVO.setId(memberPointRecordDO.getId()); - memberPointRecordRespVO.setCreateTime(memberPointRecordDO.getCreateTime()); - - return memberPointRecordRespVO; - } - + PageResult convertPage(PageResult pageResult); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/signin/MemberSignInConfigConvert.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/signin/MemberSignInConfigConvert.java index dcfcc932a..c70f60fde 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/signin/MemberSignInConfigConvert.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/signin/MemberSignInConfigConvert.java @@ -1,9 +1,8 @@ package cn.iocoder.yudao.module.member.convert.signin; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigCreateReqVO; -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigRespVO; -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigUpdateReqVO; +import cn.iocoder.yudao.module.member.controller.admin.signin.vo.config.MemberSignInConfigCreateReqVO; +import cn.iocoder.yudao.module.member.controller.admin.signin.vo.config.MemberSignInConfigRespVO; +import cn.iocoder.yudao.module.member.controller.admin.signin.vo.config.MemberSignInConfigUpdateReqVO; import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInConfigDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; @@ -28,6 +27,4 @@ public interface MemberSignInConfigConvert { List convertList(List list); - PageResult convertPage(PageResult page); - } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/signin/MemberSignInRecordConvert.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/signin/MemberSignInRecordConvert.java index 13b24b392..532591fa8 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/signin/MemberSignInRecordConvert.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/signin/MemberSignInRecordConvert.java @@ -1,19 +1,17 @@ package cn.iocoder.yudao.module.member.convert.signin; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.MapUtils; import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInRecordRespVO; +import cn.iocoder.yudao.module.member.controller.admin.signin.vo.record.MemberSignInRecordRespVO; import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO; -import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; -import org.springframework.util.CollectionUtils; -import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; + +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; /** * 用户签到积分 Convert @@ -25,57 +23,14 @@ public interface MemberSignInRecordConvert { MemberSignInRecordConvert INSTANCE = Mappers.getMapper(MemberSignInRecordConvert.class); - default public MemberSignInRecordRespVO convert(MemberSignInRecordDO bean) { - if (bean == null) { - return null; - } - - MemberSignInRecordRespVO memberSignInRecordRespVO = new MemberSignInRecordRespVO(); - - memberSignInRecordRespVO.setUserId(bean.getUserId()); - memberSignInRecordRespVO.setDay(bean.getDay()); - memberSignInRecordRespVO.setPoint(bean.getPoint()); - memberSignInRecordRespVO.setId(bean.getId()); - memberSignInRecordRespVO.setCreateTime(bean.getCreateTime()); - - return memberSignInRecordRespVO; + default PageResult convertPage(PageResult pageResult, List users) { + PageResult voPageResult = convertPage(pageResult); + // user 拼接 + Map userMap = convertMap(users, MemberUserRespDTO::getId); + voPageResult.getList().forEach(record -> MapUtils.findAndThen(userMap, record.getUserId(), + memberUserRespDTO -> record.setNickname(memberUserRespDTO.getNickname()))); + return voPageResult; } - - default PageResult convertPage(PageResult page, List userRespDTOS) { - if (page == null) { - return null; - } - - PageResult pageResult = new PageResult (); - - pageResult.setList(memberSignInRecordDOListToMemberSignInRecordRespVOList(page.getList(),userRespDTOS)); - pageResult.setTotal(page.getTotal()); - - return pageResult; - } - - default List memberSignInRecordDOListToMemberSignInRecordRespVOList(List list,List userRespDTOS) { - if (list == null) { - return null; - } - Map maps=null; - //是否需要转换用户标志 - boolean userNickFlag = !CollectionUtils.isEmpty(userRespDTOS); - if(userNickFlag){ - maps = userRespDTOS.stream() - .collect(Collectors.toMap(MemberUserRespDTO::getId, MemberUserRespDTO::getNickname, (key1, key2) -> key2)); - } - List list1 = new ArrayList (list.size()); - for (MemberSignInRecordDO memberSignInRecordDO : list) { - MemberSignInRecordRespVO recordRespVO = convert(memberSignInRecordDO); - if(userNickFlag){ - recordRespVO.setNickName(maps.get(recordRespVO.getUserId())); - } - list1.add(recordRespVO); - } - - return list1; - } - + PageResult convertPage(PageResult pageResult); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/point/MemberPointRecordDO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/point/MemberPointRecordDO.java index 40df4d4a6..53b89383a 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/point/MemberPointRecordDO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/point/MemberPointRecordDO.java @@ -28,6 +28,13 @@ public class MemberPointRecordDO extends BaseDO { */ @TableId private Long id; + /** + * 用户编号 + * + * 对应 MemberUserDO 的 id 属性 + */ + private Long userId; + /** * 业务编码 */ @@ -36,6 +43,7 @@ public class MemberPointRecordDO extends BaseDO { * 业务类型 * * 枚举 {@link TODO biz_type 对应枚举,然后改成 int 类型哈} + * TODO @qingxia:这个改成 Integer,然后搞个枚举 */ private String bizType; /** @@ -58,12 +66,10 @@ public class MemberPointRecordDO extends BaseDO { * 状态:1-订单创建,2-冻结期,3-完成,4-失效(订单退款) * * 枚举 {@link point_status 对应的类} + * TODO @qingxia:搞个枚举 */ private Integer status; - /** - * 用户id - */ - private Long userId; + /** * 冻结时间 */ diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/signin/MemberSignInConfigDO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/signin/MemberSignInConfigDO.java index 42142e3f3..89ba69772 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/signin/MemberSignInConfigDO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/signin/MemberSignInConfigDO.java @@ -25,7 +25,7 @@ public class MemberSignInConfigDO extends BaseDO { * 规则自增主键 */ @TableId - private Integer id; + private Long id; /** * 签到第x天 */ @@ -34,8 +34,11 @@ public class MemberSignInConfigDO extends BaseDO { * 签到天数对应分数 */ private Integer point; + + // TODO @puhui999:enable;不用 is 开头 /** * 是否启用 */ private Boolean isEnable; + } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/point/MemberPointRecordMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/point/MemberPointRecordMapper.java index f3d42d078..9e70fcaec 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/point/MemberPointRecordMapper.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/point/MemberPointRecordMapper.java @@ -7,6 +7,8 @@ import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPoi import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointRecordDO; import org.apache.ibatis.annotations.Mapper; +import java.util.Set; + /** * 用户积分记录 Mapper * @@ -15,11 +17,10 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface MemberPointRecordMapper extends BaseMapperX { - default PageResult selectPage(MemberPointRecordPageReqVO reqVO) { + default PageResult selectPage(MemberPointRecordPageReqVO reqVO, Set userIds) { return selectPage(reqVO, new LambdaQueryWrapperX() - .inIfPresent(MemberPointRecordDO::getUserId,reqVO.getUserIds()) + .inIfPresent(MemberPointRecordDO::getUserId, userIds) .eqIfPresent(MemberPointRecordDO::getBizType, reqVO.getBizType()) - .eqIfPresent(MemberPointRecordDO::getType, reqVO.getType()) .eqIfPresent(MemberPointRecordDO::getTitle, reqVO.getTitle()) .eqIfPresent(MemberPointRecordDO::getStatus, reqVO.getStatus()) .orderByDesc(MemberPointRecordDO::getId)); diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/signin/MemberSignInConfigMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/signin/MemberSignInConfigMapper.java index 7c8f5974f..186c83e8a 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/signin/MemberSignInConfigMapper.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/signin/MemberSignInConfigMapper.java @@ -16,11 +16,7 @@ import java.util.List; @Mapper public interface MemberSignInConfigMapper extends BaseMapperX { - /** - * 描述 :选择性更新对象属性,如果不为空则更新。 - * Author :xiaqing - * Date :2023-08-08 23:38:48 - */ + // TODO @qingxia:是不是不用这个方法,直接 updateById 即可 default int updateIfPresent(MemberSignInConfigDO updateObj){ LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper <>(); wrapper.eq(MemberSignInConfigDO::getId, updateObj.getId()) @@ -30,18 +26,13 @@ public interface MemberSignInConfigMapper extends BaseMapperX getList(){ + // TODO @qingxia:不用这个方法,selectList,业务层自己排序即可 + default List getList() { return selectList(new LambdaQueryWrapperX ().orderByAsc(MemberSignInConfigDO::getDay)); } - /** - * 描述 :根据天数查询对应记录 - * Date :2023-08-09 00:07:11 - */ - default MemberSignInConfigDO selectByDay(Integer day){ - return selectOne(new LambdaQueryWrapperX () - .eq(MemberSignInConfigDO::getDay,day)); - + default MemberSignInConfigDO selectByDay(Integer day) { + return selectOne(MemberSignInConfigDO::getDay, day); } } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/signin/MemberSignInRecordMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/signin/MemberSignInRecordMapper.java index 5e1cbb1d2..559b82338 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/signin/MemberSignInRecordMapper.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/signin/MemberSignInRecordMapper.java @@ -3,10 +3,12 @@ package cn.iocoder.yudao.module.member.dal.mysql.signin; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInRecordPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.signin.vo.record.MemberSignInRecordPageReqVO; import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO; import org.apache.ibatis.annotations.Mapper; +import java.util.Set; + /** * 用户签到积分 Mapper * @@ -15,9 +17,9 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface MemberSignInRecordMapper extends BaseMapperX { - default PageResult selectPage(MemberSignInRecordPageReqVO reqVO) { + default PageResult selectPage(MemberSignInRecordPageReqVO reqVO, Set userIds) { return selectPage(reqVO, new LambdaQueryWrapperX() - .inIfPresent(MemberSignInRecordDO::getUserId, reqVO.getUserIds()) + .inIfPresent(MemberSignInRecordDO::getUserId, userIds) .eqIfPresent(MemberSignInRecordDO::getDay, reqVO.getDay()) .betweenIfPresent(MemberSignInRecordDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(MemberSignInRecordDO::getId)); diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/point/MemberPointRecordServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/point/MemberPointRecordServiceImpl.java index c0d5bc896..9853ea8d1 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/point/MemberPointRecordServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/point/MemberPointRecordServiceImpl.java @@ -1,13 +1,21 @@ package cn.iocoder.yudao.module.member.service.point; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.member.api.user.MemberUserApi; +import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPointRecordPageReqVO; import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointRecordDO; import cn.iocoder.yudao.module.member.dal.mysql.point.MemberPointRecordMapper; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.util.List; +import java.util.Set; + +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; /** @@ -22,9 +30,22 @@ public class MemberPointRecordServiceImpl implements MemberPointRecordService { @Resource private MemberPointRecordMapper recordMapper; + @Resource + private MemberUserApi memberUserApi; + @Override public PageResult getRecordPage(MemberPointRecordPageReqVO pageReqVO) { - return recordMapper.selectPage(pageReqVO); + // 根据用户昵称查询出用户ids + Set userIds = null; + if (StringUtils.isNotBlank(pageReqVO.getNickname())) { + List users = memberUserApi.getUserListByNickname(pageReqVO.getNickname()); + // 如果查询用户结果为空直接返回无需继续查询 + if (CollectionUtils.isEmpty(users)) { + return PageResult.empty(); + } + userIds = convertSet(users, MemberUserRespDTO::getId); + } + return recordMapper.selectPage(pageReqVO, userIds); } } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInConfigService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInConfigService.java index f873e52c7..13c537dab 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInConfigService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInConfigService.java @@ -1,7 +1,7 @@ package cn.iocoder.yudao.module.member.service.signin; -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigCreateReqVO; -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigUpdateReqVO; +import cn.iocoder.yudao.module.member.controller.admin.signin.vo.config.MemberSignInConfigCreateReqVO; +import cn.iocoder.yudao.module.member.controller.admin.signin.vo.config.MemberSignInConfigUpdateReqVO; import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInConfigDO; import javax.validation.Valid; @@ -20,7 +20,7 @@ public interface MemberSignInConfigService { * @param createReqVO 创建信息 * @return 编号 */ - Integer createSignInConfig(@Valid MemberSignInConfigCreateReqVO createReqVO); + Long createSignInConfig(@Valid MemberSignInConfigCreateReqVO createReqVO); /** * 更新积分签到规则 @@ -34,7 +34,7 @@ public interface MemberSignInConfigService { * * @param id 编号 */ - void deleteSignInConfig(Integer id); + void deleteSignInConfig(Long id); /** * 获得积分签到规则 @@ -42,7 +42,7 @@ public interface MemberSignInConfigService { * @param id 编号 * @return 积分签到规则 */ - MemberSignInConfigDO getSignInConfig(Integer id); + MemberSignInConfigDO getSignInConfig(Long id); /** * 获得积分签到规则分页 diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInConfigServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInConfigServiceImpl.java index 68085ff16..982f2f487 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInConfigServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInConfigServiceImpl.java @@ -1,23 +1,18 @@ package cn.iocoder.yudao.module.member.service.signin; -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigCreateReqVO; -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigUpdateReqVO; +import cn.iocoder.yudao.module.member.controller.admin.signin.vo.config.MemberSignInConfigCreateReqVO; +import cn.iocoder.yudao.module.member.controller.admin.signin.vo.config.MemberSignInConfigUpdateReqVO; import cn.iocoder.yudao.module.member.convert.signin.MemberSignInConfigConvert; import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInConfigDO; import cn.iocoder.yudao.module.member.dal.mysql.signin.MemberSignInConfigMapper; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; - import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.SIGN_IN_CONFIG_EXISTS; -import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.SIGN_IN_CONFIG_NOT_EXISTS; +import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*; /** * 积分签到规则 Service 实现类 @@ -29,16 +24,16 @@ import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.SIGN_IN_CO public class MemberSignInConfigServiceImpl implements MemberSignInConfigService { @Resource - private MemberSignInConfigMapper memberSignInConfigMapper; + private MemberSignInConfigMapper signInConfigMapper; @Override - public Integer createSignInConfig(MemberSignInConfigCreateReqVO createReqVO) { + public Long createSignInConfig(MemberSignInConfigCreateReqVO createReqVO) { // 判断是否重复插入签到天数 - validateSignInConfigExistsDay(createReqVO.getDay()); + validateSignInConfigDayDuplicate(createReqVO.getDay(), null); // 插入 MemberSignInConfigDO signInConfig = MemberSignInConfigConvert.INSTANCE.convert(createReqVO); - memberSignInConfigMapper.insert(signInConfig); + signInConfigMapper.insert(signInConfig); // 返回 return signInConfig.getId(); } @@ -47,52 +42,54 @@ public class MemberSignInConfigServiceImpl implements MemberSignInConfigService public void updateSignInConfig(MemberSignInConfigUpdateReqVO updateReqVO) { // 校验存在 validateSignInConfigExists(updateReqVO.getId()); - //判断是否重复插入签到天数 - validateSignInConfigSameDayNotSelf(updateReqVO); + // 判断是否重复插入签到天数 + validateSignInConfigDayDuplicate(updateReqVO.getDay(), updateReqVO.getId()); // 判断更新 MemberSignInConfigDO updateObj = MemberSignInConfigConvert.INSTANCE.convert(updateReqVO); - memberSignInConfigMapper.updateIfPresent(updateObj); + signInConfigMapper.updateIfPresent(updateObj); } @Override - public void deleteSignInConfig(Integer id) { + public void deleteSignInConfig(Long id) { // 校验存在 validateSignInConfigExists(id); // 删除 - memberSignInConfigMapper.deleteById(id); + signInConfigMapper.deleteById(id); } - private void validateSignInConfigExists(Integer id) { - if (memberSignInConfigMapper.selectById(id) == null) { + private void validateSignInConfigExists(Long id) { + if (signInConfigMapper.selectById(id) == null) { throw exception(SIGN_IN_CONFIG_NOT_EXISTS); } } - //根据签到天数判断是否存在一个相同的天数 - private void validateSignInConfigExistsDay(Integer day) { - MemberSignInConfigDO configDO = memberSignInConfigMapper.selectByDay(day); - if (configDO != null) { + /** + * 校验 day 是否重复 + * + * @param day 天 + * @param id 编号,只有更新的时候会传递 + */ + private void validateSignInConfigDayDuplicate(Integer day, Long id) { + MemberSignInConfigDO configDO = signInConfigMapper.selectByDay(day); + // 1. 新增时,configDO 非空,则说明重复 + if (id == null && configDO != null) { throw exception(SIGN_IN_CONFIG_EXISTS); } - } - - // 更新天数时判断是否有重复的天数,需要去除自己 - private void validateSignInConfigSameDayNotSelf(MemberSignInConfigUpdateReqVO reqVO) { - MemberSignInConfigDO configDO = memberSignInConfigMapper.selectByDay(reqVO.getDay()); - if (configDO != null && configDO.getId() != reqVO.getId()) { + // 2. 更新时,如果 configDO 非空,且 id 不相等,则说明重复 + if (id != null && configDO != null && !configDO.getId().equals(id)) { throw exception(SIGN_IN_CONFIG_EXISTS); } } @Override - public MemberSignInConfigDO getSignInConfig(Integer id) { - return memberSignInConfigMapper.selectById(id); + public MemberSignInConfigDO getSignInConfig(Long id) { + return signInConfigMapper.selectById(id); } @Override public List getSignInConfigList() { - return memberSignInConfigMapper.getList(); + return signInConfigMapper.getList(); } } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInRecordService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInRecordService.java index 8f7d2a064..c3af3c1f9 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInRecordService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInRecordService.java @@ -1,7 +1,7 @@ package cn.iocoder.yudao.module.member.service.signin; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInRecordPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.signin.vo.record.MemberSignInRecordPageReqVO; import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO; /** @@ -11,8 +11,6 @@ import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO */ public interface MemberSignInRecordService { - - /** * 获得用户签到积分分页 * @@ -21,5 +19,4 @@ public interface MemberSignInRecordService { */ PageResult getSignInRecordPage(MemberSignInRecordPageReqVO pageReqVO); - } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInRecordServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInRecordServiceImpl.java index 4bc9bf8ea..93975da0e 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInRecordServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInRecordServiceImpl.java @@ -1,17 +1,21 @@ package cn.iocoder.yudao.module.member.service.signin; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInRecordPageReqVO; +import cn.iocoder.yudao.module.member.api.user.MemberUserApi; +import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; +import cn.iocoder.yudao.module.member.controller.admin.signin.vo.record.MemberSignInRecordPageReqVO; import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO; import cn.iocoder.yudao.module.member.dal.mysql.signin.MemberSignInRecordMapper; -import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.util.List; +import java.util.Set; -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.SIGN_IN_RECORD_NOT_EXISTS; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; /** * 用户签到积分 Service 实现类 @@ -23,15 +27,24 @@ import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.SIGN_IN_RE public class MemberSignInRecordServiceImpl implements MemberSignInRecordService { @Resource - private MemberSignInRecordMapper memberSignInRecordMapper; + private MemberSignInRecordMapper signInRecordMapper; + @Resource - AdminUserApi adminUserApi; - - + private MemberUserApi memberUserApi; @Override public PageResult getSignInRecordPage(MemberSignInRecordPageReqVO pageReqVO) { - return memberSignInRecordMapper.selectPage(pageReqVO); + // 根据用户昵称查询出用户ids + Set userIds = null; + if (StringUtils.isNotBlank(pageReqVO.getNickname())) { + List users = memberUserApi.getUserListByNickname(pageReqVO.getNickname()); + // 如果查询用户结果为空直接返回无需继续查询 + if (CollectionUtils.isEmpty(users)) { + return PageResult.empty(); + } + userIds = convertSet(users, MemberUserRespDTO::getId); + } + return signInRecordMapper.selectPage(pageReqVO, userIds); } } diff --git a/yudao-server/src/main/resources/application-local.yaml b/yudao-server/src/main/resources/application-local.yaml index 2389b1d92..5964261ce 100644 --- a/yudao-server/src/main/resources/application-local.yaml +++ b/yudao-server/src/main/resources/application-local.yaml @@ -51,7 +51,7 @@ spring: # url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例 # url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.master.name} # SQLServer 连接的示例 username: root - password: 1qaz!QAZ + password: 123456 # username: sa # password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W slave: # 模拟从库,可根据自己需要修改 @@ -62,13 +62,13 @@ spring: # url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例 # url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.slave.name} # SQLServer 连接的示例 username: root - password: 1qaz!QAZ + password: 123456 # username: sa # password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 redis: - host: 10.211.55.5 # 地址 + host: 127.0.0.1 # 地址 port: 6379 # 端口 database: 0 # 数据库索引 # password: dev # 密码,建议生产环境开启