From 0fb3a76c8f7c161daeee597075ef1dfebc67badc Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Thu, 25 Jul 2024 11:20:50 +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