From 2377b0ca8cd1839c80c6271a7067ea43a0b78aa7 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Tue, 27 May 2025 15:49:54 +0800 Subject: [PATCH] fix(order): 修复订单列表中提货方式的显示逻辑 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallActServiceImpl.java | 43 ++++++++++++++++++++++++++++++++++++++----- 1 files changed, 38 insertions(+), 5 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..9246e4e 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% @@ -150,7 +152,7 @@ DataDictionaryEnum.WIN_CASH.getCode()); String scoreDicValue = scoreDic.getValue() == null? "0":scoreDic.getValue(); String cashDicValue = cashDic.getValue() == null? "0":cashDic.getValue(); - BigDecimal totalProbability = new BigDecimal(scoreDicValue).add(new BigDecimal(cashDicValue)); + BigDecimal totalProbability = new BigDecimal(scoreDicValue).multiply(new BigDecimal(cashDicValue)); //获取那个更大一点的几率 BigDecimal maxProbability = BigDecimal.ZERO; BigDecimal minProbability = BigDecimal.ZERO; @@ -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_SCORE.getValue(), + MallUtils.getOrderNum(), + FlowTypeEnum.PRIZE_SCORE.getValue(), + StrUtil.format(ScoreFlowTypeEnum.LUCKY_DRAW_SCORE.getDesc(),apiMallAwardDetailsVo.getAwardName()), + 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(),apiMallAwardDetailsVo.getAwardName()), + 2 + ); } } return apiMallAwardDetailsVo; -- Gitblit v1.9.1