权益积分设置,提现扣除权益积分,下单购买套餐回去对应倍数的权益积分
| | |
| | | |
| | | @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"), |
| | | |
| | |
| | | |
| | | |
| | | /** |
| | | * 权益积分 |
| | | */ |
| | | EQUITY_LIMIT(6), |
| | | |
| | | /** |
| | | * 余额 |
| | | */ |
| | | BALANCE(1), |
| | |
| | | /** |
| | | * 积分转余额 |
| | | */ |
| | | SCORE_TO_CASH(26); |
| | | SCORE_TO_CASH(26), |
| | | |
| | | /** |
| | | * 套餐产生权益积分 |
| | | */ |
| | | TC_TO_EQUITY_LIMIT(27); |
| | | |
| | | private final int value; |
| | | |
| | |
| | | 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(); |
| | | } |
| | | |
| | |
| | | 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"); |
| | |
| | | * 佣金 |
| | | */ |
| | | private BigDecimal commission; |
| | | |
| | | /** |
| | | * 权益积分 |
| | | */ |
| | | private BigDecimal equityLimit; |
| | | } |
| | |
| | | |
| | | //用户增加对应的余额 |
| | | iApiMallMemberWalletService.add(mallMemberWithdraw.getAmount(),mallMemberWithdraw.getMemberId(),"balance"); |
| | | iApiMallMemberWalletService.add(mallMemberWithdraw.getAmount(),mallMemberWithdraw.getMemberId(),"equity_limit"); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | |
| | | * 4、董事享受全公司入单分红2%加权(现金) |
| | | * 5、合伙人享全公司入单分红5%加权(现金) |
| | | * 6、入单后,50%入现金池 35%的H金劵入H金劵池,更新价格 |
| | | * |
| | | * |
| | | * 新增购买套餐返佣逻辑 |
| | | * 1、买了套餐增加权益额度 |
| | | * 2、权益额度每次提现会减少对应的数额 |
| | | * 3、增加每天返佣固定比例的余额 |
| | | */ |
| | | //获取当前订单子表信息 |
| | | List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectbyOrderId(orderId); |
| | |
| | | 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(); |
| | |
| | | } |
| | | |
| | | for(int i = 0; i < times; i++){ |
| | | MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId); |
| | | String orderNo = mallOrderInfo.getOrderNo(); |
| | | //购买人 |
| | | Long memberId = mallOrderInfo.getMemberId(); |
| | | |
| | | /** |
| | | * 1、购买人获得固定比例的H金劵 |
| | |
| | | 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"); |
| | | |
| | |
| | | null, |
| | | 1, |
| | | FlowTypeEnum.BALANCE.getValue()); |
| | | |
| | | mallMemberService.addMoneyFlow(memberId, |
| | | withdrawalDto.getAmount().negate(), |
| | | MoneyFlowTypeEnum.WITHDRAWAL.getValue(), |
| | | orderNo, |
| | | null, |
| | | null, |
| | | null, |
| | | 1, |
| | | FlowTypeEnum.EQUITY_LIMIT.getValue()); |
| | | } |
| | | |
| | | @Override |
| | |
| | | * DIRECTOR_CASH_PERK_PERCENT |
| | | */ |
| | | private String directorCashPerkPercent; |
| | | /** |
| | | * 权益额度增加倍数 |
| | | * DIRECTOR_CASH_PERK_PERCENT |
| | | */ |
| | | private String equityLimitTimes; |
| | | |
| | | } |
| | |
| | | <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"> |
| | |
| | | "directCashPerkPercent": adminPerkSet.directCashPerkPercent, |
| | | "directScorePerkPercent": adminPerkSet.directScorePerkPercent, |
| | | "partnerCashPerkPercent": adminPerkSet.partnerCashPerkPercent, |
| | | "equityLimitTimes": adminPerkSet.equityLimitTimes, |
| | | "directorCashPerkPercent": adminPerkSet.directorCashPerkPercent |
| | | }); |
| | | } |