diff --git a/mall-common/src/main/java/com/suisung/mall/common/constant/CommonConstant.java b/mall-common/src/main/java/com/suisung/mall/common/constant/CommonConstant.java
index 88e641ce..db946b39 100644
--- a/mall-common/src/main/java/com/suisung/mall/common/constant/CommonConstant.java
+++ b/mall-common/src/main/java/com/suisung/mall/common/constant/CommonConstant.java
@@ -125,4 +125,6 @@ public class CommonConstant {
public static final Integer Order_Booking_State_LJ = 1;
public static final Integer Order_Booking_State_YY = 2;
+ // 预约下单从当前时间延迟的最小分钟数(单位分钟),不能低于35分钟
+ public final static Integer MIN_DELAY_MINUTES_FOR_BOOKING_ORDER = 50;
}
diff --git a/mall-common/src/main/java/com/suisung/mall/common/feignService/ShopService.java b/mall-common/src/main/java/com/suisung/mall/common/feignService/ShopService.java
index fe102c61..b6140c37 100644
--- a/mall-common/src/main/java/com/suisung/mall/common/feignService/ShopService.java
+++ b/mall-common/src/main/java/com/suisung/mall/common/feignService/ShopService.java
@@ -326,5 +326,16 @@ public interface ShopService {
BigDecimal getOrderShippingFee(@RequestParam(name = "order_id") String order_id);
+ /**
+ * 获取店铺的内部运费 shopping_fee_inner (远程调用用途)
+ *
+ * @param store_id
+ * @return
+ */
+ @ApiOperation(value = "获取店铺的内部运费 shopping_fee_inner", notes = "获取店铺的内部运费 shopping_fee_inner (远程调用用途)")
+ @RequestMapping(value = "/admin/shop/shop-store-info/shopping-fee-inner", method = RequestMethod.POST)
+ Integer storeShoppingFeeInner(@RequestParam(name = "store_id") Integer store_id);
+
+
}
diff --git a/mall-common/src/main/java/com/suisung/mall/common/modules/lakala/LklOrderDraw.java b/mall-common/src/main/java/com/suisung/mall/common/modules/lakala/LklOrderDraw.java
index 0a3afff3..0a7dce49 100644
--- a/mall-common/src/main/java/com/suisung/mall/common/modules/lakala/LklOrderDraw.java
+++ b/mall-common/src/main/java/com/suisung/mall/common/modules/lakala/LklOrderDraw.java
@@ -155,6 +155,9 @@ public class LklOrderDraw {
@ApiModelProperty(value = "异步通知地址", example = "https://api.example.com/notify")
private String notify_url;
+ @ApiModelProperty(value = "接口请求报文")
+ private String lkl_req;
+
/**
* 异步通知返回的JSON数据
*/
diff --git a/mall-common/src/main/java/com/suisung/mall/common/modules/lakala/LklOrderSeparate.java b/mall-common/src/main/java/com/suisung/mall/common/modules/lakala/LklOrderSeparate.java
index 46536d69..c14720c3 100644
--- a/mall-common/src/main/java/com/suisung/mall/common/modules/lakala/LklOrderSeparate.java
+++ b/mall-common/src/main/java/com/suisung/mall/common/modules/lakala/LklOrderSeparate.java
@@ -94,6 +94,9 @@ public class LklOrderSeparate {
@ApiModelProperty(value = "处理状态:ACCEPTED-已受理, PROCESSING-处理中, FAIL-失败, SUCCESS-成功")
private String final_status;
+ @ApiModelProperty(value = "接口请求报文")
+ private String lkl_req;
+
@ApiModelProperty(value = "异步通知数据")
private String notify_resp;
diff --git a/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreInfo.java b/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreInfo.java
index 7dd53f4c..4d9136e1 100644
--- a/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreInfo.java
+++ b/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreInfo.java
@@ -3,11 +3,13 @@ package com.suisung.mall.common.modules.store;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
@@ -121,5 +123,18 @@ public class ShopStoreInfo implements Serializable {
@ApiModelProperty(value = "线下买单折扣:10代表原价")
private BigDecimal store_discount;
+ @ApiModelProperty(value = "店铺内部运费,单位(分)0-使用平台的内部运费;>0 使用店铺的内部运费")
+ private Integer shopping_fee_inner;
+
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @ApiModelProperty(value = "新增时间")
+ private Date created_at;
+
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @ApiModelProperty(value = "最后更新时间")
+ private Date updated_at;
+
}
diff --git a/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/BookingArgDTO.java b/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/BookingArgDTO.java
index 8b0457db..3cfd5f48 100644
--- a/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/BookingArgDTO.java
+++ b/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/BookingArgDTO.java
@@ -33,6 +33,11 @@ public class BookingArgDTO {
@ApiModelProperty(value = "日期")
private String date;
+ /**
+ * 工作时间依据(如"09:00-21:00")
+ */
+ private String working_hours;
+
/**
* 时间项列表
*/
diff --git a/mall-common/src/main/java/com/suisung/mall/common/utils/DateTimeUtils.java b/mall-common/src/main/java/com/suisung/mall/common/utils/DateTimeUtils.java
index c94b058c..499e9f8f 100644
--- a/mall-common/src/main/java/com/suisung/mall/common/utils/DateTimeUtils.java
+++ b/mall-common/src/main/java/com/suisung/mall/common/utils/DateTimeUtils.java
@@ -10,8 +10,7 @@ import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.format.DateTimeParseException;
import java.time.temporal.ChronoField;
-import java.util.Calendar;
-import java.util.Date;
+import java.util.*;
@Slf4j
public class DateTimeUtils {
@@ -363,6 +362,76 @@ public class DateTimeUtils {
return count;
}
+ /**
+ * 计算多个时间段之间的交集(不跨天)
+ *
+ * 算法逻辑:
+ * 1. 遍历所有时间段,找到最晚的开始时间和最早的结束时间
+ * 2. 如果最晚开始时间小于等于最早结束时间,则存在交集
+ * 3. 如果最晚开始时间大于最早结束时间,则不存在交集
+ *
+ * @param timeList 时间段列表,每个时间段是一个Map,包含开始时间startTimeStr和结束时间endTimeStr
+ * startTimeStr 开始时间字符串,支持格式如 HH:mm, HH:mm:ss, HH:mm:ss.SSS 等
+ * endTimeStr 结束时间字符串,支持格式如 HH:mm, HH:mm:ss, HH:mm:ss.SSS 等
+ * @return 返回一个Map,包含交集的时间段(startTimeStr和endTimeStr),如果无交集则返回空Map
+ */
+ public static Map findTimeInterSection(List