liujie
2026-08-21 77649c76ec1c3afcb93e9963243d637665b3a307
backend/src/main/java/com/tourguide/modules/user/mapper/GuideReceivingSessionMapper.java
@@ -9,6 +9,10 @@
import java.util.List;
public interface GuideReceivingSessionMapper extends BaseMapper<GuideReceivingSession> {
    @Select("SELECT * FROM guide_receiving_session WHERE id = #{id} AND guide_id = #{guideId} " +
            "AND deleted = 0 LIMIT 1 FOR UPDATE")
    GuideReceivingSession selectForUpdate(@Param("id") Long id, @Param("guideId") Long guideId);
    @Select("SELECT s.* FROM guide_receiving_session s " +
            "INNER JOIN guide_realtime_status r ON r.guide_id = s.guide_id AND r.deleted = 0 " +
            "INNER JOIN guide_user g ON g.id = s.guide_id AND g.deleted = 0 AND g.status = 1 " +
@@ -40,6 +44,10 @@
            "WHERE id = #{id} AND deleted = 0 AND status = 'RECEIVING' AND service_start_at <= NOW()")
    int startDueSession(Long id);
    @Update("UPDATE guide_receiving_session SET status = 'IN_SERVICE', updated_at = NOW() " +
            "WHERE id = #{id} AND guide_id = #{guideId} AND deleted = 0 AND status IN ('RECEIVING', 'ASSIGNED')")
    int startSession(@Param("id") Long id, @Param("guideId") Long guideId);
    @Update("UPDATE guide_receiving_session SET reminder_pushed_at = #{now}, updated_at = NOW() " +
            "WHERE id = #{id} AND deleted = 0 AND status = 'RECEIVING' AND reminder_pushed_at IS NULL")
    int claimServiceReminder(@Param("id") Long id, @Param("now") LocalDateTime now);