From 031c084f8f31bc7040f52768e6cdaba291ef4637 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Wed, 10 Jan 2024 15:00:02 +0800 Subject: [PATCH] 权益积分设置,提现扣除权益积分,下单购买套餐回去对应倍数的权益积分 --- src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java | 7 +++ src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java | 4 ++ src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java | 30 +++++++++++++-- src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java | 6 +++ src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java | 21 ++++++++++ src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java | 3 + src/main/java/cc/mrbird/febs/mall/vo/AdminPerkSetVo.java | 5 ++ src/main/java/cc/mrbird/febs/common/enumerates/FlowTypeEnum.java | 5 ++ src/main/java/cc/mrbird/febs/mall/entity/MallMemberWallet.java | 5 ++ src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java | 1 src/main/resources/templates/febs/views/modules/system/perkSet.html | 11 +++++ 11 files changed, 91 insertions(+), 7 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java index 2c105ef..537343b 100644 --- a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java +++ b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java @@ -5,7 +5,8 @@ @Getter public enum DataDictionaryEnum { - + //权益额度增加倍数 + EQUITY_LIMIT_TIMES("EQUITY_LIMIT_TIMES", "EQUITY_LIMIT_TIMES"), //积分池设置{"everydayRatio":10,"dividEquallyRatio":1}每日订单的百分之几,增加到积分池;每日平分百分比 SCORE_POOR_RADIO("SCORE_POOR", "SCORE_POOR_RADIO"), diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/FlowTypeEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/FlowTypeEnum.java index 6c09b78..8d9ba3d 100644 --- a/src/main/java/cc/mrbird/febs/common/enumerates/FlowTypeEnum.java +++ b/src/main/java/cc/mrbird/febs/common/enumerates/FlowTypeEnum.java @@ -11,6 +11,11 @@ /** + * 权益积分 + */ + EQUITY_LIMIT(6), + + /** * 余额 */ BALANCE(1), diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java index e170980..d5ff1ec 100644 --- a/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java +++ b/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java @@ -133,7 +133,12 @@ /** * 积分转余额 */ - SCORE_TO_CASH(26); + SCORE_TO_CASH(26), + + /** + * 套餐产生权益积分 + */ + TC_TO_EQUITY_LIMIT(27); private final int value; diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java index 9b1cf80..1069031 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java @@ -72,6 +72,10 @@ PerkEnum.PARTNER_CASH_PERK_PERCENT.getType(), PerkEnum.PARTNER_CASH_PERK_PERCENT.getCode(), adminPerkSetVo.getPartnerCashPerkPercent()); + commonService.updateDataDic( + DataDictionaryEnum.EQUITY_LIMIT_TIMES.getType(), + DataDictionaryEnum.EQUITY_LIMIT_TIMES.getCode(), + adminPerkSetVo.getEquityLimitTimes()); return new FebsResponse().success(); } diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java index f6170b4..6d12297 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java @@ -158,6 +158,12 @@ if (partnerCashPerkPercentDic != null) { adminPerkSetVo.setPartnerCashPerkPercent(partnerCashPerkPercentDic.getValue()); } + DataDictionaryCustom equityLimitTimesDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.EQUITY_LIMIT_TIMES.getType(), + DataDictionaryEnum.EQUITY_LIMIT_TIMES.getCode()); + if (equityLimitTimesDic != null) { + adminPerkSetVo.setEquityLimitTimes(equityLimitTimesDic.getValue()); + } model.addAttribute("adminPerkSet", adminPerkSetVo); return FebsUtil.view("modules/system/perkSet"); diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallMemberWallet.java b/src/main/java/cc/mrbird/febs/mall/entity/MallMemberWallet.java index dd729bf..1204957 100644 --- a/src/main/java/cc/mrbird/febs/mall/entity/MallMemberWallet.java +++ b/src/main/java/cc/mrbird/febs/mall/entity/MallMemberWallet.java @@ -43,4 +43,9 @@ * 佣金 */ private BigDecimal commission; + + /** + * 权益积分 + */ + private BigDecimal equityLimit; } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java index 6b6f524..220ea2f 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java @@ -219,6 +219,7 @@ //用户增加对应的余额 iApiMallMemberWalletService.add(mallMemberWithdraw.getAmount(),mallMemberWithdraw.getMemberId(),"balance"); + iApiMallMemberWalletService.add(mallMemberWithdraw.getAmount(),mallMemberWithdraw.getMemberId(),"equity_limit"); return new FebsResponse().success(); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java index 22e6b14..1205371 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java @@ -214,6 +214,12 @@ * 4、董事享受全公司入单分红2%加权(现金) * 5、合伙人享全公司入单分红5%加权(现金) * 6、入单后,50%入现金池 35%的H金劵入H金劵池,更新价格 + * + * + * 新增购买套餐返佣逻辑 + * 1、买了套餐增加权益额度 + * 2、权益额度每次提现会减少对应的数额 + * 3、增加每天返佣固定比例的余额 */ //获取当前订单子表信息 List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectbyOrderId(orderId); @@ -230,6 +236,26 @@ if(BigDecimal.ZERO.compareTo(amountTCAll) >= 0){ return; } + + MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId); + String orderNo = mallOrderInfo.getOrderNo(); + //购买人 + Long memberId = mallOrderInfo.getMemberId(); + DataDictionaryCustom equityLimitTimesDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.EQUITY_LIMIT_TIMES.getType(), + DataDictionaryEnum.EQUITY_LIMIT_TIMES.getCode()); + BigDecimal equityLimitTimes = new BigDecimal(equityLimitTimesDic.getValue()); + BigDecimal equityLimit = amountTCAll.multiply(equityLimitTimes); + if(BigDecimal.ZERO.compareTo(equityLimit) < 0){ + addWalletInfoAndMoneyFlow(equityLimit, + memberId, + "equity_limit", + MoneyFlowTypeEnum.TC_TO_EQUITY_LIMIT.getValue(), + memberId, + FlowTypeEnum.SCORE.getValue(), + orderNo); + } + BigDecimal amountTC = new BigDecimal(100); //购买套餐按照1000的基数去补贴,如5000,则补贴5次1000 int times = amountTCAll.divideToIntegralValue(amountTC).intValue(); @@ -238,10 +264,6 @@ } for(int i = 0; i < times; i++){ - MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId); - String orderNo = mallOrderInfo.getOrderNo(); - //购买人 - Long memberId = mallOrderInfo.getMemberId(); /** * 1、购买人获得固定比例的H金劵 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 87f07e9..e61e59c 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 @@ -95,16 +95,25 @@ if(wallet.getBalance().compareTo(BigDecimal.ZERO) <= 0){ throw new FebsException("金额不足"); } + if(wallet.getEquityLimit().compareTo(BigDecimal.ZERO) <= 0){ + throw new FebsException("权益积分不足"); + } if(withdrawalDto.getAmount().compareTo(wallet.getBalance()) > 0) { throw new FebsException("金额不足"); } + + if(withdrawalDto.getAmount().compareTo(wallet.getEquityLimit()) > 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, "balance");//减少余额 + walletService.reduce(withdrawalDto.getAmount(), memberId, "equity_limit");//减少权益积分 // walletService.reduce(withdrawalDto.getAmount(), memberId, "commission"); String orderNo = MallUtils.getOrderNum("W"); @@ -127,6 +136,16 @@ null, 1, FlowTypeEnum.BALANCE.getValue()); + + mallMemberService.addMoneyFlow(memberId, + withdrawalDto.getAmount().negate(), + MoneyFlowTypeEnum.WITHDRAWAL.getValue(), + orderNo, + null, + null, + null, + 1, + FlowTypeEnum.EQUITY_LIMIT.getValue()); } @Override diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AdminPerkSetVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminPerkSetVo.java index a2064e1..0b6d194 100644 --- a/src/main/java/cc/mrbird/febs/mall/vo/AdminPerkSetVo.java +++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminPerkSetVo.java @@ -30,5 +30,10 @@ * DIRECTOR_CASH_PERK_PERCENT */ private String directorCashPerkPercent; + /** + * 权益额度增加倍数 + * DIRECTOR_CASH_PERK_PERCENT + */ + private String equityLimitTimes; } diff --git a/src/main/resources/templates/febs/views/modules/system/perkSet.html b/src/main/resources/templates/febs/views/modules/system/perkSet.html index cdcd89b..79890a1 100644 --- a/src/main/resources/templates/febs/views/modules/system/perkSet.html +++ b/src/main/resources/templates/febs/views/modules/system/perkSet.html @@ -48,6 +48,16 @@ <div class="layui-form-mid layui-word-aux">%。</div> </div> </div> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label febs-form-item-require">权益倍数:</label> + <div class="layui-form-mid layui-word-aux">购买套餐获得【权益积分】倍数:</div> + <div class="layui-input-inline"> + <input type="text" name="equityLimitTimes" lay-verify="required" placeholder="请输入数字" autocomplete="off" class="layui-input"> + </div> + <div class="layui-form-mid layui-word-aux">。</div> + </div> + </div> </div> <div class="layui-card-footer"> @@ -91,6 +101,7 @@ "directCashPerkPercent": adminPerkSet.directCashPerkPercent, "directScorePerkPercent": adminPerkSet.directScorePerkPercent, "partnerCashPerkPercent": adminPerkSet.partnerCashPerkPercent, + "equityLimitTimes": adminPerkSet.equityLimitTimes, "directorCashPerkPercent": adminPerkSet.directorCashPerkPercent }); } -- Gitblit v1.9.1