From 78e1837458da467cacefa8e22c2c9616b1dc9f9d Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Mon, 12 May 2025 16:26:58 +0800 Subject: [PATCH] refactor(mall): 优化积分和余额支付流程 --- src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java | 49 ++++++++++++++++++++++++++++++++++++------------- 1 files changed, 36 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..2fc1a19 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,10 +21,12 @@ 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; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -33,10 +36,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 +205,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 +285,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(), + StrUtil.format(ScoreFlowTypeEnum.SIGN_EXPERIENCE.getDesc(),amount), + 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(), + StrUtil.format(ScoreFlowTypeEnum.SIGN_SCORE.getDesc(),amount), + 2); + } + + ApiSignVo apiSignVo = new ApiSignVo(); + apiSignVo.setMineScore(mallScoreSignRecord.getScore()); + apiSignVo.setMostSignIn(mostSignIn); + return new FebsResponse().success().data(apiSignVo); } } -- Gitblit v1.9.1