liujie
2026-07-30 280ef5100bece9b40ac51736aef037704a52a4ca
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package com.tourguide.modules.order.service;
 
import com.tourguide.modules.order.mapper.TourOrderMapper;
import com.tourguide.modules.user.entity.GuideReceivingSession;
import com.tourguide.modules.user.mapper.GuideRealtimeStatusMapper;
import com.tourguide.modules.user.mapper.GuideReceivingSessionMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
 
@Service
public class GuideSessionTransitionService {
    private final GuideReceivingSessionMapper sessionMapper;
    private final TourOrderMapper orderMapper;
    private final GuideRealtimeStatusMapper realtimeStatusMapper;
 
    public GuideSessionTransitionService(GuideReceivingSessionMapper sessionMapper,
                                         TourOrderMapper orderMapper,
                                         GuideRealtimeStatusMapper realtimeStatusMapper) {
        this.sessionMapper = sessionMapper;
        this.orderMapper = orderMapper;
        this.realtimeStatusMapper = realtimeStatusMapper;
    }
 
    @Transactional
    public void startIfDue(GuideReceivingSession session) {
        if (sessionMapper.startDueSession(session.getId()) != 1) return;
        orderMapper.startSessionOrders(session.getId(), LocalDateTime.now());
        realtimeStatusMapper.disableReceiving(session.getGuideId());
    }
}