From f85c5d2c3f5f5c59bb9b0362ea44ca0d6b06ec5a Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Wed, 20 Mar 2024 15:19:35 +0800
Subject: [PATCH] 抽奖

---
 src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java |   47 +++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 41 insertions(+), 6 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 5104bed..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(
@@ -1224,7 +1237,7 @@
             Long memberId = mallMoneyFlow.getMemberId();
             MallMember mallMember = memberMapper.selectById(memberId);
             Integer isFrozen = mallMember.getIsFrozen();
-            if(ProductEnum.MEMBER_UNFROZEN.getValue() == isFrozen){
+            if(ProductEnum.MEMBER_FROZEN.getValue() == isFrozen){
                 MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(memberId);
                 mallMemberAmount.setFrozenNft(mallMemberAmount.getFrozenNft().subtract(mallMoneyFlow.getAmount()));
                 mallMemberAmountMapper.updateFrozenNftById(mallMemberAmount);
@@ -1241,6 +1254,13 @@
                         AppContants.MEMBER_FLOW_ING);
 
             }else {
+                MallMemberAmount mallMemberAmountMine = mallMemberAmountMapper.selectByMemberId(memberId);
+                if(BigDecimal.ZERO.compareTo(mallMemberAmountMine.getTotalPerk().subtract(mallMoneyFlow.getAmount())) >= 0){
+                    continue;
+                }
+                mallMemberAmountMine.setTotalPerk(mallMemberAmountMine.getTotalPerk().subtract(mallMoneyFlow.getAmount()));
+                mallMemberAmountMapper.updateTrendsNftAndFrozenNftById(mallMemberAmountMine);
+
                 MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(memberId);
                 mallMemberAmount.setFrozenNft(mallMemberAmount.getFrozenNft().subtract(mallMoneyFlow.getAmount()));
                 mallMemberAmount.setTrendsNft(mallMemberAmount.getTrendsNft().add(mallMoneyFlow.getAmount()));
@@ -1250,7 +1270,7 @@
                 String orderNo = MallUtils.getOrderNum("NFT");
                 mallMoneyFlowService.addMoneyFlow(
                         memberId,
-                        mallMoneyFlow.getAmount().negate(),
+                        mallMoneyFlow.getAmount(),
                         MoneyFlowTypeNewEnum.BASIC_PERK_DIRECT_DONE.getValue(),
                         orderNo,
                         null,
@@ -1291,7 +1311,7 @@
             Long memberId = mallMoneyFlow.getMemberId();
             MallMember mallMember = memberMapper.selectById(memberId);
             Integer isFrozen = mallMember.getIsFrozen();
-            if(ProductEnum.MEMBER_UNFROZEN.getValue() == isFrozen){
+            if(ProductEnum.MEMBER_FROZEN.getValue() == isFrozen){
                 MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(memberId);
                 mallMemberAmount.setFrozenNft(mallMemberAmount.getFrozenNft().subtract(mallMoneyFlow.getAmount()));
                 mallMemberAmountMapper.updateFrozenNftById(mallMemberAmount);
@@ -1308,6 +1328,13 @@
                         AppContants.MEMBER_FLOW_ING);
 
             }else {
+                MallMemberAmount mallMemberAmountMine = mallMemberAmountMapper.selectByMemberId(memberId);
+                if(BigDecimal.ZERO.compareTo(mallMemberAmountMine.getTotalPerk().subtract(mallMoneyFlow.getAmount())) >= 0){
+                    continue;
+                }
+                mallMemberAmountMine.setTotalPerk(mallMemberAmountMine.getTotalPerk().subtract(mallMoneyFlow.getAmount()));
+                mallMemberAmountMapper.updateTrendsNftAndFrozenNftById(mallMemberAmountMine);
+
                 MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(memberId);
                 mallMemberAmount.setFrozenNft(mallMemberAmount.getFrozenNft().subtract(mallMoneyFlow.getAmount()));
                 mallMemberAmount.setTrendsNft(mallMemberAmount.getTrendsNft().add(mallMoneyFlow.getAmount()));
@@ -1317,7 +1344,7 @@
                 String orderNo = MallUtils.getOrderNum("NFT");
                 mallMoneyFlowService.addMoneyFlow(
                         memberId,
-                        mallMoneyFlow.getAmount().negate(),
+                        mallMoneyFlow.getAmount(),
                         MoneyFlowTypeNewEnum.TEAM_PERK_DIRECT_DONE.getValue(),
                         orderNo,
                         null,
@@ -1358,7 +1385,7 @@
             Long memberId = mallMoneyFlow.getMemberId();
             MallMember mallMember = memberMapper.selectById(memberId);
             Integer isFrozen = mallMember.getIsFrozen();
-            if(ProductEnum.MEMBER_UNFROZEN.getValue() == isFrozen){
+            if(ProductEnum.MEMBER_FROZEN.getValue() == isFrozen){
                 MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(memberId);
                 mallMemberAmount.setFrozenNft(mallMemberAmount.getFrozenNft().subtract(mallMoneyFlow.getAmount()));
                 mallMemberAmountMapper.updateFrozenNftById(mallMemberAmount);
@@ -1375,6 +1402,14 @@
                         AppContants.MEMBER_FLOW_ING);
 
             }else {
+
+                MallMemberAmount mallMemberAmountMine = mallMemberAmountMapper.selectByMemberId(memberId);
+                if(BigDecimal.ZERO.compareTo(mallMemberAmountMine.getTotalPerk().subtract(mallMoneyFlow.getAmount())) >= 0){
+                    continue;
+                }
+                mallMemberAmountMine.setTotalPerk(mallMemberAmountMine.getTotalPerk().subtract(mallMoneyFlow.getAmount()));
+                mallMemberAmountMapper.updateTrendsNftAndFrozenNftById(mallMemberAmountMine);
+
                 MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(memberId);
                 mallMemberAmount.setFrozenNft(mallMemberAmount.getFrozenNft().subtract(mallMoneyFlow.getAmount()));
                 mallMemberAmount.setTrendsNft(mallMemberAmount.getTrendsNft().add(mallMoneyFlow.getAmount()));
@@ -1384,7 +1419,7 @@
                 String orderNo = MallUtils.getOrderNum("NFT");
                 mallMoneyFlowService.addMoneyFlow(
                         memberId,
-                        mallMoneyFlow.getAmount().negate(),
+                        mallMoneyFlow.getAmount(),
                         MoneyFlowTypeNewEnum.TEAM_PERK_EQUALS_DONE.getValue(),
                         orderNo,
                         null,

--
Gitblit v1.9.1