From e2ec753e232106f336894f58d585e58c27bf1f29 Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期四, 30 七月 2026 17:04:43 +0800
Subject: [PATCH] 各类修复

---
 ruoyi-service/ruoyi-order/src/test/java/com/ruoyi/order/mapper/PayOrderQueryPerformanceMapperTest.java |   38 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/test/java/com/ruoyi/order/mapper/PayOrderQueryPerformanceMapperTest.java b/ruoyi-service/ruoyi-order/src/test/java/com/ruoyi/order/mapper/PayOrderQueryPerformanceMapperTest.java
index bf49137..6fbe7e7 100644
--- a/ruoyi-service/ruoyi-order/src/test/java/com/ruoyi/order/mapper/PayOrderQueryPerformanceMapperTest.java
+++ b/ruoyi-service/ruoyi-order/src/test/java/com/ruoyi/order/mapper/PayOrderQueryPerformanceMapperTest.java
@@ -37,6 +37,44 @@
     }
 
     @Test
+    void invoiceOrderViewRetainsLinkedOrdersAfterPaymentStatusChanges() throws IOException {
+        InputStream input = getClass().getClassLoader()
+                .getResourceAsStream("mapper/order/TChargingOrderMapper.xml");
+        assertNotNull(input);
+
+        String mapper;
+        try (BufferedReader reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8))) {
+            mapper = reader.lines().collect(Collectors.joining("\n"));
+        }
+
+        String payOrderQuery = mapper.substring(
+                mapper.indexOf("<select id=\"payOrderQuery\""),
+                mapper.indexOf("<select id=\"getRefundList\""));
+        assertEquals(3, countOccurrences(payOrderQuery, "#{data.invoiceId} IS NOT NULL"));
+        assertTrue(payOrderQuery.contains("a.recharge_payment_status = 2 OR #{data.invoiceId} IS NOT NULL"));
+        assertEquals(2, countOccurrences(payOrderQuery,
+                "a.payment_status = 2 OR #{data.invoiceId} IS NOT NULL"));
+    }
+
+    @Test
+    void paymentOrderListUsesLatestPaymentTimeAsItsDefaultSort() throws IOException {
+        InputStream input = getClass().getClassLoader()
+                .getResourceAsStream("mapper/order/TChargingOrderMapper.xml");
+        assertNotNull(input);
+
+        String mapper;
+        try (BufferedReader reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8))) {
+            mapper = reader.lines().collect(Collectors.joining("\n"));
+        }
+
+        String payOrderQuery = mapper.substring(
+                mapper.indexOf("<select id=\"payOrderQuery\""),
+                mapper.indexOf("<select id=\"getRefundList\""));
+        assertTrue(payOrderQuery.contains(
+                "ORDER BY COALESCE(o.pay_time, o.create_time, o.end_time) DESC, o.create_time DESC, o.id DESC"));
+    }
+
+    @Test
     void refundListAppliesPartnerSiteScopeInsidePagedQuery() throws IOException {
         InputStream input = getClass().getClassLoader()
                 .getResourceAsStream("mapper/order/TChargingOrderMapper.xml");

--
Gitblit v1.7.1