From a331c3be6000d3c81f88e0a564e2db63da99018b Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Wed, 21 May 2025 10:33:42 +0800 Subject: [PATCH] feat(score): 初始化积分设置页面的默认值 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallActServiceImpl.java | 51 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 47 insertions(+), 4 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallActServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallActServiceImpl.java index 6dc0050..b4722f6 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallActServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallActServiceImpl.java @@ -3,8 +3,10 @@ import cc.mrbird.febs.common.enumerates.DataDictionaryEnum; import cc.mrbird.febs.common.enumerates.FlowTypeEnum; import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; +import cc.mrbird.febs.common.enumerates.ScoreFlowTypeEnum; import cc.mrbird.febs.common.exception.FebsException; import cc.mrbird.febs.common.utils.LoginUserUtil; +import cc.mrbird.febs.common.utils.MallUtils; import cc.mrbird.febs.mall.dto.ApiMallActListDto; import cc.mrbird.febs.mall.dto.ApiMallActWinDetailsDto; import cc.mrbird.febs.mall.entity.*; @@ -134,7 +136,7 @@ BigDecimal prizeScore = wallet.getPrizeScore(); Integer actScoreCnt = mallActSet.getActScoreCnt(); if(prizeScore.compareTo(new BigDecimal(actScoreCnt))<0){ - throw new FebsException("竞猜积分不足"); + throw new FebsException("积分不足"); } /** * 中奖概率 20% @@ -190,6 +192,7 @@ }else{ apiMallAwardDetailsVo.setAwardName("未中奖"); } + apiMallAwardDetailsVo.setAwardType(MallActAwardSet.AWARD_TYPE_XXCY); }else if(new BigDecimal(randomInt).compareTo(failureScope) > 0 && new BigDecimal(randomInt).compareTo(failureScope.add(maxProbability.multiply(new BigDecimal(100)))) <= 0){ //大于failureScope.add(maxProbability.multiply(new BigDecimal(100)))这个数字,则中奖 @@ -225,6 +228,7 @@ }else{ apiMallAwardDetailsVo.setAwardName("未中奖"); } + apiMallAwardDetailsVo.setAwardType(MallActAwardSet.AWARD_TYPE_XXCY); }else{ List<MallActAwardSet> idList = new ArrayList(); for(MallActAwardSet mallActAwardSet : mallActAwardSets){ @@ -293,6 +297,7 @@ }else{ apiMallAwardDetailsVo.setAwardName("未中奖"); } + apiMallAwardDetailsVo.setAwardType(MallActAwardSet.AWARD_TYPE_XXCY); } }else{ //获取活动下该类别的奖品 @@ -315,6 +320,7 @@ }else{ apiMallAwardDetailsVo.setAwardName("未中奖"); } + apiMallAwardDetailsVo.setAwardType(MallActAwardSet.AWARD_TYPE_XXCY); }else{ List<MallActAwardSet> idList = new ArrayList(); for(MallActAwardSet mallActAwardSet : mallActAwardSets){ @@ -400,6 +406,7 @@ }else{ apiMallAwardDetailsVo.setAwardName("未中奖"); } + apiMallAwardDetailsVo.setAwardType(MallActAwardSet.AWARD_TYPE_XXCY); }else{ List<MallActAwardSet> idList = new ArrayList(); for(MallActAwardSet mallActAwardSet : mallActAwardSets){ @@ -468,6 +475,7 @@ }else{ apiMallAwardDetailsVo.setAwardName("未中奖"); } + apiMallAwardDetailsVo.setAwardType(MallActAwardSet.AWARD_TYPE_XXCY); } }else{ //获取活动下该类别的奖品 @@ -490,6 +498,7 @@ }else{ apiMallAwardDetailsVo.setAwardName("未中奖"); } + apiMallAwardDetailsVo.setAwardType(MallActAwardSet.AWARD_TYPE_XXCY); }else{ List<MallActAwardSet> idList = new ArrayList(); for(MallActAwardSet mallActAwardSet : mallActAwardSets){ @@ -549,11 +558,45 @@ // wallet.setCommission(commission); // mallMemberWalletMapper.updateAmountWithVersion(wallet); + // 消耗积分 BigDecimal useScore = new BigDecimal(actScoreCnt); mallMemberWalletService.reduce(useScore, wallet.getMemberId(), "prizeScore"); - mallMemberWalletService.add(commission, wallet.getMemberId(), "commission"); - mallMoneyFlowService.addMoneyFlow(wallet.getMemberId(), useScore.negate(), MoneyFlowTypeEnum.PRIZE.getValue(), null, FlowTypeEnum.PRIZE_SCORE.getValue()); - mallMoneyFlowService.addMoneyFlow(wallet.getMemberId(), commission, MoneyFlowTypeEnum.PRIZE.getValue(), null, FlowTypeEnum.COMMISSION.getValue()); + mallMoneyFlowService.addMoneyFlow( + wallet.getMemberId(), + useScore.negate(), + ScoreFlowTypeEnum.LUCKY_DRAW.getValue(), + MallUtils.getOrderNum(), + FlowTypeEnum.PRIZE_SCORE.getValue(), + StrUtil.format(ScoreFlowTypeEnum.LUCKY_DRAW.getDesc(),useScore), + 2 + ); + + if (apiMallAwardDetailsVo.getAwardType() != 3) { + BigDecimal prize = new BigDecimal(apiMallAwardDetailsVo.getAwardValue()); + if (apiMallAwardDetailsVo.getAwardType() == 1) { + mallMemberWalletService.add(prize, wallet.getMemberId(), "prizeScore"); + mallMoneyFlowService.addMoneyFlow( + wallet.getMemberId(), + prize, + ScoreFlowTypeEnum.LUCKY_DRAW.getValue(), + MallUtils.getOrderNum(), + FlowTypeEnum.PRIZE_SCORE.getValue(), + StrUtil.format(ScoreFlowTypeEnum.LUCKY_DRAW.getDesc(),prize), + 2 + ); + } else if (apiMallAwardDetailsVo.getAwardType() == 2) { + mallMemberWalletService.add(prize, wallet.getMemberId(), "commission"); + mallMoneyFlowService.addMoneyFlow( + wallet.getMemberId(), + prize, + ScoreFlowTypeEnum.LUCKY_DRAW_COMMISSION.getValue(), + MallUtils.getOrderNum(), + FlowTypeEnum.COMMISSION.getValue(), + StrUtil.format(ScoreFlowTypeEnum.LUCKY_DRAW_COMMISSION.getDesc(),prize), + 2 + ); + } + } return apiMallAwardDetailsVo; } -- Gitblit v1.9.1