From 5c3e9863d44697dc904812af2dad8393d3a8b6a1 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Thu, 15 May 2025 13:41:49 +0800
Subject: [PATCH] feat(mall): 更新积分流动相关功能

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallActServiceImpl.java |   34 ++++++++++++++++++++++++++++++----
 src/main/java/cc/mrbird/febs/common/enumerates/ScoreFlowTypeEnum.java     |    6 +++++-
 2 files changed, 35 insertions(+), 5 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 02adc0f..89e15fb 100644
--- a/src/main/java/cc/mrbird/febs/common/enumerates/ScoreFlowTypeEnum.java
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/ScoreFlowTypeEnum.java
@@ -5,9 +5,13 @@
 @Getter
 public enum ScoreFlowTypeEnum {
 
+
     /**
-     *
+     * 抽奖
      */
+    LUCKY_DRAW_COMMISSION(13, "幸运获得{}佣金"),
+    LUCKY_DRAW_SCORE(12, "幸运获得{}积分"),
+    LUCKY_DRAW(11, "使用{}积分"),
 
     MEMBER_INFO_GIFT(10, "完善个人信息,获得{}积分"),
 
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallActServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallActServiceImpl.java
index 137e07b..b4722f6 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallActServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallActServiceImpl.java
@@ -3,8 +3,10 @@
 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.common.utils.MallUtils;
 import cc.mrbird.febs.mall.dto.ApiMallActListDto;
 import cc.mrbird.febs.mall.dto.ApiMallActWinDetailsDto;
 import cc.mrbird.febs.mall.entity.*;
@@ -134,7 +136,7 @@
         BigDecimal prizeScore = wallet.getPrizeScore();
         Integer actScoreCnt = mallActSet.getActScoreCnt();
         if(prizeScore.compareTo(new BigDecimal(actScoreCnt))<0){
-            throw new FebsException("竞猜积分不足");
+            throw new FebsException("积分不足");
         }
         /**
          * 中奖概率 20%
@@ -559,16 +561,40 @@
         // 消耗积分
         BigDecimal useScore = new BigDecimal(actScoreCnt);
         mallMemberWalletService.reduce(useScore, wallet.getMemberId(), "prizeScore");
-        mallMoneyFlowService.addMoneyFlow(wallet.getMemberId(), useScore.negate(), MoneyFlowTypeEnum.PRIZE.getValue(), null, FlowTypeEnum.PRIZE_SCORE.getValue());
+        mallMoneyFlowService.addMoneyFlow(
+                wallet.getMemberId(),
+                useScore.negate(),
+                ScoreFlowTypeEnum.LUCKY_DRAW.getValue(),
+                MallUtils.getOrderNum(),
+                FlowTypeEnum.PRIZE_SCORE.getValue(),
+                StrUtil.format(ScoreFlowTypeEnum.LUCKY_DRAW.getDesc(),useScore),
+                2
+        );
 
         if (apiMallAwardDetailsVo.getAwardType() != 3) {
             BigDecimal prize = new BigDecimal(apiMallAwardDetailsVo.getAwardValue());
             if (apiMallAwardDetailsVo.getAwardType() == 1) {
                 mallMemberWalletService.add(prize, wallet.getMemberId(), "prizeScore");
-                mallMoneyFlowService.addMoneyFlow(wallet.getMemberId(), prize, MoneyFlowTypeEnum.PRIZE.getValue(), null, FlowTypeEnum.PRIZE_SCORE.getValue());
+                mallMoneyFlowService.addMoneyFlow(
+                        wallet.getMemberId(),
+                        prize,
+                        ScoreFlowTypeEnum.LUCKY_DRAW.getValue(),
+                        MallUtils.getOrderNum(),
+                        FlowTypeEnum.PRIZE_SCORE.getValue(),
+                        StrUtil.format(ScoreFlowTypeEnum.LUCKY_DRAW.getDesc(),prize),
+                        2
+                );
             } else if (apiMallAwardDetailsVo.getAwardType() == 2) {
                 mallMemberWalletService.add(prize, wallet.getMemberId(), "commission");
-                mallMoneyFlowService.addMoneyFlow(wallet.getMemberId(), prize, MoneyFlowTypeEnum.PRIZE.getValue(), null, FlowTypeEnum.COMMISSION.getValue());
+                mallMoneyFlowService.addMoneyFlow(
+                        wallet.getMemberId(),
+                        prize,
+                        ScoreFlowTypeEnum.LUCKY_DRAW_COMMISSION.getValue(),
+                        MallUtils.getOrderNum(),
+                        FlowTypeEnum.COMMISSION.getValue(),
+                        StrUtil.format(ScoreFlowTypeEnum.LUCKY_DRAW_COMMISSION.getDesc(),prize),
+                        2
+                );
             }
         }
         return apiMallAwardDetailsVo;

--
Gitblit v1.9.1