Commit 07dbfc55466484caaa8c06abc2af66cf00ac083a

Authored by YunaiV
1 parent c7695def

code review:sign 签到逻辑

yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/api/coupon/CouponTemplateApi.java deleted
1   -package cn.iocoder.yudao.module.promotion.api.coupon;
2   -
3   -import cn.iocoder.yudao.module.promotion.api.coupon.dto.CouponTemplateRespDTO;
4   -
5   -import java.util.Collection;
6   -import java.util.List;
7   -
8   -/**
9   - * 优惠劵模版 API 接口
10   - *
11   - * @author HUIHUI
12   - */
13   -public interface CouponTemplateApi {
14   -
15   - /**
16   - * 获得优惠券模版的精简信息列表
17   - *
18   - * @param ids 优惠券模版编号
19   - * @return 优惠券模版的精简信息列表
20   - */
21   - List<CouponTemplateRespDTO> getCouponTemplateListByIds(Collection<Long> ids);
22   -
23   -}
yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/api/coupon/dto/CouponTemplateRespDTO.java deleted
1   -package cn.iocoder.yudao.module.promotion.api.coupon.dto;
2   -
3   -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4   -import lombok.Data;
5   -
6   -/**
7   - * 优惠券模版 Response DTO
8   - *
9   - * @author HUIHUI
10   - */
11   -@Data
12   -public class CouponTemplateRespDTO {
13   - /**
14   - * 模板编号,自增唯一
15   - */
16   -
17   - private Long id;
18   - /**
19   - * 优惠劵名
20   - */
21   - private String name;
22   -
23   - /**
24   - * 状态
25   - *
26   - * 枚举 {@link CommonStatusEnum}
27   - */
28   - private Integer status;
29   -
30   -}
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/api/coupon/CouponTemplateApiImpl.java deleted
1   -package cn.iocoder.yudao.module.promotion.api.coupon;
2   -
3   -import cn.hutool.core.collection.CollUtil;
4   -import cn.iocoder.yudao.module.promotion.api.coupon.dto.CouponTemplateRespDTO;
5   -import cn.iocoder.yudao.module.promotion.convert.coupon.CouponTemplateConvert;
6   -import cn.iocoder.yudao.module.promotion.service.coupon.CouponTemplateService;
7   -import org.springframework.stereotype.Service;
8   -
9   -import javax.annotation.Resource;
10   -import java.util.Collection;
11   -import java.util.Collections;
12   -import java.util.List;
13   -
14   -/**
15   - * 优惠劵模版 API 接口实现类
16   - *
17   - * @author HUIHUI
18   - */
19   -@Service
20   -public class CouponTemplateApiImpl implements CouponTemplateApi {
21   -
22   - @Resource
23   - private CouponTemplateService couponTemplateService;
24   -
25   - @Override
26   - public List<CouponTemplateRespDTO> getCouponTemplateListByIds(Collection<Long> ids) {
27   - if (CollUtil.isEmpty(ids)) { // 防御一下
28   - return Collections.emptyList();
29   - }
30   - return CouponTemplateConvert.INSTANCE.convertList(couponTemplateService.getCouponTemplateListByIds(ids));
31   - }
32   -
33   -}
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/coupon/CouponTemplateConvert.java
... ... @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.promotion.convert.coupon;
2 2  
3 3 import cn.hutool.core.map.MapUtil;
4 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5   -import cn.iocoder.yudao.module.promotion.api.coupon.dto.CouponTemplateRespDTO;
6 5 import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplateCreateReqVO;
7 6 import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplatePageReqVO;
8 7 import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplateRespVO;
... ... @@ -59,6 +58,4 @@ public interface CouponTemplateConvert {
59 58 }
60 59 }
61 60  
62   - List<CouponTemplateRespDTO> convertList(List<CouponTemplateDO> list);
63   -
64 61 }
... ...
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/dal/mysql/coupon/CouponTemplateMapper.java
... ... @@ -75,8 +75,4 @@ public interface CouponTemplateMapper extends BaseMapperX&lt;CouponTemplateDO&gt; {
75 75 return canTakeConsumer;
76 76 }
77 77  
78   - default List<CouponTemplateDO> selectListByIds(Collection<Long> ids) {
79   - return selectList(new LambdaQueryWrapperX<CouponTemplateDO>().in(CouponTemplateDO::getId, ids));
80   - }
81   -
82 78 }
... ...
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/coupon/CouponTemplateService.java
... ... @@ -98,6 +98,6 @@ public interface CouponTemplateService {
98 98 * @param ids 优惠券模版编号
99 99 * @return 优惠券模版列表
100 100 */
101   - List<CouponTemplateDO> getCouponTemplateListByIds(Collection<Long> ids);
  101 + List<CouponTemplateDO> getCouponTemplateList(Collection<Long> ids);
102 102  
103 103 }
... ...
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/coupon/CouponTemplateServiceImpl.java
... ... @@ -128,8 +128,8 @@ public class CouponTemplateServiceImpl implements CouponTemplateService {
128 128 }
129 129  
130 130 @Override
131   - public List<CouponTemplateDO> getCouponTemplateListByIds(Collection<Long> ids) {
132   - return couponTemplateMapper.selectListByIds(ids);
  131 + public List<CouponTemplateDO> getCouponTemplateList(Collection<Long> ids) {
  132 + return couponTemplateMapper.selectBatchIds(ids);
133 133 }
134 134  
135 135 }
... ...
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/signin/MemberSignInRecordConvert.java
... ... @@ -43,12 +43,13 @@ public interface MemberSignInRecordConvert {
43 43  
44 44 AppMemberSignInRecordRespVO coverRecordToAppRecordVo(MemberSignInRecordDO memberSignInRecordDO);
45 45  
46   - default MemberSignInRecordDO convert(Long userId, MemberSignInRecordDO lastRecord, List<MemberSignInConfigDO> signInConfigs) {
47   - // 1. 获取最大签到天数积分配置
48   - signInConfigs.sort(Comparator.comparing(MemberSignInConfigDO::getDay));
49   - MemberSignInConfigDO lastConfig = signInConfigs.get(signInConfigs.size() - 1); // 最大签到天数配置
  46 + default MemberSignInRecordDO convert(Long userId, MemberSignInRecordDO lastRecord, List<MemberSignInConfigDO> configs) {
  47 + // 1. 计算是第几天签到
  48 + configs.sort(Comparator.comparing(MemberSignInConfigDO::getDay));
  49 + MemberSignInConfigDO lastConfig = CollUtil.getLast(configs); // 最大签到天数配置
50 50 // 1.2. 计算今天是第几天签到
51 51 int day = 1;
  52 + // TODO @puhui999:要判断是不是昨天签到的;是否是昨天的判断,可以抽个方法到 util 里
52 53 if (lastRecord != null) {
53 54 day = lastRecord.getDay() + 1;
54 55 }
... ... @@ -56,14 +57,12 @@ public interface MemberSignInRecordConvert {
56 57 if (day > lastConfig.getDay()) {
57 58 day = 1; // 超过最大配置的天数,重置到第一天。(也就是说开启下一轮签到)
58 59 }
59   - // 1.4 初始化签到信息
60   - MemberSignInRecordDO record = new MemberSignInRecordDO().setUserId(userId)
61   - .setDay(day) // 设置签到天数
62   - .setPoint(0) // 设置签到积分默认为 0
63   - .setExperience(0); // 设置签到经验默认为 0
64 60  
65   - // 2. 获取签到对应的积分
66   - MemberSignInConfigDO config = CollUtil.findOne(signInConfigs, item -> ObjUtil.equal(item.getDay(), record.getDay()));
  61 + // 2.1 初始化签到信息
  62 + MemberSignInRecordDO record = new MemberSignInRecordDO().setUserId(userId)
  63 + .setDay(day).setPoint(0).setExperience(0);
  64 + // 2.2 获取签到对应的积分
  65 + MemberSignInConfigDO config = CollUtil.findOne(configs, item -> ObjUtil.equal(item.getDay(), record.getDay()));
67 66 if (config == null) {
68 67 return record;
69 68 }
... ...
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInRecordServiceImpl.java
... ... @@ -85,6 +85,7 @@ public class MemberSignInRecordServiceImpl implements MemberSignInRecordService
85 85 // TODO @puhui999:连续签到,可以基于 lastRecord 的 day 和当前时间判断呀?按 day 统计连续签到天数可能不准确
86 86 // 1. day 只是记录第几天签到的有可能不连续,比如第一次签到是周一,第二次签到是周三这样 lastRecord 的 day 为 2 但是并不是连续的两天
87 87 // 2. day 超出签到规则的最大天数会重置到从第一天开始签到(我理解为开始下一轮,类似一周签到七天七天结束下周又从周一开始签到)
  88 + // 1. 回复:周三签到,day 要归 1 呀。连续签到哈;
88 89 List<MemberSignInRecordDO> signInRecords = signInRecordMapper.selectListByUserId(userId);
89 90 signInRecords.sort(Comparator.comparing(MemberSignInRecordDO::getCreateTime).reversed()); // 根据签到时间倒序
90 91 summary.setContinuousDay(calculateConsecutiveDays(signInRecords));
... ...