From 4f99b1df96a35a0cd1339cc1fa29efc1566c25fc Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Fri, 12 Jan 2024 10:25:52 +0800 Subject: [PATCH] 套餐 --- src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 59 insertions(+), 0 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java index 7e68c68..067e1a1 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java @@ -616,4 +616,63 @@ +";人数:"+cnt); } + @Override + public void fireJob(Object o) { + List<MallMemberWallet> mallMemberWallets = mallMemberWalletMapper.seleListByScore(); + if(CollUtil.isEmpty(mallMemberWallets)){ + return; + } + DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + DataDictionaryEnum.FIRE_SCORE_PERCENT.getType(), + DataDictionaryEnum.FIRE_SCORE_PERCENT.getCode() + ); + BigDecimal fireScorePercent = new BigDecimal(dataDictionaryCustom.getValue()).multiply(new BigDecimal("0.01")); + + BigDecimal totalReduce = BigDecimal.ZERO; + for(MallMemberWallet mallMemberWallet : mallMemberWallets){ + BigDecimal score = mallMemberWallet.getScore(); + BigDecimal multiply = score.multiply(fireScorePercent).setScale(2,BigDecimal.ROUND_DOWN);//每次需要燃烧的数量 + iApiMallMemberWalletService.reduce(multiply,mallMemberWallet.getMemberId(),"score"); + //增加一个流水记录 + moneyFlowService.addMoneyFlow( + mallMemberWallet.getMemberId(), + multiply.negate(), + MoneyFlowTypeEnum.FIRE_SCORE.getValue(), + null, + mallMemberWallet.getMemberId(), + FlowTypeEnum.SCORE.getValue(), + AppContants.IS_RETURN_YES); + totalReduce = totalReduce.add(multiply); + } + + /** + * H金劵减少,更新价格 + */ + DataDictionaryCustom poolCashDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + PerkEnum.POOL_CASH.getType(), + PerkEnum.POOL_CASH.getCode()); + //当前现金池数量 + BigDecimal poolCash = new BigDecimal(poolCashDic.getValue()); + DataDictionaryCustom poolScoreDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + PerkEnum.POOL_SCORE.getType(), + PerkEnum.POOL_SCORE.getCode()); + //当前H金劵池数量 + BigDecimal poolScore = new BigDecimal(poolScoreDic.getValue()); + poolScore = poolScore.subtract(totalReduce).setScale(2,BigDecimal.ROUND_DOWN); + dataDictionaryCustomMapper.updateDicValueByTypeAndCode( + PerkEnum.POOL_SCORE.getType(), + PerkEnum.POOL_SCORE.getCode(), + poolScore.toString() + ); + + if(poolScore.compareTo(BigDecimal.ZERO) > 0 && poolCash.compareTo(BigDecimal.ZERO) > 0){ + BigDecimal divide = poolCash.divide(poolScore, 8, BigDecimal.ROUND_DOWN); + dataDictionaryCustomMapper.updateDicValueByTypeAndCode( + PerkEnum.POOL_SCORE_PRICE.getType(), + PerkEnum.POOL_SCORE_PRICE.getCode(), + divide.toString() + ); + } + } + } -- Gitblit v1.9.1