diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreActivityBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreActivityBaseServiceImpl.java index 622ddbbc..3008adcb 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreActivityBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreActivityBaseServiceImpl.java @@ -3983,43 +3983,68 @@ public class ShopStoreActivityBaseServiceImpl extends BaseServiceImpl arr = randMoney(NumberUtil.sub(ac_sale_price, cut_down_min_limit_price), cut_down_user_num - ac_num); - Integer randPrice = arr.size() == 1 ? arr.get(0) : arr.get(RandomUtil.randomInt(0, arr.size() - 1)); + // 计算剩余可砍价金额和剩余次数 + List arr = randMoney( + NumberUtil.sub(ac_sale_price, cut_down_min_limit_price), + cut_down_user_num - ac_num + ); + + // 随机选择一个砍价金额 + Integer randPrice = arr.size() == 1 ? arr.get(0) : arr.get(RandomUtil.randomInt(0, arr.size())); price = NumberUtil.div(BigDecimal.valueOf(randPrice), 100, 2); break; + default: + // 未知砍价类型,返回0 + price = BigDecimal.ZERO; + break; } + // 5. 返回砍价金额,不超过可砍价的上限 return NumberUtil.min(NumberUtil.sub(ac_sale_price, ac_mix_limit_price), price); } + @Override public List getCouponsList(Integer activity_type_id) { QueryWrapper wrapper = new QueryWrapper<>();