Administrator
2025-05-23 ee9be51ba25a4b6252e81b4f8cc150597cd25bae
fix(mall): 修复幸运抽奖概率计算逻辑

- 将总概率计算方式从相加改为相乘,确保概率计算的准确性- 更新积分流动类型的枚举值,使其与实际业务场景相匹配
1 files modified
6 ■■■■ changed files
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallActServiceImpl.java 6 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallActServiceImpl.java
@@ -152,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;
@@ -578,10 +578,10 @@
                mallMoneyFlowService.addMoneyFlow(
                        wallet.getMemberId(),
                        prize,
                        ScoreFlowTypeEnum.LUCKY_DRAW.getValue(),
                        ScoreFlowTypeEnum.LUCKY_DRAW_SCORE.getValue(),
                        MallUtils.getOrderNum(),
                        FlowTypeEnum.PRIZE_SCORE.getValue(),
                        StrUtil.format(ScoreFlowTypeEnum.LUCKY_DRAW.getDesc(),prize),
                        StrUtil.format(ScoreFlowTypeEnum.LUCKY_DRAW_SCORE.getDesc(),prize),
                        2
                );
            } else if (apiMallAwardDetailsVo.getAwardType() == 2) {