From c8553669f87a7bc4df3b2279ad4473b6b212a127 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 15 Mar 2023 14:46:42 +0800
Subject: [PATCH] 后台修改

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java |   20 ++++++++++++++++++--
 1 files changed, 18 insertions(+), 2 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..7697f74 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
@@ -22,6 +22,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;
@@ -100,6 +101,7 @@
         if (signScoreDic == null) {
             throw new FebsException("签到活动未开启");
         }
+        Integer signScore = Integer.parseInt(signScoreDic.getValue());
 
         MallScoreSignRecord mallScoreSignRecord = mallScoreSignRecordMapper.selectRecentSignRecord(member.getId());
         if (mallScoreSignRecord == null) {
@@ -109,8 +111,22 @@
         if (mallScoreSignRecord.getSignTime() != null && DateUtil.betweenDay(mallScoreSignRecord.getSignTime(), new Date(), true) == 0) {
             throw new FebsException("今日已签到");
         }
-
-        Integer signScore = Integer.parseInt(signScoreDic.getValue());
+        /**
+         * 获取签到次数
+         * 判断签到次数是否大于规定的时长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());
+        if(count >= signScoreDays){
+            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