diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/controller/mobile/UserOrderController.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/controller/mobile/UserOrderController.java index 416c76f4..d45ca781 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/controller/mobile/UserOrderController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/controller/mobile/UserOrderController.java @@ -322,7 +322,7 @@ public class UserOrderController extends BaseControllerImpl { return CommonResult.success(data); } - @ApiOperation(value = "可预约订单的时间槽", notes = "可预约订单的时间槽") + @ApiOperation(value = "可预约订单的时间槽", notes = "结算中心页面,可预约订单的时间槽") @RequestMapping(value = "/booking_time_args", method = RequestMethod.GET) public CommonResult listInvoice(@RequestParam(name = "store_ids", defaultValue = "") String store_ids) { List list = shopOrderInfoService.genBookingOrderArgList(store_ids); diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java index b6d9d768..0b0ab4c6 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java @@ -1395,8 +1395,8 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl canDoOrderCutPriceActivity = shopActivityCutpriceService.canDoOrderCutPriceActivity(acId, userId); + if (!canDoOrderCutPriceActivity.getFirst()) { + logger.error(canDoOrderCutPriceActivity.getSecond()); + throw new ApiException(I18nUtil._("砍价活动未达标,请继续努力,再提交订单。")); + } } // 注:(重要)邮费检测和计算 diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderInfoServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderInfoServiceImpl.java index 6cecc67f..fe787058 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderInfoServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderInfoServiceImpl.java @@ -865,55 +865,55 @@ public class ShopOrderInfoServiceImpl extends BaseServiceImpl checkBookingOrderArgs(Integer storeId, Integer bookingState, String bookingBeginTimeStr, String bookingEndTimeStr) { // 1. 必填参数检查 if (CheckUtil.isEmpty(storeId) || CheckUtil.isEmpty(bookingState)) { - return Pair.of(false, "[预约订单校验] 缺少必要参数"); + return Pair.of(false, "[预约单校验] 缺少必要参数"); } // 2. 预约状态检查 if (!CommonConstant.Order_Booking_State_YY.equals(bookingState)) { - return Pair.of(true, "[预约订单校验] 非预订单,跳过验证"); + return Pair.of(true, "[预约单校验] 非预订单,跳过验证"); } // 3. 时间格式检查 if (StrUtil.isBlank(bookingBeginTimeStr)) { - return Pair.of(false, "[预约订单校验] 预约时间不能为空"); + return Pair.of(false, "[预约单校验] 预约时间不能为空"); } Date bookingBeginTime = DateTimeUtils.tryParseDateTimeToDate(bookingBeginTimeStr); Date bookingEndTime = DateTimeUtils.tryParseDateTimeToDate(bookingEndTimeStr); if (bookingBeginTime == null) { - return Pair.of(false, "[预约订单校验] 预约时间格式有误"); + return Pair.of(false, "[预约单校验] 预约时间格式有误"); } // 4. 时间逻辑检查 - 开始时间不能晚于结束时间 if (bookingEndTime != null && bookingBeginTime.after(bookingEndTime)) { - return Pair.of(false, "[预约订单校验] 开始时间不能晚于截止时间"); + return Pair.of(false, "[预约单校验] 开始时间不能晚于截止时间"); } // 5. 店铺信息检查 ShopStoreInfo shopStoreInfo = shopStoreInfoService.getShopStoreInfoByStoreId(storeId); if (shopStoreInfo == null) { - return Pair.of(false, "[预约订单校验] 店铺信息有误"); + return Pair.of(false, "[预约单校验] 店铺信息有误"); } if (StrUtil.isBlank(shopStoreInfo.getStore_opening_hours()) || StrUtil.isBlank(shopStoreInfo.getStore_close_hours())) { shopStoreInfo.setStore_opening_hours("09:00"); shopStoreInfo.setStore_close_hours("06:00"); - logger.warn("[预约订单校验] 店铺营业时间未设置,请联系商家,默认指定 {}-{}", shopStoreInfo.getStore_opening_hours(), shopStoreInfo.getStore_close_hours()); + logger.warn("[预约单校验] 店铺营业时间未设置,请联系商家,默认指定 {}-{}", shopStoreInfo.getStore_opening_hours(), shopStoreInfo.getStore_close_hours()); } // 6. 店铺营业时间检查 if (!DateTimeUtils.isTimeInRange(shopStoreInfo.getStore_opening_hours(), shopStoreInfo.getStore_close_hours(), bookingBeginTime)) { - String message = StrUtil.format("[预约订单校验] 请在 {}-{} 店铺营业时间内预约下单", shopStoreInfo.getStore_opening_hours(), shopStoreInfo.getStore_close_hours()); + String message = StrUtil.format("[预约单校验] 请在 {}-{} 店铺营业时间内预约下单", shopStoreInfo.getStore_opening_hours(), shopStoreInfo.getStore_close_hours()); return Pair.of(false, message); } // 7. 预约时间范围检查 - 仅能预约50分钟后的订单(防止用户在下单页面停留太长,45分钟也是可以通过的) Date fortyFiveMinutesLater = DateUtil.offsetMinute(new Date(), CommonConstant.MIN_DELAY_MINUTES_FOR_BOOKING_ORDER - 5); if (bookingBeginTime.before(fortyFiveMinutesLater)) { - return Pair.of(false, String.format("[预约订单校验] 请预约%d分后的订单", CommonConstant.MIN_DELAY_MINUTES_FOR_BOOKING_ORDER)); + return Pair.of(false, String.format("[预约单校验] 请预约%d分后的订单", CommonConstant.MIN_DELAY_MINUTES_FOR_BOOKING_ORDER)); } - return Pair.of(true, "[预约订单校验] 成功"); + return Pair.of(true, "[预约单校验] 成功"); } /** diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreActivityBaseService.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreActivityBaseService.java index 970db688..82329b93 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreActivityBaseService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreActivityBaseService.java @@ -59,7 +59,7 @@ public interface ShopStoreActivityBaseService extends IBaseService getActivityAllItemIds(Map activity_row); boolean isActivityTimeValid(Map activity_row); - + /** * 验证活动时间是否有效 * @@ -180,5 +180,13 @@ public interface ShopStoreActivityBaseService extends IBaseService queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("activity_id", activity_id); + queryWrapper.eq("activity_type_id", StateCode.ACTIVITY_TYPE_CUTPRICE); + return shopStoreActivityBaseMapper.selectCount(queryWrapper) > 0; + } catch (Exception e) { + // 异常处理,防止影响主流程 + logger.error("判断是否为砍价活动时发生异常,activity_id={}", activity_id, e); + return false; + } + } + + @Transactional public boolean removeActivityBase(Integer activity_id, ShopStoreActivityBase activity_row) {