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());
|
}
|
}
|