From 81844d308f0bb3a1c64152d0acfcac61856f24b4 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Thu, 08 May 2025 15:43:45 +0800
Subject: [PATCH] refactor(mall): 重构签到积分功能

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java |   18 ++++++++++++++++--
 1 files changed, 16 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 6dfb13f..d989ce3 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
@@ -72,6 +72,10 @@
 
     @Override
     public MallScoreSignRecord judgeScoreIsContinuity(MallScoreSignRecord mallScoreSignRecord) {
+        if (mallScoreSignRecord.getSignTime() == null) {
+            return mallScoreSignRecord;
+        }
+
         // 若最新签到日期,与当天相差大于一天,则更新数据库(避免定时器更新失败)
         if (DateUtil.betweenDay(mallScoreSignRecord.getSignTime(), new Date(), true) > 1 || mallScoreSignRecord.getTotalCnt() == 7) {
             mallScoreSignRecord.setTotalCnt(0);
@@ -93,13 +97,13 @@
         MallScoreSignRecord mallScoreSignRecord = mallScoreSignRecordMapper.selectRecentSignRecord(member.getId());
         if (mallScoreSignRecord == null) {
             mallScoreSignRecord = new MallScoreSignRecord();
-        } else {
-            mallScoreSignRecord = judgeScoreIsContinuity(mallScoreSignRecord);
         }
 
         if (mallScoreSignRecord.getSignTime() != null && DateUtil.betweenDay(mallScoreSignRecord.getSignTime(), new Date(), true) == 0) {
             throw new FebsException("今天已签到");
         }
+
+        mallScoreSignRecord = judgeScoreIsContinuity(mallScoreSignRecord);
 
         ScoreSettingDto scoreSetting = JSONObject.parseObject(dic.getValue(),ScoreSettingDto.class);
         int days = mallScoreSignRecord.getTotalCnt() == null ? 1 : mallScoreSignRecord.getTotalCnt() + 1;
@@ -146,6 +150,16 @@
                 }
                 mallScoreSignRecord.setScore(scoreSetting.getSignInSeven());
                 break;
+            default:
+                if (scoreSetting.getSignInOne() == null) {
+                    throw new FebsException("积分未设置");
+                }
+                if(days > 7){
+                    mallScoreSignRecord.setScore(scoreSetting.getSignInSeven());
+                }else{
+                    mallScoreSignRecord.setScore(scoreSetting.getSignInOne());
+                }
+                break;
         }
 
         mallScoreSignRecord.setMemberId(member.getId());

--
Gitblit v1.9.1