From 05c40a68b5664c5ed41dbaa57ba30f0c73757b26 Mon Sep 17 00:00:00 2001 From: Hentua <wangdoubleone@gmail.com> Date: Tue, 25 Apr 2023 11:10:48 +0800 Subject: [PATCH] fix --- src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java | 23 +++++++++++++++++------ 1 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java index a4ac87a..5c12fec 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java @@ -35,6 +35,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.Date; import java.util.List; import java.util.Map; @@ -59,6 +60,7 @@ private final MallMemberBankMapper mallMemberBankMapper; private final MallMemberWithdrawMapper mallMemberWithdrawMapper; private final IApiMallMemberService mallMemberService; + private final MallMoneyFlowMapper mallMoneyFlowMapper; @Override public ScoreSignVo scoreSign() { @@ -275,7 +277,6 @@ @Override @Transactional(rollbackFor = Exception.class) public void withdrawal(WithdrawalDto withdrawalDto) { - Long memberId = LoginUserUtil.getLoginUser().getId(); MallMember mallMember = mallMemberMapper.selectById(memberId); if (StrUtil.isBlank(mallMember.getTradePassword())) { @@ -293,7 +294,7 @@ } if (withdrawalDto.getAmount().compareTo(cashOutSettingVo.getMinCashOut()) < 0) { - throw new FebsException("最小提现金额为"+cashOutSettingVo.getMinCashOut().setScale(2,BigDecimal.ROUND_DOWN)); + throw new FebsException("最小提现金额为"+cashOutSettingVo.getMinCashOut().setScale(2, RoundingMode.DOWN)); } MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(withdrawalDto.getBankId()); @@ -302,14 +303,24 @@ } MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(memberId); - // 可提现 - BigDecimal canMoney = wallet.getVoucherAmount(); + BigDecimal profit = mallMoneyFlowMapper.selectProfitByDateAndMemberId(memberId); + + BigDecimal canMoney = wallet.getCommission(); + if (profit != null) { + if(canMoney.compareTo(BigDecimal.ZERO) > 0) { + canMoney = canMoney.subtract(profit); + } + } if(withdrawalDto.getAmount().compareTo(canMoney) > 0) { throw new FebsException("金额不足"); } - walletService.reduce(withdrawalDto.getAmount(), memberId, "voucherAmount"); + int flag = walletService.reduce(withdrawalDto.getAmount(), memberId, "commission"); + if (flag == 2) { + throw new FebsException("请刷新页面后重新提现"); + } + String orderNo = MallUtils.getOrderNum("W"); MallMemberWithdraw withdraw = new MallMemberWithdraw(); @@ -321,7 +332,7 @@ withdraw.setWtihdrawTypeId(mallMemberBank.getId()); mallMemberWithdrawMapper.insert(withdraw); - mallMemberService.addMoneyFlow(memberId, withdrawalDto.getAmount().negate(), MoneyFlowTypeEnum.WITHDRAWAL.getValue(), orderNo, null, null, null, 1, FlowTypeEnum.BALANCE.getValue()); + mallMemberService.addMoneyFlow(memberId, withdrawalDto.getAmount().negate(), MoneyFlowTypeEnum.WITHDRAWAL.getValue(), orderNo, null, null, null, 1, FlowTypeEnum.COMMISSION.getValue()); } @Override -- Gitblit v1.9.1