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/service/impl/ScoreServiceImpl.java | 48 +++++++++++++++++++++++++++++++++++-------------
1 files changed, 35 insertions(+), 13 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 7785770..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;
@@ -20,6 +21,7 @@
import cc.mrbird.febs.mall.vo.ScoreSignVo;
import cc.mrbird.febs.mall.vo.signActivity.ApiGetRunDateVo;
import cc.mrbird.febs.mall.vo.signActivity.ApiSignListVo;
+import cc.mrbird.febs.mall.vo.signActivity.ApiSignVo;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUnit;
@@ -33,10 +35,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
@@ -205,7 +204,7 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public void sign() {
+ public FebsResponse sign() {
MallMember member = LoginUserUtil.getLoginUser();
DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.SCORE_SIGN_SETTING.getType(), DataDictionaryEnum.SCORE_SIGN_SETTING.getCode());
@@ -285,14 +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);
}
}
--
Gitblit v1.9.1