From 280ef5100bece9b40ac51736aef037704a52a4ca Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 30 七月 2026 14:58:52 +0800
Subject: [PATCH] update

---
 backend/src/main/java/com/tourguide/modules/order/service/TourOrderService.java |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/backend/src/main/java/com/tourguide/modules/order/service/TourOrderService.java b/backend/src/main/java/com/tourguide/modules/order/service/TourOrderService.java
index 66a9a50..5dd6e89 100644
--- a/backend/src/main/java/com/tourguide/modules/order/service/TourOrderService.java
+++ b/backend/src/main/java/com/tourguide/modules/order/service/TourOrderService.java
@@ -9,6 +9,7 @@
 import com.tourguide.modules.order.domain.RefundStatus;
 import com.tourguide.modules.order.entity.TourOrder;
 import com.tourguide.modules.order.mapper.TourOrderMapper;
+import com.tourguide.modules.system.service.GuideNotificationService;
 import com.tourguide.modules.review.entity.OrderReview;
 import com.tourguide.modules.review.mapper.OrderReviewMapper;
 import org.springframework.stereotype.Service;
@@ -25,10 +26,13 @@
 public class TourOrderService {
     private final TourOrderMapper orderMapper;
     private final OrderReviewMapper reviewMapper;
+    private final GuideNotificationService notificationService;
 
-    public TourOrderService(TourOrderMapper orderMapper, OrderReviewMapper reviewMapper) {
+    public TourOrderService(TourOrderMapper orderMapper, OrderReviewMapper reviewMapper,
+                            GuideNotificationService notificationService) {
         this.orderMapper = orderMapper;
         this.reviewMapper = reviewMapper;
+        this.notificationService = notificationService;
     }
 
     public PageResponse<TourOrderResponse> page(long page, long size, String keyword, Long visitorId,
@@ -70,6 +74,7 @@
     @Transactional
     public TourOrderResponse refund(Long id) {
         TourOrder order = requireOrder(id);
+        boolean notifyGuide = OrderStatus.PENDING_MEETING.matches(order.getStatus()) && order.getGuideId() != null;
         if (OrderStatus.REFUNDED.matches(order.getStatus()) || RefundStatus.REFUNDED.matches(order.getRefundStatus())) {
             throw new BusinessException(409, "订单已退款,请勿重复操作");
         }
@@ -86,6 +91,7 @@
         order.setRefundOrderNo(generateRefundOrderNo());
         order.setRefundMethod(order.getPaymentMethod());
         orderMapper.updateById(order);
+        if (notifyGuide) notificationService.notifyOrderCancelled(order);
         return TourOrderResponse.from(order);
     }
 

--
Gitblit v1.7.1