From 848a1f9caf6f7e7efe7c65b770cea3ad52512496 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 17 Apr 2023 17:47:41 +0800
Subject: [PATCH] 提现,增加实际到账金额
---
src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java | 20 ++++++++++++++++++--
1 files changed, 18 insertions(+), 2 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 f67580b..7359cfc 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();
@@ -166,13 +171,24 @@
1,
FlowTypeEnum.SCORE.getValue());
+ mallMemberService.addMoneyFlow(memberId,
+ scoreAmount.subtract(amountFee),
+ MoneyFlowTypeEnum.SCORE_TO_CASH.getValue(),
+ orderNo,
+ null,
+ null,
+ null,
+ 1,
+ FlowTypeEnum.BALANCE.getValue());
+
//卖出规则:卖出即销毁减少,70%现金到帐.30%回流底池,意味卖出后全网积分变少了,回流的30%到池子后.积分的价格变高了
DataDictionaryCustom poolCashDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
PerkEnum.POOL_CASH.getType(),
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(),
@@ -192,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