From 965813ff53d4e75936ae6d1af3d4a6b8327bdc77 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 17 Apr 2023 15:21:47 +0800
Subject: [PATCH] 会员等级升级修改

---
 src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java
index 1a6b4e1..78c41a4 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java
@@ -81,9 +81,14 @@
         if(withdrawalDto.getAmount().compareTo(wallet.getBalance()) > 0) {
             throw new FebsException("金额不足");
         }
+        BigDecimal commission = wallet.getCommission();
+        if(withdrawalDto.getAmount().compareTo(commission) > 0){
+            throw new FebsException("金额不足");
+        }
 
         BigDecimal serviceFee = cashOutSettingVo.getServiceFee().multiply(BigDecimal.valueOf(0.01));
         walletService.reduce(withdrawalDto.getAmount(), memberId, "balance");
+//        walletService.reduce(withdrawalDto.getAmount(), memberId, "commission");
         String orderNo = MallUtils.getOrderNum("W");
 
         MallMemberWithdraw withdraw = new MallMemberWithdraw();
@@ -167,7 +172,7 @@
                 FlowTypeEnum.SCORE.getValue());
 
         mallMemberService.addMoneyFlow(memberId,
-                scoreAmount,
+                scoreAmount.subtract(amountFee),
                 MoneyFlowTypeEnum.SCORE_TO_CASH.getValue(),
                 orderNo,
                 null,
@@ -182,7 +187,8 @@
                 PerkEnum.POOL_CASH.getCode()
         );
         BigDecimal poolCash = new BigDecimal(poolCashDic.getValue());
-        poolCash = poolCash.add(amountFee);
+        //先减去百分之百的提现金额在加上30%的回流金额
+        poolCash = poolCash.subtract(scoreAmount).add(amountFee);
         dataDictionaryCustomMapper.updateDicValueByTypeAndCode(
                 PerkEnum.POOL_CASH.getType(),
                 PerkEnum.POOL_CASH.getCode(),
@@ -202,7 +208,7 @@
         );
 
         if(poolScore.compareTo(BigDecimal.ZERO) > 0 && poolCash.compareTo(BigDecimal.ZERO) > 0){
-            BigDecimal divide = poolCash.divide(poolScore, 2, BigDecimal.ROUND_DOWN);
+            BigDecimal divide = poolCash.divide(poolScore, 6, BigDecimal.ROUND_DOWN);
             dataDictionaryCustomMapper.updateDicValueByTypeAndCode(
                     PerkEnum.POOL_SCORE_PRICE.getType(),
                     PerkEnum.POOL_SCORE_PRICE.getCode(),

--
Gitblit v1.9.1