From 1fc8fde81cbf79ebe95e927f9099cf94c2ccc6e5 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Thu, 15 May 2025 17:39:04 +0800 Subject: [PATCH] refactor(mall): 优化退款流程和逻辑 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallActServiceImpl.java | 41 +++++++++++++++++++++++++++++++++++++---- 1 files changed, 37 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 3f00fda..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){ @@ -552,16 +561,40 @@ // 消耗积分 BigDecimal useScore = new BigDecimal(actScoreCnt); mallMemberWalletService.reduce(useScore, wallet.getMemberId(), "prizeScore"); - mallMoneyFlowService.addMoneyFlow(wallet.getMemberId(), useScore.negate(), MoneyFlowTypeEnum.PRIZE.getValue(), null, FlowTypeEnum.PRIZE_SCORE.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, MoneyFlowTypeEnum.PRIZE.getValue(), null, FlowTypeEnum.PRIZE_SCORE.getValue()); + 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, MoneyFlowTypeEnum.PRIZE.getValue(), null, FlowTypeEnum.COMMISSION.getValue()); + 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