From 4f6f15b818704079ff2e4e4719b798f48d68a335 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 11 九月 2026 13:52:19 +0800
Subject: [PATCH] update

---
 backend/src/main/java/com/tourguide/modules/order/service/TourOrderService.java |   36 +++++++++++++++++++++++++++++++++++-
 1 files changed, 35 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 9a26247..f1a7c3a 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
@@ -5,16 +5,20 @@
 import com.tourguide.common.api.PageResponse;
 import com.tourguide.common.exception.BusinessException;
 import com.tourguide.modules.order.dto.TourOrderResponse;
+import com.tourguide.modules.order.dto.TourOrderRefundResponse;
 import com.tourguide.modules.order.domain.OrderStatus;
 import com.tourguide.modules.order.domain.RefundAmountCalculator;
 import com.tourguide.modules.order.domain.RefundStatus;
 import com.tourguide.modules.order.entity.TourOrder;
+import com.tourguide.modules.order.entity.TourOrderRefund;
 import com.tourguide.modules.order.mapper.TourOrderMapper;
+import com.tourguide.modules.order.mapper.TourOrderRefundMapper;
 import com.tourguide.modules.system.service.GuideNotificationService;
 import com.tourguide.modules.review.entity.OrderReview;
 import com.tourguide.modules.review.mapper.OrderReviewMapper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
@@ -31,14 +35,34 @@
     private final OrderReviewMapper reviewMapper;
     private final GuideNotificationService notificationService;
     private final OrderRefundService orderRefundService;
+    private final TourOrderRefundMapper refundMapper;
+    private final GuideSessionTransitionService sessionTransitionService;
 
     public TourOrderService(TourOrderMapper orderMapper, OrderReviewMapper reviewMapper,
                             GuideNotificationService notificationService,
                             OrderRefundService orderRefundService) {
+        this(orderMapper, reviewMapper, notificationService, orderRefundService, null, null);
+    }
+
+    public TourOrderService(TourOrderMapper orderMapper, OrderReviewMapper reviewMapper,
+                            GuideNotificationService notificationService,
+                            OrderRefundService orderRefundService,
+                            TourOrderRefundMapper refundMapper) {
+        this(orderMapper, reviewMapper, notificationService, orderRefundService, refundMapper, null);
+    }
+
+    @Autowired
+    public TourOrderService(TourOrderMapper orderMapper, OrderReviewMapper reviewMapper,
+                            GuideNotificationService notificationService,
+                            OrderRefundService orderRefundService,
+                            TourOrderRefundMapper refundMapper,
+                            GuideSessionTransitionService sessionTransitionService) {
         this.orderMapper = orderMapper;
         this.reviewMapper = reviewMapper;
         this.notificationService = notificationService;
         this.orderRefundService = orderRefundService;
+        this.refundMapper = refundMapper;
+        this.sessionTransitionService = sessionTransitionService;
     }
 
     public PageResponse<TourOrderResponse> page(long page, long size, String keyword, Long visitorId, Long guideId,
@@ -72,7 +96,14 @@
                 .eq(OrderReview::getOrderId, id)
                 .eq(OrderReview::getStatus, 1)
                 .last("LIMIT 1"));
-        return TourOrderResponse.from(order, review);
+        TourOrderResponse response = TourOrderResponse.from(order, review);
+        if (refundMapper == null) return response;
+        List<TourOrderRefund> records = refundMapper.selectByOrderId(id);
+        if (records == null) return response;
+        List<TourOrderRefundResponse> refundRecords = records.stream()
+                .map(TourOrderRefundResponse::new)
+                .collect(Collectors.toList());
+        return response.withRefundRecords(refundRecords);
     }
 
     public List<String> scenicOptions() {
@@ -117,6 +148,9 @@
             throw new BusinessException(502, "支付渠道退款失败,请稍后重试");
         }
         if (notifyGuide) {
+            if (sessionTransitionService != null) {
+                sessionTransitionService.restoreAfterOrderCancellation(order);
+            }
             try {
                 notificationService.notifyOrderCancelled(order);
             } catch (RuntimeException exception) {

--
Gitblit v1.7.1