From 38d547d91d7eee81ed56ca6ceba7fd393952a082 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 12 May 2025 16:12:15 +0800
Subject: [PATCH] feat(sign): 增加签到获得会员经验或积分的功能 - 在 ApiSignVo 中添加 mostSignIn 字段,用于区分签到获得的类型 - 在 ScoreFlowTypeEnum 中新增 SIGN_EXPERIENCE 和 SIGN_SCORE 类型 - 修改 ScoreServiceImpl 中的签到逻辑,支持获得会员经验和积分 - 更新 ScoreSettingDto,添加 mostSignIn 字段用于配置签到获得类型 - 在前端设置页面添加签到获得类型的选项

---
 src/main/java/cc/mrbird/febs/mall/dto/ScoreSettingDto.java            |    1 +
 src/main/resources/templates/febs/views/modules/score/setting.html    |   15 +++++++--------
 src/main/java/cc/mrbird/febs/common/enumerates/ScoreFlowTypeEnum.java |    2 ++
 src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java  |   36 ++++++++++++++++++++++++++++--------
 src/main/java/cc/mrbird/febs/mall/vo/signActivity/ApiSignVo.java      |    4 +++-
 5 files changed, 41 insertions(+), 17 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/ScoreFlowTypeEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/ScoreFlowTypeEnum.java
index c57fc53..d6cd5d3 100644
--- a/src/main/java/cc/mrbird/febs/common/enumerates/ScoreFlowTypeEnum.java
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/ScoreFlowTypeEnum.java
@@ -8,6 +8,8 @@
     /**
      *
      */
+    SIGN_EXPERIENCE(7, "签到获得会员经验"),
+    SIGN_SCORE(7, "签到获得积分"),
     SALE_RECOMMEND(6, "好友下单获得佣金"),
     OTHER_RECOMMEND(5, "推荐下单获得积分"),
     MINE_RECOMMEND(4, "下单获得积分"),
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/ScoreSettingDto.java b/src/main/java/cc/mrbird/febs/mall/dto/ScoreSettingDto.java
index e9ca2a4..bb45c25 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/ScoreSettingDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/ScoreSettingDto.java
@@ -19,5 +19,6 @@
 
     private Integer signInTotal;
     private Integer signInMore;
+    //1:会员经验 2:会员积分
     private Integer mostSignIn;
 }
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 52011bd..ed0a2b2 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
@@ -4,6 +4,7 @@
 import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
 import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
 import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
+import cc.mrbird.febs.common.enumerates.ScoreFlowTypeEnum;
 import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.utils.LoginUserUtil;
 import cc.mrbird.febs.mall.dto.ScoreSettingDto;
@@ -283,18 +284,37 @@
         mallScoreSignRecord.setTotalCnt(days);
         mallScoreSignRecord.setSignTime(new Date());
         mallScoreSignRecordMapper.insert(mallScoreSignRecord);
-
+        /**
+         * 1:会员经验 2:会员积分
+         */
+        Integer mostSignIn = scoreSetting.getMostSignIn();
         BigDecimal amount = BigDecimal.valueOf(mallScoreSignRecord.getScore());
-        walletService.add(amount, member.getId(), "prizeScore");
-        mallMoneyFlowService.addMoneyFlow(
-                member.getId(),
-                amount,
-                MoneyFlowTypeEnum.SCORE_SIGN.getValue(),
-                null,
-                FlowTypeEnum.PRIZE_SCORE.getValue());
+        if(mostSignIn == 1){
+            walletService.add(amount, member.getId(), "score");
+            mallMoneyFlowService.addMoneyFlow(
+                    member.getId(),
+                    amount,
+                    ScoreFlowTypeEnum.SIGN_EXPERIENCE.getValue(),
+                    mallScoreSignRecord.getId().toString(),
+                    FlowTypeEnum.SCORE.getValue(),
+                    ScoreFlowTypeEnum.SIGN_EXPERIENCE.getDesc(),
+                    2);
+        }
+        if(mostSignIn == 2){
+            walletService.add(amount, member.getId(), "prizeScore");
+            mallMoneyFlowService.addMoneyFlow(
+                    member.getId(),
+                    amount,
+                    ScoreFlowTypeEnum.SIGN_SCORE.getValue(),
+                    mallScoreSignRecord.getId().toString(),
+                    FlowTypeEnum.PRIZE_SCORE.getValue(),
+                    ScoreFlowTypeEnum.SIGN_SCORE.getDesc(),
+                    2);
+        }
 
         ApiSignVo apiSignVo = new ApiSignVo();
         apiSignVo.setMineScore(mallScoreSignRecord.getScore());
+        apiSignVo.setMostSignIn(mostSignIn);
         return new FebsResponse().success().data(apiSignVo);
     }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/signActivity/ApiSignVo.java b/src/main/java/cc/mrbird/febs/mall/vo/signActivity/ApiSignVo.java
index f20a3d8..8dd425a 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/signActivity/ApiSignVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/signActivity/ApiSignVo.java
@@ -8,7 +8,9 @@
 @ApiModel(value = "ApiSignVo", description = "信息返回类")
 public class ApiSignVo {
 
-    @ApiModelProperty(value = "获得积分")
+    @ApiModelProperty(value = "获得")
     private Integer mineScore;
+    @ApiModelProperty(value = "1:会员经验 2:会员积分")
+    private Integer mostSignIn;
 
 }
diff --git a/src/main/resources/templates/febs/views/modules/score/setting.html b/src/main/resources/templates/febs/views/modules/score/setting.html
index f481757..7915c1a 100644
--- a/src/main/resources/templates/febs/views/modules/score/setting.html
+++ b/src/main/resources/templates/febs/views/modules/score/setting.html
@@ -4,13 +4,18 @@
             <div class="layui-card">
                 <div class="layui-card-body">
                     <blockquote class="layui-elem-quote blue-border">基本规则:</blockquote>
-
+                    <div class="layui-form-item">
+                        <label class="layui-form-label">签到获得:</label>
+                        <div class="layui-input-block">
+                            <input type="radio" name="mostSignIn" value="1" title="会员经验" />
+                            <input type="radio" name="mostSignIn" value="2" title="积分" checked/>
+                        </div>
+                    </div>
                     <div class="layui-form-item">
                         <label class="layui-form-label ">每次签到获得</label>
                         <div class="layui-input-inline" style="width: 120px">
                             <input type="text" name="signInOne" lay-verify="number" th:value="${obj != null ? obj.signInOne : null}" autocomplete="off" class="layui-input">
                         </div>
-                        <div class="layui-form-mid">积分</div>
                     </div>
 
                     <div class="layui-form-item">
@@ -18,7 +23,6 @@
                         <div class="layui-input-inline" style="width: 120px">
                             <input type="text" name="signInTwo" lay-verify="number" th:value="${obj != null ? obj.signInTwo : null}" autocomplete="off" class="layui-input">
                         </div>
-                        <div class="layui-form-mid">积分</div>
                     </div>
 
                     <div class="layui-form-item">
@@ -26,7 +30,6 @@
                         <div class="layui-input-inline" style="width: 120px">
                             <input type="text" name="signInThree" lay-verify="number" th:value="${obj != null ? obj.signInThree : null}" autocomplete="off" class="layui-input">
                         </div>
-                        <div class="layui-form-mid">积分</div>
                     </div>
 
                     <div class="layui-form-item">
@@ -34,7 +37,6 @@
                         <div class="layui-input-inline" style="width: 120px">
                             <input type="text" name="signInFour" lay-verify="number" th:value="${obj != null ? obj.signInFour : null}" autocomplete="off" class="layui-input">
                         </div>
-                        <div class="layui-form-mid">积分</div>
                     </div>
 
                     <div class="layui-form-item">
@@ -42,7 +44,6 @@
                         <div class="layui-input-inline" style="width: 120px">
                             <input type="text" name="signInFive" lay-verify="number" th:value="${obj != null ? obj.signInFive : null}" autocomplete="off" class="layui-input">
                         </div>
-                        <div class="layui-form-mid">积分</div>
                     </div>
 
                     <div class="layui-form-item">
@@ -50,7 +51,6 @@
                         <div class="layui-input-inline" style="width: 120px">
                             <input type="text" name="signInSix" lay-verify="number" th:value="${obj != null ? obj.signInSix : null}" autocomplete="off" class="layui-input">
                         </div>
-                        <div class="layui-form-mid">积分</div>
                     </div>
 
                     <div class="layui-form-item">
@@ -58,7 +58,6 @@
                         <div class="layui-input-inline" style="width: 120px">
                             <input type="text" name="signInSeven" lay-verify="number" th:value="${obj != null ? obj.signInSeven : null}" autocomplete="off" class="layui-input">
                         </div>
-                        <div class="layui-form-mid">积分</div>
                     </div>
 
 <!--                    <div class="layui-form-item">-->

--
Gitblit v1.9.1