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/GuideEarningsService.java |   24 +++++++++++++++++++++---
 1 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/backend/src/main/java/com/tourguide/modules/order/service/GuideEarningsService.java b/backend/src/main/java/com/tourguide/modules/order/service/GuideEarningsService.java
index d34031a..bb5fff5 100644
--- a/backend/src/main/java/com/tourguide/modules/order/service/GuideEarningsService.java
+++ b/backend/src/main/java/com/tourguide/modules/order/service/GuideEarningsService.java
@@ -16,6 +16,8 @@
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -49,7 +51,6 @@
                 .isNotNull(TourOrder::getGuideEarningAmount)
                 .and(wrapper -> wrapper.isNull(TourOrder::getRefundStatus)
                         .or().ne(TourOrder::getRefundStatus, RefundStatus.REFUNDED.getCode()))
-                .like(StringUtils.hasText(serviceType), TourOrder::getOrderType, serviceType)
                 .eq(StringUtils.hasText(scenicName), TourOrder::getScenicName,
                         StringUtils.hasText(scenicName) ? scenicName.trim() : null)
                 .ge(date != null, TourOrder::getCompletedAt, date == null ? null : date.atStartOfDay())
@@ -57,6 +58,9 @@
                         date == null ? null : date.plusDays(1).atStartOfDay())
                 .orderByDesc(TourOrder::getCompletedAt)
                 .orderByDesc(TourOrder::getId);
+        if (StringUtils.hasText(serviceType)) {
+            query.in(TourOrder::getOrderType, resolveOrderTypes(serviceType));
+        }
         Page<TourOrder> result = orderMapper.selectPage(new Page<TourOrder>(safePage, safeSize), query);
         List<GuideEarningItemResponse> records = result.getRecords().stream()
                 .map(GuideEarningItemResponse::new)
@@ -69,11 +73,25 @@
     private void validateServiceType(String serviceType) {
         if (StringUtils.hasText(serviceType)
                 && !"QUICK".equals(serviceType)
-                && !"PREMIUM".equals(serviceType)) {
-            throw new BusinessException(400, "讲解类型不支持");
+                && !"PREMIUM".equals(serviceType)
+                && !"GROUP_QUICK".equals(serviceType)
+                && !"GROUP_PREMIUM".equals(serviceType)
+                && !"PRIVATE_QUICK".equals(serviceType)
+                && !"PRIVATE_PREMIUM".equals(serviceType)) {
+            throw new BusinessException(400, "订单类型不支持");
         }
     }
 
+    private List<String> resolveOrderTypes(String serviceType) {
+        if ("QUICK".equals(serviceType)) {
+            return Arrays.asList("GROUP_QUICK", "PRIVATE_QUICK");
+        }
+        if ("PREMIUM".equals(serviceType)) {
+            return Arrays.asList("GROUP_PREMIUM", "PRIVATE_PREMIUM");
+        }
+        return Collections.singletonList(serviceType);
+    }
+
     private BigDecimal safeAmount(BigDecimal amount) {
         return amount == null ? BigDecimal.ZERO.setScale(2) : amount;
     }

--
Gitblit v1.7.1