From 15defa991fcd30b9fa60bab17d2230b5929bf2a2 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 14 九月 2026 17:20:20 +0800
Subject: [PATCH] update
---
backend/src/main/java/com/tourguide/modules/order/service/GuideOrderMatchingService.java | 10 ++++++----
1 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/backend/src/main/java/com/tourguide/modules/order/service/GuideOrderMatchingService.java b/backend/src/main/java/com/tourguide/modules/order/service/GuideOrderMatchingService.java
index c642ec7..a308761 100644
--- a/backend/src/main/java/com/tourguide/modules/order/service/GuideOrderMatchingService.java
+++ b/backend/src/main/java/com/tourguide/modules/order/service/GuideOrderMatchingService.java
@@ -58,9 +58,11 @@
if (pricing == null || scenic == null) return false;
for (GuideReceivingSession session : candidates) {
LocalDateTime now = LocalDateTime.now();
+ int leadMinutes = positive(scenic.getFirstOrderLeadMinutes(), 15);
+ LocalDateTime serviceStartAt = now.plusMinutes(leadMinutes);
boolean reserved = "GROUP".equals(mode)
- ? reserveGroup(session, order, pricing, scenic, now)
- : sessionMapper.assignPrivate(session.getId(), order.getPeopleCount(), now) == 1;
+ ? reserveGroup(session, order, pricing, scenic, now, serviceStartAt)
+ : sessionMapper.assignPrivate(session.getId(), order.getPeopleCount(), now, serviceStartAt) == 1;
if (!reserved) continue;
GuideUser guide = guideUserMapper.selectById(session.getGuideId());
if (guide == null) continue;
@@ -86,13 +88,13 @@
}
private boolean reserveGroup(GuideReceivingSession session, TourOrder order, ScenicPricing pricing,
- OperationScenicSpot scenic, LocalDateTime now) {
+ OperationScenicSpot scenic, LocalDateTime now, LocalDateTime serviceStartAt) {
Integer maxPeople = pricing.getMaxParticipants();
if (maxPeople == null || maxPeople < 1) return false;
int leadMinutes = positive(scenic.getFirstOrderLeadMinutes(), 15);
int cutoffMinutes = positive(scenic.getVisitorNoOrderMinutes(), leadMinutes);
return sessionMapper.reserveGroupCapacity(session.getId(), order.getPeopleCount(), maxPeople, now,
- now.plusMinutes(leadMinutes), now.plusMinutes(cutoffMinutes)) == 1;
+ serviceStartAt, now.plusMinutes(cutoffMinutes)) == 1;
}
private int positive(Integer value, int fallback) { return value == null || value < 1 ? fallback : value; }
--
Gitblit v1.7.1