Commit 0d1fc1138a942b461dd7e8fa2c7bf7128fb19059

Authored by YunaiV
1 parent c3e4e234

增加 app 的签到 mock 接口、积分记录分页、签到记录分页

Showing 29 changed files with 355 additions and 50 deletions
@@ -16,11 +16,11 @@ @@ -16,11 +16,11 @@
16 <module>yudao-module-member</module> 16 <module>yudao-module-member</module>
17 <module>yudao-module-system</module> 17 <module>yudao-module-system</module>
18 <module>yudao-module-infra</module> 18 <module>yudao-module-infra</module>
19 -<!-- <module>yudao-module-pay</module>-->  
20 -<!-- <module>yudao-module-bpm</module>-->  
21 -<!-- <module>yudao-module-report</module>-->  
22 -<!-- <module>yudao-module-mp</module>-->  
23 -<!-- <module>yudao-module-mall</module>--> 19 + <module>yudao-module-pay</module>
  20 + <module>yudao-module-bpm</module>
  21 + <module>yudao-module-report</module>
  22 + <module>yudao-module-mp</module>
  23 + <module>yudao-module-mall</module>
24 <!-- 示例项目 --> 24 <!-- 示例项目 -->
25 <module>yudao-example</module> 25 <module>yudao-example</module>
26 </modules> 26 </modules>
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/MemberPointConfigController.java
@@ -29,16 +29,16 @@ public class MemberPointConfigController { @@ -29,16 +29,16 @@ public class MemberPointConfigController {
29 @PutMapping("/save") 29 @PutMapping("/save")
30 @Operation(summary = "保存会员积分配置") 30 @Operation(summary = "保存会员积分配置")
31 @PreAuthorize("@ss.hasPermission('point:config:save')") 31 @PreAuthorize("@ss.hasPermission('point:config:save')")
32 - public CommonResult<Boolean> updateConfig(@Valid @RequestBody MemberPointConfigSaveReqVO saveReqVO) {  
33 - memberPointConfigService.saveConfig(saveReqVO); 32 + public CommonResult<Boolean> savePointConfig(@Valid @RequestBody MemberPointConfigSaveReqVO saveReqVO) {
  33 + memberPointConfigService.savePointConfig(saveReqVO);
34 return success(true); 34 return success(true);
35 } 35 }
36 36
37 @GetMapping("/get") 37 @GetMapping("/get")
38 @Operation(summary = "获得会员积分配置") 38 @Operation(summary = "获得会员积分配置")
39 @PreAuthorize("@ss.hasPermission('point:config:query')") 39 @PreAuthorize("@ss.hasPermission('point:config:query')")
40 - public CommonResult<MemberPointConfigRespVO> getConfig() {  
41 - MemberPointConfigDO config = memberPointConfigService.getConfig(); 40 + public CommonResult<MemberPointConfigRespVO> getPointConfig() {
  41 + MemberPointConfigDO config = memberPointConfigService.getPointConfig();
42 return success(MemberPointConfigConvert.INSTANCE.convert(config)); 42 return success(MemberPointConfigConvert.INSTANCE.convert(config));
43 } 43 }
44 44
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/MemberPointRecordController.java
@@ -25,6 +25,7 @@ import java.util.List; @@ -25,6 +25,7 @@ import java.util.List;
25 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 25 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
26 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; 26 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
27 27
  28 +@Tag(name = "管理后台 - 签到记录")
28 @RestController 29 @RestController
29 @RequestMapping("/member/point/record") 30 @RequestMapping("/member/point/record")
30 @Validated 31 @Validated
@@ -39,9 +40,9 @@ public class MemberPointRecordController { @@ -39,9 +40,9 @@ public class MemberPointRecordController {
39 @GetMapping("/page") 40 @GetMapping("/page")
40 @Operation(summary = "获得用户积分记录分页") 41 @Operation(summary = "获得用户积分记录分页")
41 @PreAuthorize("@ss.hasPermission('point:record:query')") 42 @PreAuthorize("@ss.hasPermission('point:record:query')")
42 - public CommonResult<PageResult<MemberPointRecordRespVO>> getRecordPage(@Valid MemberPointRecordPageReqVO pageVO) { 43 + public CommonResult<PageResult<MemberPointRecordRespVO>> getPointRecordPage(@Valid MemberPointRecordPageReqVO pageVO) {
43 // 执行分页查询 44 // 执行分页查询
44 - PageResult<MemberPointRecordDO> pageResult = pointRecordService.getRecordPage(pageVO); 45 + PageResult<MemberPointRecordDO> pageResult = pointRecordService.getPointRecordPage(pageVO);
45 if (CollectionUtils.isEmpty(pageResult.getList())) { 46 if (CollectionUtils.isEmpty(pageResult.getList())) {
46 return success(PageResult.empty(pageResult.getTotal())); 47 return success(PageResult.empty(pageResult.getTotal()));
47 } 48 }
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/MemberSignInConfigController.java
@@ -20,9 +20,10 @@ import java.util.List; @@ -20,9 +20,10 @@ import java.util.List;
20 20
21 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 21 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
22 22
  23 +// TODO 芋艿:url
23 @Tag(name = "管理后台 - 签到规则") 24 @Tag(name = "管理后台 - 签到规则")
24 @RestController 25 @RestController
25 -@RequestMapping("/member/point/sign-in-config") 26 +@RequestMapping("/member/sign-in/config")
26 @Validated 27 @Validated
27 public class MemberSignInConfigController { 28 public class MemberSignInConfigController {
28 29
@@ -66,8 +67,8 @@ public class MemberSignInConfigController { @@ -66,8 +67,8 @@ public class MemberSignInConfigController {
66 @Operation(summary = "获得签到规则列表") 67 @Operation(summary = "获得签到规则列表")
67 @PreAuthorize("@ss.hasPermission('point:sign-in-config:query')") 68 @PreAuthorize("@ss.hasPermission('point:sign-in-config:query')")
68 public CommonResult<List<MemberSignInConfigRespVO>> getSignInConfigList() { 69 public CommonResult<List<MemberSignInConfigRespVO>> getSignInConfigList() {
69 - List<MemberSignInConfigDO> pageResult = signInConfigService.getSignInConfigList();  
70 - return success(MemberSignInConfigConvert.INSTANCE.convertList(pageResult)); 70 + List<MemberSignInConfigDO> list = signInConfigService.getSignInConfigList();
  71 + return success(MemberSignInConfigConvert.INSTANCE.convertList(list));
71 } 72 }
72 73
73 } 74 }
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/MemberSignInRecordController.java
@@ -27,7 +27,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils. @@ -27,7 +27,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
27 27
28 @Tag(name = "管理后台 - 签到记录") 28 @Tag(name = "管理后台 - 签到记录")
29 @RestController 29 @RestController
30 -@RequestMapping("/member/point/sign-in-record") 30 +@RequestMapping("/member/sign-in/record")
31 @Validated 31 @Validated
32 public class MemberSignInRecordController { 32 public class MemberSignInRecordController {
33 33
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/point/AppMemberPointRecordController.java 0 → 100644
  1 +package cn.iocoder.yudao.module.member.controller.app.point;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  4 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
  5 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  6 +import cn.iocoder.yudao.module.member.controller.app.point.vo.AppMemberPointRecordRespVO;
  7 +import cn.iocoder.yudao.module.member.convert.point.MemberPointRecordConvert;
  8 +import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointRecordDO;
  9 +import cn.iocoder.yudao.module.member.service.point.MemberPointRecordService;
  10 +import io.swagger.v3.oas.annotations.Operation;
  11 +import io.swagger.v3.oas.annotations.tags.Tag;
  12 +import org.springframework.validation.annotation.Validated;
  13 +import org.springframework.web.bind.annotation.GetMapping;
  14 +import org.springframework.web.bind.annotation.RequestMapping;
  15 +import org.springframework.web.bind.annotation.RestController;
  16 +
  17 +import javax.annotation.Resource;
  18 +import javax.validation.Valid;
  19 +
  20 +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
  21 +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
  22 +
  23 +@Tag(name = "用户 App - 签到记录")
  24 +@RestController
  25 +@RequestMapping("/member/point/record")
  26 +@Validated
  27 +public class AppMemberPointRecordController {
  28 +
  29 + @Resource
  30 + private MemberPointRecordService pointRecordService;
  31 +
  32 + @GetMapping("/page")
  33 + @Operation(summary = "获得用户积分记录分页")
  34 + public CommonResult<PageResult<AppMemberPointRecordRespVO>> getPointRecordPage(@Valid PageParam pageVO) {
  35 + PageResult<MemberPointRecordDO> pageResult = pointRecordService.getPointRecordPage(getLoginUserId(), pageVO);
  36 + return success(MemberPointRecordConvert.INSTANCE.convertPage02(pageResult));
  37 + }
  38 +
  39 +}
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/point/vo/AppMemberPointRecordRespVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.member.controller.app.point.vo;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import lombok.Data;
  5 +
  6 +import java.time.LocalDateTime;
  7 +
  8 +@Schema(description = "用户 App - 用户积分记录 Response VO")
  9 +@Data
  10 +public class AppMemberPointRecordRespVO {
  11 +
  12 + @Schema(description = "自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "31457")
  13 + private Long id;;
  14 +
  15 + @Schema(description = "积分标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜")
  16 + private String title;
  17 +
  18 + @Schema(description = "积分描述", example = "你猜")
  19 + private String description;
  20 +
  21 + @Schema(description = "积分", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
  22 + private Integer point;
  23 +
  24 + @Schema(description = "发生时间", requiredMode = Schema.RequiredMode.REQUIRED)
  25 + private LocalDateTime createTime;
  26 +
  27 +}
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/signin/AppMemberSignInConfigController.java 0 → 100644
  1 +package cn.iocoder.yudao.module.member.controller.app.signin;
  2 +
  3 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  4 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  5 +import cn.iocoder.yudao.module.member.controller.app.signin.vo.config.AppMemberSignInConfigRespVO;
  6 +import cn.iocoder.yudao.module.member.convert.signin.MemberSignInConfigConvert;
  7 +import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInConfigDO;
  8 +import cn.iocoder.yudao.module.member.service.signin.MemberSignInConfigService;
  9 +import io.swagger.v3.oas.annotations.Operation;
  10 +import io.swagger.v3.oas.annotations.tags.Tag;
  11 +import org.springframework.validation.annotation.Validated;
  12 +import org.springframework.web.bind.annotation.GetMapping;
  13 +import org.springframework.web.bind.annotation.RequestMapping;
  14 +import org.springframework.web.bind.annotation.RestController;
  15 +
  16 +import javax.annotation.Resource;
  17 +import java.util.List;
  18 +
  19 +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
  20 +
  21 +@Tag(name = "用户 App - 签到规则")
  22 +@RestController
  23 +@RequestMapping("/member/sign-in/config")
  24 +@Validated
  25 +public class AppMemberSignInConfigController {
  26 +
  27 + @Resource
  28 + private MemberSignInConfigService signInConfigService;
  29 +
  30 + @GetMapping("/list")
  31 + @Operation(summary = "获得签到规则列表")
  32 + public CommonResult<List<AppMemberSignInConfigRespVO>> getSignInConfigList() {
  33 + List<MemberSignInConfigDO> pageResult = signInConfigService.getSignInConfigList(CommonStatusEnum.ENABLE.getStatus());
  34 + return success(MemberSignInConfigConvert.INSTANCE.convertList02(pageResult));
  35 + }
  36 +
  37 +}
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/signin/AppMemberSignInRecordController.java 0 → 100644
  1 +package cn.iocoder.yudao.module.member.controller.app.signin;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  4 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
  5 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  6 +import cn.iocoder.yudao.module.member.controller.app.signin.vo.record.AppMemberSignInRecordRespVO;
  7 +import cn.iocoder.yudao.module.member.controller.app.signin.vo.record.AppMemberSignInRecordSummaryRespVO;
  8 +import cn.iocoder.yudao.module.member.convert.signin.MemberSignInRecordConvert;
  9 +import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO;
  10 +import cn.iocoder.yudao.module.member.service.signin.MemberSignInRecordService;
  11 +import io.swagger.v3.oas.annotations.Operation;
  12 +import io.swagger.v3.oas.annotations.tags.Tag;
  13 +import org.springframework.validation.annotation.Validated;
  14 +import org.springframework.web.bind.annotation.GetMapping;
  15 +import org.springframework.web.bind.annotation.PostMapping;
  16 +import org.springframework.web.bind.annotation.RequestMapping;
  17 +import org.springframework.web.bind.annotation.RestController;
  18 +
  19 +import javax.annotation.Resource;
  20 +import java.time.LocalDateTime;
  21 +
  22 +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
  23 +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
  24 +
  25 +@Tag(name = "管理后台 - 签到记录")
  26 +@RestController
  27 +@RequestMapping("/member/sign-in/record")
  28 +@Validated
  29 +public class AppMemberSignInRecordController {
  30 +
  31 + @Resource
  32 + private MemberSignInRecordService signInRecordService;
  33 +
  34 + // TODO 芋艿:临时 mock => UserSignController.getUserInfo
  35 + @GetMapping("/get-summary")
  36 + @Operation(summary = "获得个人签到统计")
  37 + public CommonResult<AppMemberSignInRecordSummaryRespVO> getSignInRecordSummary() {
  38 + AppMemberSignInRecordSummaryRespVO respVO = new AppMemberSignInRecordSummaryRespVO();
  39 + if (false) {
  40 + respVO.setTotalDay(100);
  41 + respVO.setContinuousDay(5);
  42 + respVO.setTodaySignIn(true);
  43 + } else {
  44 + respVO.setTotalDay(100);
  45 + respVO.setContinuousDay(10);
  46 + respVO.setTodaySignIn(false);
  47 + }
  48 + return success(respVO);
  49 + }
  50 +
  51 + // TODO 芋艿:临时 mock => UserSignController.info
  52 + @PostMapping("/create")
  53 + @Operation(summary = "签到")
  54 + public CommonResult<AppMemberSignInRecordRespVO> createSignInRecord() {
  55 + AppMemberSignInRecordRespVO respVO = new AppMemberSignInRecordRespVO()
  56 + .setPoint(10)
  57 + .setDay(10)
  58 + .setCreateTime(LocalDateTime.now());
  59 + return success(respVO);
  60 + }
  61 +
  62 + @GetMapping("/page")
  63 + @Operation(summary = "获得签到记录分页")
  64 + public CommonResult<PageResult<AppMemberSignInRecordRespVO>> getSignRecordPage(PageParam pageParam) {
  65 + PageResult<MemberSignInRecordDO> pageResult = signInRecordService.getSignRecordPage(getLoginUserId(), pageParam);
  66 + return success(MemberSignInRecordConvert.INSTANCE.convertPage02(pageResult));
  67 + }
  68 +
  69 +}
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/signin/vo/config/AppMemberSignInConfigRespVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.member.controller.app.signin.vo.config;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import lombok.Data;
  5 +
  6 +@Schema(description = "用户 App - 签到规则 Response VO")
  7 +@Data
  8 +public class AppMemberSignInConfigRespVO {
  9 +
  10 + @Schema(description = "签到第 x 天", requiredMode = Schema.RequiredMode.REQUIRED, example = "7")
  11 + private Integer day;
  12 +
  13 + @Schema(description = "奖励积分", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
  14 + private Integer point;
  15 +
  16 +}
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/signin/vo/record/AppMemberSignInRecordRespVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.member.controller.app.signin.vo.record;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import lombok.Data;
  5 +
  6 +import java.time.LocalDateTime;
  7 +
  8 +@Schema(description = "用户 App - 签到记录 Response VO")
  9 +@Data
  10 +public class AppMemberSignInRecordRespVO {
  11 +
  12 + @Schema(description = "第几天签到", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  13 + private Integer day;
  14 +
  15 + @Schema(description = "签到的分数", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
  16 + private Integer point;
  17 +
  18 + @Schema(description = "签到时间", requiredMode = Schema.RequiredMode.REQUIRED)
  19 + private LocalDateTime createTime;
  20 +
  21 +}
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/signin/vo/record/AppMemberSignInRecordSummaryRespVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.member.controller.app.signin.vo.record;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import lombok.Data;
  5 +
  6 +@Schema(description = "用户 App - 个人签到统计 Response VO")
  7 +@Data
  8 +public class AppMemberSignInRecordSummaryRespVO {
  9 +
  10 + @Schema(description = "总签到天数", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
  11 + private Integer totalDay;
  12 +
  13 + @Schema(description = "连续签到第 x 天", requiredMode = Schema.RequiredMode.REQUIRED, example = "3")
  14 + private Integer continuousDay;
  15 +
  16 + @Schema(description = "今天是否已签到", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
  17 + private Boolean todaySignIn;
  18 +
  19 +}
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/point/MemberPointRecordConvert.java
@@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; @@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.common.util.collection.MapUtils; 4 import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
5 import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; 5 import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;
6 import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPointRecordRespVO; 6 import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPointRecordRespVO;
  7 +import cn.iocoder.yudao.module.member.controller.app.point.vo.AppMemberPointRecordRespVO;
7 import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointRecordDO; 8 import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointRecordDO;
8 import org.mapstruct.Mapper; 9 import org.mapstruct.Mapper;
9 import org.mapstruct.factory.Mappers; 10 import org.mapstruct.factory.Mappers;
@@ -33,4 +34,6 @@ public interface MemberPointRecordConvert { @@ -33,4 +34,6 @@ public interface MemberPointRecordConvert {
33 } 34 }
34 PageResult<MemberPointRecordRespVO> convertPage(PageResult<MemberPointRecordDO> pageResult); 35 PageResult<MemberPointRecordRespVO> convertPage(PageResult<MemberPointRecordDO> pageResult);
35 36
  37 + PageResult<AppMemberPointRecordRespVO> convertPage02(PageResult<MemberPointRecordDO> pageResult);
  38 +
36 } 39 }
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/signin/MemberSignInConfigConvert.java
@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.member.convert.signin; @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.member.convert.signin;
3 import cn.iocoder.yudao.module.member.controller.admin.signin.vo.config.MemberSignInConfigCreateReqVO; 3 import cn.iocoder.yudao.module.member.controller.admin.signin.vo.config.MemberSignInConfigCreateReqVO;
4 import cn.iocoder.yudao.module.member.controller.admin.signin.vo.config.MemberSignInConfigRespVO; 4 import cn.iocoder.yudao.module.member.controller.admin.signin.vo.config.MemberSignInConfigRespVO;
5 import cn.iocoder.yudao.module.member.controller.admin.signin.vo.config.MemberSignInConfigUpdateReqVO; 5 import cn.iocoder.yudao.module.member.controller.admin.signin.vo.config.MemberSignInConfigUpdateReqVO;
  6 +import cn.iocoder.yudao.module.member.controller.app.signin.vo.config.AppMemberSignInConfigRespVO;
6 import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInConfigDO; 7 import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInConfigDO;
7 import org.mapstruct.Mapper; 8 import org.mapstruct.Mapper;
8 import org.mapstruct.factory.Mappers; 9 import org.mapstruct.factory.Mappers;
@@ -27,4 +28,6 @@ public interface MemberSignInConfigConvert { @@ -27,4 +28,6 @@ public interface MemberSignInConfigConvert {
27 28
28 List<MemberSignInConfigRespVO> convertList(List<MemberSignInConfigDO> list); 29 List<MemberSignInConfigRespVO> convertList(List<MemberSignInConfigDO> list);
29 30
  31 + List<AppMemberSignInConfigRespVO> convertList02(List<MemberSignInConfigDO> list);
  32 +
30 } 33 }
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/signin/MemberSignInRecordConvert.java
@@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; @@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.common.util.collection.MapUtils; 4 import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
5 import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; 5 import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;
6 import cn.iocoder.yudao.module.member.controller.admin.signin.vo.record.MemberSignInRecordRespVO; 6 import cn.iocoder.yudao.module.member.controller.admin.signin.vo.record.MemberSignInRecordRespVO;
  7 +import cn.iocoder.yudao.module.member.controller.app.signin.vo.record.AppMemberSignInRecordRespVO;
7 import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO; 8 import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO;
8 import org.mapstruct.Mapper; 9 import org.mapstruct.Mapper;
9 import org.mapstruct.factory.Mappers; 10 import org.mapstruct.factory.Mappers;
@@ -33,4 +34,6 @@ public interface MemberSignInRecordConvert { @@ -33,4 +34,6 @@ public interface MemberSignInRecordConvert {
33 } 34 }
34 PageResult<MemberSignInRecordRespVO> convertPage(PageResult<MemberSignInRecordDO> pageResult); 35 PageResult<MemberSignInRecordRespVO> convertPage(PageResult<MemberSignInRecordDO> pageResult);
35 36
  37 + PageResult<AppMemberSignInRecordRespVO> convertPage02(PageResult<MemberSignInRecordDO> pageResult);
  38 +
36 } 39 }
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/signin/MemberSignInRecordDO.java
@@ -22,7 +22,7 @@ import lombok.*; @@ -22,7 +22,7 @@ import lombok.*;
22 public class MemberSignInRecordDO extends BaseDO { 22 public class MemberSignInRecordDO extends BaseDO {
23 23
24 /** 24 /**
25 - * 签到自增id 25 + * 编号
26 */ 26 */
27 @TableId 27 @TableId
28 private Long id; 28 private Long id;
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/user/MemberUserDO.java
@@ -109,6 +109,7 @@ public class MemberUserDO extends TenantBaseDO { @@ -109,6 +109,7 @@ public class MemberUserDO extends TenantBaseDO {
109 * 积分 109 * 积分
110 */ 110 */
111 private Integer point; 111 private Integer point;
  112 + // TODO 芋艿:增加一个 totalPoint;个人信息接口要返回
112 113
113 /** 114 /**
114 * 会员标签列表,以逗号分隔 115 * 会员标签列表,以逗号分隔
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/point/MemberPointRecordMapper.java
1 package cn.iocoder.yudao.module.member.dal.mysql.point; 1 package cn.iocoder.yudao.module.member.dal.mysql.point;
2 2
  3 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; 6 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
@@ -25,4 +26,10 @@ public interface MemberPointRecordMapper extends BaseMapperX&lt;MemberPointRecordDO @@ -25,4 +26,10 @@ public interface MemberPointRecordMapper extends BaseMapperX&lt;MemberPointRecordDO
25 .orderByDesc(MemberPointRecordDO::getId)); 26 .orderByDesc(MemberPointRecordDO::getId));
26 } 27 }
27 28
  29 + default PageResult<MemberPointRecordDO> selectPage(Long userId, PageParam pageVO) {
  30 + return selectPage(pageVO, new LambdaQueryWrapperX<MemberPointRecordDO>()
  31 + .eq(MemberPointRecordDO::getUserId, userId)
  32 + .orderByDesc(MemberPointRecordDO::getId));
  33 + }
  34 +
28 } 35 }
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/signin/MemberSignInConfigMapper.java
@@ -4,6 +4,8 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; @@ -4,6 +4,8 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
4 import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInConfigDO; 4 import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInConfigDO;
5 import org.apache.ibatis.annotations.Mapper; 5 import org.apache.ibatis.annotations.Mapper;
6 6
  7 +import java.util.List;
  8 +
7 /** 9 /**
8 * 签到规则 Mapper 10 * 签到规则 Mapper
9 * 11 *
@@ -16,4 +18,7 @@ public interface MemberSignInConfigMapper extends BaseMapperX&lt;MemberSignInConfig @@ -16,4 +18,7 @@ public interface MemberSignInConfigMapper extends BaseMapperX&lt;MemberSignInConfig
16 return selectOne(MemberSignInConfigDO::getDay, day); 18 return selectOne(MemberSignInConfigDO::getDay, day);
17 } 19 }
18 20
  21 + default List<MemberSignInConfigDO> selectListByStatus(Integer status) {
  22 + return selectList(MemberSignInConfigDO::getStatus, status);
  23 + }
19 } 24 }
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/signin/MemberSignInRecordMapper.java
1 package cn.iocoder.yudao.module.member.dal.mysql.signin; 1 package cn.iocoder.yudao.module.member.dal.mysql.signin;
2 2
  3 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; 6 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
@@ -25,4 +26,10 @@ public interface MemberSignInRecordMapper extends BaseMapperX&lt;MemberSignInRecord @@ -25,4 +26,10 @@ public interface MemberSignInRecordMapper extends BaseMapperX&lt;MemberSignInRecord
25 .orderByDesc(MemberSignInRecordDO::getId)); 26 .orderByDesc(MemberSignInRecordDO::getId));
26 } 27 }
27 28
  29 + default PageResult<MemberSignInRecordDO> selectPage(Long userId, PageParam pageParam) {
  30 + return selectPage(pageParam, new LambdaQueryWrapperX<MemberSignInRecordDO>()
  31 + .eq(MemberSignInRecordDO::getUserId, userId)
  32 + .orderByDesc(MemberSignInRecordDO::getId));
  33 + }
  34 +
28 } 35 }
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/point/MemberPointConfigService.java
@@ -17,13 +17,13 @@ public interface MemberPointConfigService { @@ -17,13 +17,13 @@ public interface MemberPointConfigService {
17 * 17 *
18 * @param saveReqVO 更新信息 18 * @param saveReqVO 更新信息
19 */ 19 */
20 - void saveConfig(@Valid MemberPointConfigSaveReqVO saveReqVO); 20 + void savePointConfig(@Valid MemberPointConfigSaveReqVO saveReqVO);
21 21
22 /** 22 /**
23 * 获得会员积分配置 23 * 获得会员积分配置
24 * 24 *
25 * @return 积分配置 25 * @return 积分配置
26 */ 26 */
27 - MemberPointConfigDO getConfig(); 27 + MemberPointConfigDO getPointConfig();
28 28
29 } 29 }
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/point/MemberPointConfigServiceImpl.java
@@ -24,9 +24,9 @@ public class MemberPointConfigServiceImpl implements MemberPointConfigService { @@ -24,9 +24,9 @@ public class MemberPointConfigServiceImpl implements MemberPointConfigService {
24 private MemberPointConfigMapper pointConfigMapper; 24 private MemberPointConfigMapper pointConfigMapper;
25 25
26 @Override 26 @Override
27 - public void saveConfig(MemberPointConfigSaveReqVO saveReqVO) { 27 + public void savePointConfig(MemberPointConfigSaveReqVO saveReqVO) {
28 // 存在,则进行更新 28 // 存在,则进行更新
29 - MemberPointConfigDO dbConfig = getConfig(); 29 + MemberPointConfigDO dbConfig = getPointConfig();
30 if (dbConfig != null) { 30 if (dbConfig != null) {
31 pointConfigMapper.updateById(MemberPointConfigConvert.INSTANCE.convert(saveReqVO).setId(dbConfig.getId())); 31 pointConfigMapper.updateById(MemberPointConfigConvert.INSTANCE.convert(saveReqVO).setId(dbConfig.getId()));
32 return; 32 return;
@@ -36,7 +36,7 @@ public class MemberPointConfigServiceImpl implements MemberPointConfigService { @@ -36,7 +36,7 @@ public class MemberPointConfigServiceImpl implements MemberPointConfigService {
36 } 36 }
37 37
38 @Override 38 @Override
39 - public MemberPointConfigDO getConfig() { 39 + public MemberPointConfigDO getPointConfig() {
40 List<MemberPointConfigDO> list = pointConfigMapper.selectList(); 40 List<MemberPointConfigDO> list = pointConfigMapper.selectList();
41 return CollectionUtils.getFirst(list); 41 return CollectionUtils.getFirst(list);
42 } 42 }
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/point/MemberPointRecordService.java
1 package cn.iocoder.yudao.module.member.service.point; 1 package cn.iocoder.yudao.module.member.service.point;
2 2
  3 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPointRecordPageReqVO; 5 import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPointRecordPageReqVO;
5 import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointRecordDO; 6 import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointRecordDO;
6 7
7 -import javax.validation.Valid;  
8 -  
9 /** 8 /**
10 * 用户积分记录 Service 接口 9 * 用户积分记录 Service 接口
11 * 10 *
@@ -14,11 +13,20 @@ import javax.validation.Valid; @@ -14,11 +13,20 @@ import javax.validation.Valid;
14 public interface MemberPointRecordService { 13 public interface MemberPointRecordService {
15 14
16 /** 15 /**
17 - * 获得用户积分记录分页 16 + * 【管理员】获得积分记录分页
18 * 17 *
19 * @param pageReqVO 分页查询 18 * @param pageReqVO 分页查询
20 - * @return 用户积分记录分页 19 + * @return 签到记录分页
  20 + */
  21 + PageResult<MemberPointRecordDO> getPointRecordPage(MemberPointRecordPageReqVO pageReqVO);
  22 +
  23 + /**
  24 + * 【会员】获得积分记录分页
  25 + *
  26 + * @param userId 用户编号
  27 + * @param pageVO 分页查询
  28 + * @return 签到记录分页
21 */ 29 */
22 - PageResult<MemberPointRecordDO> getRecordPage(MemberPointRecordPageReqVO pageReqVO); 30 + PageResult<MemberPointRecordDO> getPointRecordPage(Long userId, PageParam pageVO);
23 31
24 } 32 }
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/point/MemberPointRecordServiceImpl.java
1 package cn.iocoder.yudao.module.member.service.point; 1 package cn.iocoder.yudao.module.member.service.point;
2 2
  3 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.module.member.api.user.MemberUserApi; 5 import cn.iocoder.yudao.module.member.api.user.MemberUserApi;
5 import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; 6 import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;
@@ -19,7 +20,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils. @@ -19,7 +20,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
19 20
20 21
21 /** 22 /**
22 - * 用户积分记录 Service 实现类 23 + * 积分记录 Service 实现类
23 * 24 *
24 * @author QingX 25 * @author QingX
25 */ 26 */
@@ -34,7 +35,7 @@ public class MemberPointRecordServiceImpl implements MemberPointRecordService { @@ -34,7 +35,7 @@ public class MemberPointRecordServiceImpl implements MemberPointRecordService {
34 private MemberUserApi memberUserApi; 35 private MemberUserApi memberUserApi;
35 36
36 @Override 37 @Override
37 - public PageResult<MemberPointRecordDO> getRecordPage(MemberPointRecordPageReqVO pageReqVO) { 38 + public PageResult<MemberPointRecordDO> getPointRecordPage(MemberPointRecordPageReqVO pageReqVO) {
38 // 根据用户昵称查询出用户 ids 39 // 根据用户昵称查询出用户 ids
39 Set<Long> userIds = null; 40 Set<Long> userIds = null;
40 if (StringUtils.isNotBlank(pageReqVO.getNickname())) { 41 if (StringUtils.isNotBlank(pageReqVO.getNickname())) {
@@ -49,4 +50,9 @@ public class MemberPointRecordServiceImpl implements MemberPointRecordService { @@ -49,4 +50,9 @@ public class MemberPointRecordServiceImpl implements MemberPointRecordService {
49 return recordMapper.selectPage(pageReqVO, userIds); 50 return recordMapper.selectPage(pageReqVO, userIds);
50 } 51 }
51 52
  53 + @Override
  54 + public PageResult<MemberPointRecordDO> getPointRecordPage(Long userId, PageParam pageVO) {
  55 + return recordMapper.selectPage(userId, pageVO);
  56 + }
  57 +
52 } 58 }
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInConfigService.java
@@ -45,10 +45,18 @@ public interface MemberSignInConfigService { @@ -45,10 +45,18 @@ public interface MemberSignInConfigService {
45 MemberSignInConfigDO getSignInConfig(Long id); 45 MemberSignInConfigDO getSignInConfig(Long id);
46 46
47 /** 47 /**
48 - * 获得签到规则分页 48 + * 获得签到规则列表
49 * 49 *
50 * @return 签到规则分页 50 * @return 签到规则分页
51 */ 51 */
52 List<MemberSignInConfigDO> getSignInConfigList(); 52 List<MemberSignInConfigDO> getSignInConfigList();
53 53
  54 + /**
  55 + * 获得签到规则列表
  56 + *
  57 + * @param status 状态
  58 + * @return 签到规则分页
  59 + */
  60 + List<MemberSignInConfigDO> getSignInConfigList(Integer status);
  61 +
54 } 62 }
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInConfigServiceImpl.java
@@ -96,4 +96,11 @@ public class MemberSignInConfigServiceImpl implements MemberSignInConfigService @@ -96,4 +96,11 @@ public class MemberSignInConfigServiceImpl implements MemberSignInConfigService
96 return list; 96 return list;
97 } 97 }
98 98
  99 + @Override
  100 + public List<MemberSignInConfigDO> getSignInConfigList(Integer status) {
  101 + List<MemberSignInConfigDO> list = signInConfigMapper.selectListByStatus(status);
  102 + list.sort(Comparator.comparing(MemberSignInConfigDO::getDay));
  103 + return list;
  104 + }
  105 +
99 } 106 }
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInRecordService.java
1 package cn.iocoder.yudao.module.member.service.signin; 1 package cn.iocoder.yudao.module.member.service.signin;
2 2
  3 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.module.member.controller.admin.signin.vo.record.MemberSignInRecordPageReqVO; 5 import cn.iocoder.yudao.module.member.controller.admin.signin.vo.record.MemberSignInRecordPageReqVO;
5 import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO; 6 import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO;
@@ -12,11 +13,20 @@ import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO @@ -12,11 +13,20 @@ import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO
12 public interface MemberSignInRecordService { 13 public interface MemberSignInRecordService {
13 14
14 /** 15 /**
15 - * 获得签到记录分页 16 + * 【管理员】获得签到记录分页
16 * 17 *
17 * @param pageReqVO 分页查询 18 * @param pageReqVO 分页查询
18 * @return 签到记录分页 19 * @return 签到记录分页
19 */ 20 */
20 PageResult<MemberSignInRecordDO> getSignInRecordPage(MemberSignInRecordPageReqVO pageReqVO); 21 PageResult<MemberSignInRecordDO> getSignInRecordPage(MemberSignInRecordPageReqVO pageReqVO);
21 22
  23 + /**
  24 + * 【会员】获得签到记录分页
  25 + *
  26 + * @param userId 用户编号
  27 + * @param pageParam 分页查询
  28 + * @return 签到记录分页
  29 + */
  30 + PageResult<MemberSignInRecordDO> getSignRecordPage(Long userId, PageParam pageParam);
  31 +
22 } 32 }
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInRecordServiceImpl.java
1 package cn.iocoder.yudao.module.member.service.signin; 1 package cn.iocoder.yudao.module.member.service.signin;
2 2
  3 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.module.member.api.user.MemberUserApi; 5 import cn.iocoder.yudao.module.member.api.user.MemberUserApi;
5 import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; 6 import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;
6 import cn.iocoder.yudao.module.member.controller.admin.signin.vo.record.MemberSignInRecordPageReqVO; 7 import cn.iocoder.yudao.module.member.controller.admin.signin.vo.record.MemberSignInRecordPageReqVO;
  8 +import cn.iocoder.yudao.module.member.controller.app.signin.vo.record.AppMemberSignInRecordRespVO;
7 import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO; 9 import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO;
8 import cn.iocoder.yudao.module.member.dal.mysql.signin.MemberSignInRecordMapper; 10 import cn.iocoder.yudao.module.member.dal.mysql.signin.MemberSignInRecordMapper;
9 import org.apache.commons.lang3.StringUtils; 11 import org.apache.commons.lang3.StringUtils;
@@ -48,4 +50,9 @@ public class MemberSignInRecordServiceImpl implements MemberSignInRecordService @@ -48,4 +50,9 @@ public class MemberSignInRecordServiceImpl implements MemberSignInRecordService
48 return signInRecordMapper.selectPage(pageReqVO, userIds); 50 return signInRecordMapper.selectPage(pageReqVO, userIds);
49 } 51 }
50 52
  53 + @Override
  54 + public PageResult<MemberSignInRecordDO> getSignRecordPage(Long userId, PageParam pageParam) {
  55 + return signInRecordMapper.selectPage(userId, pageParam);
  56 + }
  57 +
51 } 58 }
yudao-server/pom.xml
@@ -54,11 +54,11 @@ @@ -54,11 +54,11 @@
54 <!-- <version>${revision}</version>--> 54 <!-- <version>${revision}</version>-->
55 <!-- </dependency>--> 55 <!-- </dependency>-->
56 <!-- 支付服务。默认注释,保证编译速度 --> 56 <!-- 支付服务。默认注释,保证编译速度 -->
57 -<!-- <dependency>-->  
58 -<!-- <groupId>cn.iocoder.boot</groupId>-->  
59 -<!-- <artifactId>yudao-module-pay-biz</artifactId>-->  
60 -<!-- <version>${revision}</version>-->  
61 -<!-- </dependency>--> 57 + <dependency>
  58 + <groupId>cn.iocoder.boot</groupId>
  59 + <artifactId>yudao-module-pay-biz</artifactId>
  60 + <version>${revision}</version>
  61 + </dependency>
62 62
63 <!-- 微信公众号模块。默认注释,保证编译速度 --> 63 <!-- 微信公众号模块。默认注释,保证编译速度 -->
64 <!-- <dependency>--> 64 <!-- <dependency>-->
@@ -68,21 +68,21 @@ @@ -68,21 +68,21 @@
68 <!-- </dependency>--> 68 <!-- </dependency>-->
69 69
70 <!-- 商城相关模块。默认注释,保证编译速度 --> 70 <!-- 商城相关模块。默认注释,保证编译速度 -->
71 -<!-- <dependency>-->  
72 -<!-- <groupId>cn.iocoder.boot</groupId>-->  
73 -<!-- <artifactId>yudao-module-promotion-biz</artifactId>-->  
74 -<!-- <version>${revision}</version>-->  
75 -<!-- </dependency>-->  
76 -<!-- <dependency>-->  
77 -<!-- <groupId>cn.iocoder.boot</groupId>-->  
78 -<!-- <artifactId>yudao-module-product-biz</artifactId>-->  
79 -<!-- <version>${revision}</version>-->  
80 -<!-- </dependency>-->  
81 -<!-- <dependency>-->  
82 -<!-- <groupId>cn.iocoder.boot</groupId>-->  
83 -<!-- <artifactId>yudao-module-trade-biz</artifactId>-->  
84 -<!-- <version>${revision}</version>-->  
85 -<!-- </dependency>--> 71 + <dependency>
  72 + <groupId>cn.iocoder.boot</groupId>
  73 + <artifactId>yudao-module-promotion-biz</artifactId>
  74 + <version>${revision}</version>
  75 + </dependency>
  76 + <dependency>
  77 + <groupId>cn.iocoder.boot</groupId>
  78 + <artifactId>yudao-module-product-biz</artifactId>
  79 + <version>${revision}</version>
  80 + </dependency>
  81 + <dependency>
  82 + <groupId>cn.iocoder.boot</groupId>
  83 + <artifactId>yudao-module-trade-biz</artifactId>
  84 + <version>${revision}</version>
  85 + </dependency>
86 86
87 <!-- spring boot 配置所需依赖 --> 87 <!-- spring boot 配置所需依赖 -->
88 <dependency> 88 <dependency>