From 82c96bddc4a2f3070d8bf61e7ca1ce3b57711f85 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 18 Mar 2024 16:09:50 +0800
Subject: [PATCH] 抽奖

---
 src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java |   17 +++++++++++++----
 1 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
index e9db01c..1ad6a24 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
@@ -909,6 +909,19 @@
                         mallProductBuy.setTotalPerk(totalPerk.subtract(profit).setScale(2,BigDecimal.ROUND_DOWN));
                         mallProductBuyMapper.updateById(mallProductBuy);
                     }
+
+                    MallMemberAmount mallMemberAmountPerk = mallMemberAmountMapper.selectByMemberId(mallProductBuy.getMemberId());
+                    if(BigDecimal.ZERO.compareTo(mallMemberAmountPerk.getTotalPerk()) >= 0){
+                        continue;
+                    }
+                    if(mallMemberAmountPerk.getTotalPerk().compareTo(profit) <= 0){
+                        profit = mallMemberAmountPerk.getTotalPerk();
+                        mallMemberAmountPerk.setTotalPerk(BigDecimal.ZERO);
+                        mallMemberAmountMapper.updateTotalPerkById(mallMemberAmountPerk);
+                    }else{
+                        mallMemberAmountPerk.setTotalPerk(mallMemberAmountPerk.getTotalPerk().subtract(profit).setScale(2,BigDecimal.ROUND_DOWN));
+                        mallMemberAmountMapper.updateTotalPerkById(mallMemberAmountPerk);
+                    }
 //                    insertSell(mallProductBuy.getMemberId(),profit,profit,BigDecimal.ZERO,BigDecimal.ZERO);
                     String orderNoSY = MallUtils.getOrderNum("SYNFT");
                     mallMoneyFlowService.addMoneyFlow(
@@ -924,10 +937,6 @@
                     MallMemberAmount mallMemberAmountMine = mallMemberAmountMapper.selectByMemberId(mallProductBuy.getMemberId());
                     mallMemberAmountMine.setTrendsNft(mallMemberAmountMine.getTrendsNft().add(profit));
                     mallMemberAmountMapper.updateTrendsNftById(mallMemberAmountMine);
-
-                    MallMemberAmount mallMemberAmountPerk = mallMemberAmountMapper.selectByMemberId(mallProductBuy.getMemberId());
-                    mallMemberAmountPerk.setTotalPerk(mallMemberAmountPerk.getTotalPerk().subtract(profit));
-                    mallMemberAmountMapper.updateTotalPerkById(mallMemberAmountPerk);
 
 
                     BigDecimal remainderDirect = bigDecimal.divide(new BigDecimal(String.valueOf(cycle)),0,BigDecimal.ROUND_DOWN);//取余

--
Gitblit v1.9.1