瀏覽代碼

code review:sign 签到逻辑

YunaiV 1 年之前
父節點
當前提交
07dbfc5546

+ 0 - 23
yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/api/coupon/CouponTemplateApi.java

@@ -1,23 +0,0 @@
-package cn.iocoder.yudao.module.promotion.api.coupon;
-
-import cn.iocoder.yudao.module.promotion.api.coupon.dto.CouponTemplateRespDTO;
-
-import java.util.Collection;
-import java.util.List;
-
-/**
- * 优惠劵模版 API 接口
- *
- * @author HUIHUI
- */
-public interface CouponTemplateApi {
-
-    /**
-     * 获得优惠券模版的精简信息列表
-     *
-     * @param ids 优惠券模版编号
-     * @return 优惠券模版的精简信息列表
-     */
-    List<CouponTemplateRespDTO> getCouponTemplateListByIds(Collection<Long> ids);
-
-}

+ 0 - 30
yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/api/coupon/dto/CouponTemplateRespDTO.java

@@ -1,30 +0,0 @@
-package cn.iocoder.yudao.module.promotion.api.coupon.dto;
-
-import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
-import lombok.Data;
-
-/**
- * 优惠券模版 Response DTO
- *
- * @author HUIHUI
- */
-@Data
-public class CouponTemplateRespDTO {
-    /**
-     * 模板编号,自增唯一
-     */
-
-    private Long id;
-    /**
-     * 优惠劵名
-     */
-    private String name;
-
-    /**
-     * 状态
-     *
-     * 枚举 {@link CommonStatusEnum}
-     */
-    private Integer status;
-
-}

+ 0 - 33
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/api/coupon/CouponTemplateApiImpl.java

@@ -1,33 +0,0 @@
-package cn.iocoder.yudao.module.promotion.api.coupon;
-
-import cn.hutool.core.collection.CollUtil;
-import cn.iocoder.yudao.module.promotion.api.coupon.dto.CouponTemplateRespDTO;
-import cn.iocoder.yudao.module.promotion.convert.coupon.CouponTemplateConvert;
-import cn.iocoder.yudao.module.promotion.service.coupon.CouponTemplateService;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * 优惠劵模版 API 接口实现类
- *
- * @author HUIHUI
- */
-@Service
-public class CouponTemplateApiImpl implements CouponTemplateApi {
-
-    @Resource
-    private CouponTemplateService couponTemplateService;
-
-    @Override
-    public List<CouponTemplateRespDTO> getCouponTemplateListByIds(Collection<Long> ids) {
-        if (CollUtil.isEmpty(ids)) { // 防御一下
-            return Collections.emptyList();
-        }
-        return CouponTemplateConvert.INSTANCE.convertList(couponTemplateService.getCouponTemplateListByIds(ids));
-    }
-
-}

+ 0 - 3
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;
 
 import cn.hutool.core.map.MapUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.module.promotion.api.coupon.dto.CouponTemplateRespDTO;
 import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplateCreateReqVO;
 import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplatePageReqVO;
 import cn.iocoder.yudao.module.promotion.controller.admin.coupon.vo.template.CouponTemplateRespVO;
@@ -59,6 +58,4 @@ public interface CouponTemplateConvert {
         }
     }
 
-    List<CouponTemplateRespDTO> convertList(List<CouponTemplateDO> list);
-
 }

+ 0 - 4
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<CouponTemplateDO> {
         return canTakeConsumer;
     }
 
-    default List<CouponTemplateDO> selectListByIds(Collection<Long> ids) {
-        return selectList(new LambdaQueryWrapperX<CouponTemplateDO>().in(CouponTemplateDO::getId, ids));
-    }
-
 }

+ 1 - 1
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 {
      * @param ids 优惠券模版编号
      * @return 优惠券模版列表
      */
-    List<CouponTemplateDO> getCouponTemplateListByIds(Collection<Long> ids);
+    List<CouponTemplateDO> getCouponTemplateList(Collection<Long> ids);
 
 }

+ 2 - 2
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 {
     }
 
     @Override
-    public List<CouponTemplateDO> getCouponTemplateListByIds(Collection<Long> ids) {
-        return couponTemplateMapper.selectListByIds(ids);
+    public List<CouponTemplateDO> getCouponTemplateList(Collection<Long> ids) {
+        return couponTemplateMapper.selectBatchIds(ids);
     }
 
 }

+ 10 - 11
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 {
 
     AppMemberSignInRecordRespVO coverRecordToAppRecordVo(MemberSignInRecordDO memberSignInRecordDO);
 
-    default MemberSignInRecordDO convert(Long userId, MemberSignInRecordDO lastRecord, List<MemberSignInConfigDO> signInConfigs) {
-        // 1. 获取最大签到天数积分配置
-        signInConfigs.sort(Comparator.comparing(MemberSignInConfigDO::getDay));
-        MemberSignInConfigDO lastConfig = signInConfigs.get(signInConfigs.size() - 1); // 最大签到天数配置
+    default MemberSignInRecordDO convert(Long userId, MemberSignInRecordDO lastRecord, List<MemberSignInConfigDO> configs) {
+        // 1. 计算是第几天签到
+        configs.sort(Comparator.comparing(MemberSignInConfigDO::getDay));
+        MemberSignInConfigDO lastConfig = CollUtil.getLast(configs); // 最大签到天数配置
         // 1.2. 计算今天是第几天签到
         int day = 1;
+        // TODO @puhui999:要判断是不是昨天签到的;是否是昨天的判断,可以抽个方法到 util 里
         if (lastRecord != null) {
             day = lastRecord.getDay() + 1;
         }
@@ -56,14 +57,12 @@ public interface MemberSignInRecordConvert {
         if (day > lastConfig.getDay()) {
             day = 1; // 超过最大配置的天数,重置到第一天。(也就是说开启下一轮签到)
         }
-        // 1.4 初始化签到信息
-        MemberSignInRecordDO record = new MemberSignInRecordDO().setUserId(userId)
-                .setDay(day) // 设置签到天数
-                .setPoint(0)  // 设置签到积分默认为 0
-                .setExperience(0);  // 设置签到经验默认为 0
 
-        // 2. 获取签到对应的积分
-        MemberSignInConfigDO config = CollUtil.findOne(signInConfigs, item -> ObjUtil.equal(item.getDay(), record.getDay()));
+        // 2.1 初始化签到信息
+        MemberSignInRecordDO record = new MemberSignInRecordDO().setUserId(userId)
+                .setDay(day).setPoint(0).setExperience(0);
+        // 2.2 获取签到对应的积分
+        MemberSignInConfigDO config = CollUtil.findOne(configs, item -> ObjUtil.equal(item.getDay(), record.getDay()));
         if (config == null) {
             return record;
         }

+ 1 - 0
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
         // TODO @puhui999:连续签到,可以基于 lastRecord 的 day 和当前时间判断呀?按 day 统计连续签到天数可能不准确
         //      1. day 只是记录第几天签到的有可能不连续,比如第一次签到是周一,第二次签到是周三这样 lastRecord 的 day 为 2 但是并不是连续的两天
         //      2. day 超出签到规则的最大天数会重置到从第一天开始签到(我理解为开始下一轮,类似一周签到七天七天结束下周又从周一开始签到)
+        // 1. 回复:周三签到,day 要归 1 呀。连续签到哈;
         List<MemberSignInRecordDO> signInRecords = signInRecordMapper.selectListByUserId(userId);
         signInRecords.sort(Comparator.comparing(MemberSignInRecordDO::getCreateTime).reversed()); // 根据签到时间倒序
         summary.setContinuousDay(calculateConsecutiveDays(signInRecords));