| | |
| | | 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; |
| | |
| | | retryPendingOrders(); |
| | | sendServiceReminders(); |
| | | startDueGroupSessions(); |
| | | completeExpiredServiceSessions(); |
| | | } |
| | | |
| | | void cancelExpiredUnpaidOrders() { |
| | |
| | | } |
| | | } |
| | | |
| | | 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(); |