diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/activity/service/impl/ShopActivityCutpriceServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/activity/service/impl/ShopActivityCutpriceServiceImpl.java index 4b4913ed..ebf700c7 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/activity/service/impl/ShopActivityCutpriceServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/activity/service/impl/ShopActivityCutpriceServiceImpl.java @@ -305,17 +305,19 @@ public class ShopActivityCutpriceServiceImpl extends BaseServiceImpl checkStockResult = checkCutPriceExpiredAndStock(activityBase); + // 立即参与活动? boolean is_join_activity = false; // 如果用户未参与该砍价活动,则创建新的砍价记录 if (cutprice_row == null) { - // 需要检查活动有效期和活动商品库存是否足够 - Pair check_result = checkCutPriceExpiredAndStock(activityBase); - if (!check_result.getFirst()) { + + if (!checkStockResult.getFirst()) { // 库存不够,立即更改活动状态为已结束 shopStoreActivityBaseService.updateActivityState(activity_id, StateCode.ACTIVITY_STATE_FINISHED); - throw new ApiException(check_result.getSecond()); + throw new ApiException(checkStockResult.getSecond()); } cutprice_row = new ShopActivityCutprice(); @@ -375,19 +377,24 @@ public class ShopActivityCutpriceServiceImpl extends BaseServiceImpl canDoOrderCutPriceActivity = shopActivityCutpriceService.canDoOrderCutPriceActivity(acId, userId); @@ -1673,10 +1678,6 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl= productCount; + if (isSoldOut) { + logger.info("活动商品已售完:activity_id={}, 已售数量={}, 库存数量={}", + activity_id, soldCount, productCount); + } + + return isSoldOut; + } catch (Exception e) { + logger.error("活动商品售完检查异常:activity_id={}", activity_id, e); + return true; // 出现异常时保守地返回已售完 + } + } + @Transactional public boolean removeActivityBase(Integer activity_id, ShopStoreActivityBase activity_row) {