From 77649c76ec1c3afcb93e9963243d637665b3a307 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 21 八月 2026 16:56:28 +0800
Subject: [PATCH] update
---
backend/src/main/java/com/tourguide/modules/user/mapper/GuideReceivingSessionMapper.java | 20 ++++++++++++++++++++
1 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/backend/src/main/java/com/tourguide/modules/user/mapper/GuideReceivingSessionMapper.java b/backend/src/main/java/com/tourguide/modules/user/mapper/GuideReceivingSessionMapper.java
index 023dba4..dfb0389 100644
--- a/backend/src/main/java/com/tourguide/modules/user/mapper/GuideReceivingSessionMapper.java
+++ b/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 " +
@@ -39,4 +43,20 @@
@Update("UPDATE guide_receiving_session SET status = 'IN_SERVICE', updated_at = NOW() " +
"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);
+
+ @Update("UPDATE guide_receiving_session SET reminder_pushed_at = NULL, updated_at = NOW() " +
+ "WHERE id = #{id} AND deleted = 0 AND reminder_pushed_at = #{claimedAt}")
+ int releaseServiceReminder(@Param("id") Long id, @Param("claimedAt") LocalDateTime claimedAt);
+
+ @Update("UPDATE guide_receiving_session SET status = 'STOPPED', updated_at = NOW() " +
+ "WHERE guide_id = #{guideId} AND deleted = 0 AND status = 'RECEIVING'")
+ int stopReceivingByGuide(Long guideId);
}
--
Gitblit v1.7.1