From adee5d271a70cbcb9ab45cec00795c9a7b34f6bf Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Thu, 25 Jul 2024 10:47:17 +0800
Subject: [PATCH] 后台
---
src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java | 34 ++++++++++++++++++++++------------
1 files changed, 22 insertions(+), 12 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 1f51e8a..c0027a3 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
@@ -183,11 +183,8 @@
public void withdrawalBalance(WithdrawalBalanceDto withdrawalBalanceDto) {
Long memberId = LoginUserUtil.getLoginUser().getId();
MallMember mallMember = mallMemberService.getById(memberId);
- if (StrUtil.isBlank(mallMember.getTradePassword())) {
- throw new FebsException("未设置支付密码");
- }
- if (!mallMember.getTradePassword().equals(SecureUtil.md5(withdrawalBalanceDto.getTradePwd()))) {
- throw new FebsException("支付密码错误");
+ if(ObjectUtil.isEmpty(mallMember.getBindPhone())){
+ throw new FebsException("请绑定充值提取地址");
}
DataDictionaryCustom withdrawAmountDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
@@ -197,12 +194,26 @@
BigDecimal amount = withdrawalBalanceDto.getAmount();
BigDecimal withdrawAmount = new BigDecimal(withdrawAmountDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
if(withdrawAmount.compareTo(amount) > 0){
- throw new FebsException("至少为"+withdrawAmount);
+ throw new FebsException("最小金额:"+withdrawAmount);
}
- MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(memberId);
- mallMemberAmount.setFcmCntAva(mallMemberAmount.getFcmCntAva().subtract(amount));
- mallMemberAmountMapper.updateFcmCntAvaById(mallMemberAmount);
+ MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(mallMember.getId());
+ BigDecimal balance = mallMemberWallet.getBalance();
+ if(amount.compareTo(balance) > 0){
+ throw new FebsException("账户余额不足");
+ }
+
+ DataDictionaryCustom feeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.WITHDRAW_AMOUNT_FEE.getType(),
+ DataDictionaryEnum.WITHDRAW_AMOUNT_FEE.getCode()
+ );
+ BigDecimal fee = new BigDecimal(feeDic.getValue())
+ .multiply(new BigDecimal("0.01"))
+ .multiply(amount)
+ .setScale(2, BigDecimal.ROUND_DOWN);
+
+ mallMemberWallet.setBalance(mallMemberWallet.getBalance().subtract(amount));
+ mallMemberWalletMapper.updateBalanceWithVersion(mallMemberWallet);
String orderNo = MallUtils.getOrderNum("W");
MallMemberWithdraw withdraw = new MallMemberWithdraw();
@@ -210,9 +221,8 @@
withdraw.setMemberId(memberId);
withdraw.setAmount(amount.negate());
withdraw.setStatus(1);
- withdraw.setAmountFee(BigDecimal.ZERO);
- withdraw.setRemark(withdrawalBalanceDto.getAddress());
+ withdraw.setAmountFee(fee);
+ withdraw.setRemark(mallMember.getBindPhone());
this.baseMapper.insert(withdraw);
-
}
}
--
Gitblit v1.9.1