|
@@ -141,27 +141,42 @@
|
|
|
|
|
|
|
|
<!--
|
|
<!--
|
|
|
未到店超时:订单待使用(1) + 预约待确认/已确认(0,1)
|
|
未到店超时:订单待使用(1) + 预约待确认/已确认(0,1)
|
|
|
- 截止时间 = start_time + store_booking_settings.retention_duration(分钟);无设置或 NULL 时长按 0 分钟
|
|
|
|
|
- start_time 格式 yyyy-MM-dd HH:mm(与 STR_TO_DATE 一致)
|
|
|
|
|
|
|
+ - retain_position_flag = 1:截止时间 = start_time + retention_duration(分钟),NULL 时长按 0
|
|
|
|
|
+ - 否则:仅按 start_time 判断(当前时间已超过预约开始时间即超时)
|
|
|
|
|
+ start_time 格式 yyyy-MM-dd HH:mm
|
|
|
-->
|
|
-->
|
|
|
<select id="listReservationIdsForTimeoutMark" resultType="java.lang.Integer">
|
|
<select id="listReservationIdsForTimeoutMark" resultType="java.lang.Integer">
|
|
|
SELECT r.id
|
|
SELECT r.id
|
|
|
FROM user_reservation r
|
|
FROM user_reservation r
|
|
|
INNER JOIN user_reservation_order o ON o.reservation_id = r.id AND o.delete_flag = 0
|
|
INNER JOIN user_reservation_order o ON o.reservation_id = r.id AND o.delete_flag = 0
|
|
|
|
|
+ LEFT JOIN (
|
|
|
|
|
+ SELECT s1.store_id, s1.retain_position_flag, s1.retention_duration
|
|
|
|
|
+ FROM store_booking_settings s1
|
|
|
|
|
+ INNER JOIN (
|
|
|
|
|
+ SELECT store_id, MAX(id) AS max_id
|
|
|
|
|
+ FROM store_booking_settings
|
|
|
|
|
+ WHERE delete_flag = 0
|
|
|
|
|
+ GROUP BY store_id
|
|
|
|
|
+ ) sm ON sm.max_id = s1.id AND sm.store_id = s1.store_id
|
|
|
|
|
+ ) bs ON bs.store_id = r.store_id
|
|
|
WHERE r.delete_flag = 0
|
|
WHERE r.delete_flag = 0
|
|
|
AND o.order_status = 1
|
|
AND o.order_status = 1
|
|
|
AND r.status IN (0, 1)
|
|
AND r.status IN (0, 1)
|
|
|
AND r.start_time IS NOT NULL AND TRIM(r.start_time) != ''
|
|
AND r.start_time IS NOT NULL AND TRIM(r.start_time) != ''
|
|
|
- AND DATE_ADD(
|
|
|
|
|
- STR_TO_DATE(TRIM(r.start_time), '%Y-%m-%d %H:%i'),
|
|
|
|
|
- INTERVAL COALESCE((
|
|
|
|
|
- SELECT s.retention_duration
|
|
|
|
|
- FROM store_booking_settings s
|
|
|
|
|
- WHERE s.store_id = r.store_id AND s.delete_flag = 0
|
|
|
|
|
- ORDER BY s.id DESC
|
|
|
|
|
- LIMIT 1
|
|
|
|
|
- ), 0) MINUTE
|
|
|
|
|
- ) < NOW()
|
|
|
|
|
|
|
+ AND (
|
|
|
|
|
+ (
|
|
|
|
|
+ bs.retain_position_flag = 1
|
|
|
|
|
+ AND DATE_ADD(
|
|
|
|
|
+ STR_TO_DATE(TRIM(r.start_time), '%Y-%m-%d %H:%i'),
|
|
|
|
|
+ INTERVAL COALESCE(bs.retention_duration, 0) MINUTE
|
|
|
|
|
+ ) < NOW()
|
|
|
|
|
+ )
|
|
|
|
|
+ OR
|
|
|
|
|
+ (
|
|
|
|
|
+ (bs.retain_position_flag IS NULL OR bs.retain_position_flag != 1)
|
|
|
|
|
+ AND STR_TO_DATE(TRIM(r.start_time), '%Y-%m-%d %H:%i') < NOW()
|
|
|
|
|
+ )
|
|
|
|
|
+ )
|
|
|
</select>
|
|
</select>
|
|
|
|
|
|
|
|
<!-- 查询分类下是否有符合条件的预订信息
|
|
<!-- 查询分类下是否有符合条件的预订信息
|