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