liujie
2026-09-14 82a8bc62d5b9d5d607f6952329952b17eda2f0a0
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();