From 836e019db92b9871cba9d440c8159b35f79e1726 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 30 Mar 2023 09:32:42 +0800
Subject: [PATCH] 根据补贴记录,减少用户贡献值

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java |   29 ++++++++++++++++++++++++++++-
 1 files changed, 28 insertions(+), 1 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java
index 22159cc..6f6bf9a 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java
@@ -10,8 +10,10 @@
 import cc.mrbird.febs.mall.dto.ScoreSettingDto;
 import cc.mrbird.febs.mall.entity.*;
 import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper;
+import cc.mrbird.febs.mall.mapper.MallMemberMapper;
 import cc.mrbird.febs.mall.mapper.MallMemberWalletMapper;
 import cc.mrbird.febs.mall.mapper.MallScoreSignRecordMapper;
+import cc.mrbird.febs.mall.service.IApiMallMemberService;
 import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
 import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
 import cc.mrbird.febs.mall.service.IScoreService;
@@ -22,6 +24,7 @@
 import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
@@ -47,6 +50,7 @@
     private final MallScoreSignRecordMapper mallScoreSignRecordMapper;
     private final IMallMoneyFlowService mallMoneyFlowService;
     private final IApiMallMemberWalletService walletService;
+    private final MallMemberMapper mallMemberMapper;
 
     @Override
     public ScoreSignVo scoreSign() {
@@ -100,6 +104,7 @@
         if (signScoreDic == null) {
             throw new FebsException("签到活动未开启");
         }
+        Integer signScore = Integer.parseInt(signScoreDic.getValue());
 
         MallScoreSignRecord mallScoreSignRecord = mallScoreSignRecordMapper.selectRecentSignRecord(member.getId());
         if (mallScoreSignRecord == null) {
@@ -109,8 +114,30 @@
         if (mallScoreSignRecord.getSignTime() != null && DateUtil.betweenDay(mallScoreSignRecord.getSignTime(), new Date(), true) == 0) {
             throw new FebsException("今日已签到");
         }
+        /**
+         * 用户注册时间开始计算
+         * 判断签到时间是否大于规定的signScoreDays,超出则获得的积分数为signScoreCnt
+         */
+//        Integer count = mallScoreSignRecordMapper.selectCountByMemberId(member.getId());
+        DataDictionaryCustom signScoreDaysDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.SIGN_SCORE_DAYS.getType(),
+                DataDictionaryEnum.SIGN_SCORE_DAYS.getCode());
+        Integer signScoreDays = Integer.parseInt(signScoreDaysDic.getValue());
 
-        Integer signScore = Integer.parseInt(signScoreDic.getValue());
+        MallMember mallMember = mallMemberMapper.selectById(member.getId());
+        Date createdTime = mallMember.getCreatedTime();
+
+        DateTime dateTime = DateUtil.offsetDay(createdTime, signScoreDays);
+        /**
+         * 签到时间不在系统设置的第一个阶段,则获取签到设置-签到积分后续获得积分数量
+         */
+        if(DateUtil.compare(dateTime, new Date()) < 0){
+            DataDictionaryCustom signScoreCntDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                    DataDictionaryEnum.SIGN_SCORE_CNT.getType(),
+                    DataDictionaryEnum.SIGN_SCORE_CNT.getCode());
+            Integer signScoreCnt = Integer.parseInt(signScoreCntDic.getValue());
+            signScore = signScoreCnt;
+        }
         mallScoreSignRecord.setMemberId(member.getId());
         mallScoreSignRecord.setTotalCnt(signScore);
         mallScoreSignRecord.setSignTime(new Date());

--
Gitblit v1.9.1