From 82a8bc62d5b9d5d607f6952329952b17eda2f0a0 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 14 九月 2026 15:44:34 +0800
Subject: [PATCH] update

---
 backend/src/main/java/com/tourguide/modules/order/service/OrderLifecycleScheduler.java |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/backend/src/main/java/com/tourguide/modules/order/service/OrderLifecycleScheduler.java b/backend/src/main/java/com/tourguide/modules/order/service/OrderLifecycleScheduler.java
index a3eb8c9..655418a 100644
--- a/backend/src/main/java/com/tourguide/modules/order/service/OrderLifecycleScheduler.java
+++ b/backend/src/main/java/com/tourguide/modules/order/service/OrderLifecycleScheduler.java
@@ -10,7 +10,6 @@
 import com.tourguide.modules.order.mapper.TourOrderMapper;
 import com.tourguide.modules.system.service.GuideNotificationService;
 import com.tourguide.modules.user.entity.GuideReceivingSession;
-import com.tourguide.modules.user.mapper.GuideRealtimeStatusMapper;
 import com.tourguide.modules.user.mapper.GuideReceivingSessionMapper;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
@@ -50,6 +49,7 @@
         retryPendingOrders();
         sendServiceReminders();
         startDueGroupSessions();
+        completeExpiredServiceSessions();
     }
 
     void cancelExpiredUnpaidOrders() {
@@ -87,6 +87,17 @@
         }
     }
 
+    void completeExpiredServiceSessions() {
+        LocalDateTime now = LocalDateTime.now();
+        List<Long> sessionIds = orderMapper.selectDueServiceSessionIds(now, BATCH_SIZE);
+        for (Long sessionId : sessionIds) {
+            GuideReceivingSession session = sessionMapper.selectById(sessionId);
+            if (session != null && "IN_SERVICE".equals(session.getStatus())) {
+                sessionTransitionService.completeSession(session, now);
+            }
+        }
+    }
+
     void sendServiceReminders() {
         int reminderMinutes = Math.max(1, uniPushProperties.getServiceReminderMinutes());
         LocalDateTime now = LocalDateTime.now();

--
Gitblit v1.7.1