From 0248a38268bf05432448c338c03a69834df86039 Mon Sep 17 00:00:00 2001
From: Jack <46790855@qq.com>
Date: Thu, 30 Oct 2025 01:01:40 +0800
Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E8=AE=A2=E5=8D=95=E6=97=B6=E9=97=B4?=
=?UTF-8?q?=E6=A7=BD=E5=88=97=E8=A1=A8=E9=80=BB=E8=BE=91=E8=B0=83=E6=95=B4?=
=?UTF-8?q?=EF=BC=8C=E5=88=86=E8=B4=A6=E3=80=81=E6=8F=90=E7=8E=B0=20?=
=?UTF-8?q?=E6=8A=A5=E6=96=87=E5=AD=97=E6=AE=B5=20=E4=BF=9D=E5=AD=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../common/modules/lakala/LklOrderDraw.java | 3 +
.../modules/lakala/LklOrderSeparate.java | 3 +
.../mall/common/utils/DateTimeUtils.java | 121 +++++++-
.../ShopActivityGroupbookingServiceImpl.java | 20 +-
.../shop/lakala/service/LakalaApiService.java | 14 +-
.../service/impl/LakalaApiServiceImpl.java | 273 +-----------------
.../mobile/UserOrderController.java | 2 +-
.../order/service/ShopOrderInfoService.java | 4 +-
.../impl/ShopOrderInfoServiceImpl.java | 119 ++++++--
.../user/service/ShopUserVoucherService.java | 2 +-
.../impl/ShopUserVoucherServiceImpl.java | 11 +-
11 files changed, 243 insertions(+), 329 deletions(-)
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/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