|
|
@@ -139,16 +139,29 @@
|
|
|
DELETE FROM user_reservation WHERE id = #{id}
|
|
|
</delete>
|
|
|
|
|
|
- <!-- 关联查询:订单待使用 + 预约结束时间已过,仅返回 reservation_id。end_time 格式为 yyyy-MM-dd HH:mm -->
|
|
|
+ <!--
|
|
|
+ 未到店超时:订单待使用(1) + 预约待确认/已确认(0,1)
|
|
|
+ 截止时间 = start_time + store_booking_settings.retention_duration(分钟);无设置或 NULL 时长按 0 分钟
|
|
|
+ start_time 格式 yyyy-MM-dd HH:mm(与 STR_TO_DATE 一致)
|
|
|
+ -->
|
|
|
<select id="listReservationIdsForTimeoutMark" resultType="java.lang.Integer">
|
|
|
- SELECT DISTINCT r.id
|
|
|
+ SELECT r.id
|
|
|
FROM user_reservation r
|
|
|
INNER JOIN user_reservation_order o ON o.reservation_id = r.id AND o.delete_flag = 0
|
|
|
WHERE r.delete_flag = 0
|
|
|
AND o.order_status = 1
|
|
|
AND r.status IN (0, 1)
|
|
|
- AND r.end_time IS NOT NULL AND TRIM(r.end_time) != ''
|
|
|
- AND STR_TO_DATE(TRIM(r.end_time), '%Y-%m-%d %H:%i') < NOW()
|
|
|
+ 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()
|
|
|
</select>
|
|
|
|
|
|
<!-- 查询分类下是否有符合条件的预订信息
|