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