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 | 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..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(); @@ -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