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