From a7f2a7ac14bc1bab7aab988240cde7f813387e73 Mon Sep 17 00:00:00 2001 From: Jack <46790855@qq.com> Date: Fri, 31 Oct 2025 08:55:15 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BA=86=E6=89=93=E7=A5=A8?= =?UTF-8?q?=E6=9C=BA=20=E8=AE=A2=E5=8D=95=E5=95=86=E5=93=81=E9=97=B4?= =?UTF-8?q?=E8=B7=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ShopStoreActivityBaseServiceImpl.java | 31 +++++++++++++++++-- 1 file changed, 28 insertions(+), 3 deletions(-) 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<>();