From e3a2245265516fef78b4737d6fffc939e7c5e0af Mon Sep 17 00:00:00 2001
From: huliguo <2023611923@qq.com>
Date: 星期四, 03 七月 2025 17:56:07 +0800
Subject: [PATCH] bug修改

---
 pt-errand/src/main/resources/mapper/OrderMapper.xml |  137 ++++++++++++++++++++++++++-------------------
 1 files changed, 79 insertions(+), 58 deletions(-)

diff --git a/pt-errand/src/main/resources/mapper/OrderMapper.xml b/pt-errand/src/main/resources/mapper/OrderMapper.xml
index 1bca70e..9a2534c 100644
--- a/pt-errand/src/main/resources/mapper/OrderMapper.xml
+++ b/pt-errand/src/main/resources/mapper/OrderMapper.xml
@@ -11,19 +11,22 @@
             o.recipient_phone,
             o.order_status,
             o.order_time,
-            o.rating,
+            e.rating,
             o.courier_id,
-            c.name,
-            c.phone
+            c.name courierName,
+            c.phone courierPhone
             from t_order o
-            left join t_courier c on o.courier_id = c.id
+            left join t_courier c on c.id = o.courier_id
+            left join t_evaluation e on o.id = e.order_id and e.type =0
             where
                 o.del_flag=0
+              and o.order_status != 3
               and o.pay_status=2
               and o.app_user_id = #{appUserId}
               <if test="orderStatus!=null and orderStatus!=0">
                   and o.order_status = #{orderStatus}
               </if>
+        order by o.order_time desc
     </select>
     <select id="getOrderDetail" resultType="com.ruoyi.errand.object.vo.app.OrderDetailVO">
         select
@@ -43,17 +46,20 @@
             o.order_time as orderTime,
             o.pay_method as payMethod,
             o.payment_amount as paymentAmount,
-            c.courier_name as courierName,
-            c.courier_phone as courierPhone,
+            c.name as courierName,
+            c.phone as courierPhone,
+            e.id as evaluationId,
             e.rating as rating,
-            e.content as content
+            e.content as content,
+            e2.rating as courierRating,
+            e2.content as courierContent
             from t_order o
         left join t_courier c on o.courier_id = c.id
-        left join t_evaluation e on o.id = e.order_id
+        left join t_evaluation e on o.id = e.order_id and e.type = 0
+        left join t_evaluation e2 on o.id = e2.order_id and e2.type = 1
         where
             o.id=#{id}
             and o.del_flag=0
-            and e.type = 0
     </select>
 
     <select id="getOrderTopInfoByDate" resultType="java.util.Map">
@@ -64,10 +70,11 @@
             t_order
         where
             del_flag=0
+          and pay_status = 2
         and
             order_status in (4,5)
         <if test="communityId!=null and communityId!=0">
-            and communityId =#{communityId}
+            and community_id =#{communityId}
         </if>
         <if test="start!=null and end!=null">
             and order_time BETWEEN #{start} AND #{end}
@@ -89,7 +96,10 @@
             COALESCE(SUM(payment_amount), 0.00) AS amount
         FROM t_order
         WHERE order_time BETWEEN #{start} AND #{end}
-          and del_flag=0 and order_status in (4,5)
+          and del_flag=0 and order_status in (4,5)and pay_status = 2
+        <if test="communityId!=null and 0!= communityId">
+            and community_id =#{communityId}
+        </if>
         GROUP BY
             CASE #{datePattern}
                 WHEN 'HH时' THEN DATE_FORMAT(order_time, '%H时')
@@ -140,15 +150,12 @@
                 and tau.phone like concat('%',#{dto.phone},'%')
             </if>
 
-        <if test="dto.orderStatus!=null and 0!=dto.orderStatus and dto.orderStatus !=4">
+        <if test="dto.orderStatus!=null and 0!=dto.orderStatus ">
             and t.order_status = #{dto.orderStatus}
         </if>
-        <if test="dto.orderStatus ==4">
-            and t.order_status in(4,5)
+        <if test="dto.startTime!=null and dto.endTime != null">
+            and t.order_time between #{dto.startTime} and #{dto.endTime}
         </if>
-            <if test="dto.startTime!=null and dto.endTime != null">
-                and t.order_time between #{dto.startTime} and #{dto.endTime}
-            </if>
         ) t
         where
             1=1
@@ -161,8 +168,10 @@
     <select id="financeStatistics" resultType="com.ruoyi.errand.object.vo.sys.FinanceStatisticsVO">
         select * from (
                 SELECT t.id as id,
+                       t.order_amount as money,
                        t.order_time as orderTime,
                        1 as type,
+                        t.pay_method as payMethod,
                        t.order_number as orderNumber,
                        tau.name as appUserName,
                        tau.phone as phone,
@@ -180,41 +189,45 @@
                 <if test="dto.orderStatus!=null and 0!=dto.orderStatus and dto.orderStatus !=4">
                     and t.order_status = #{dto.orderStatus}
                 </if>
-        <if test="dto.orderStatus ==4">
-            and t.order_status in(4,5)
-        </if>
-                <if test="dto.startTime!=null and dto.endTime != null">
-                    and t.order_time between #{dto.startTime} and #{dto.endTime}
-                </if>
-            UNION ALL
-                SELECT t.id as id,
-                t.order_time as orderTime,
-                2 as type,
-                t.order_number as orderNumber,
-                tau.name as appUserName,
-                tau.phone as phone,
-                t.order_status as orderStatus
-                FROM t_vip_order t
-                INNER JOIN t_app_user tau ON t.app_user_id = tau.id
-                WHERE t.del_flag=0
-        and t.pay_status=2
-                <if test="dto.appUserName!=null and  ''!=dto.appUserName">
-                    and tau.name like concat('%',#{dto.appUserName},'%')
-                </if>
-
-                <if test="dto.phone!=null and  ''!=dto.phone">
-                    and tau.phone like concat('%',#{dto.phone},'%')
-                </if>
-
-                <if test="dto.orderStatus!=null and 0!=dto.orderStatus and dto.orderStatus !=4">
-                    and t.order_status = #{dto.orderStatus}
-                </if>
                 <if test="dto.orderStatus ==4">
                     and t.order_status in(4,5)
                 </if>
-
                 <if test="dto.startTime!=null and dto.endTime != null">
                     and t.order_time between #{dto.startTime} and #{dto.endTime}
+                </if>
+                <if test="dto.payMethod!=null">
+                    and t.pay_method = #{dto.payMethod}
+                </if>
+
+                <if test="dto.payMethod==null || dto.payMethod==0">
+                UNION ALL
+                    SELECT t.id as id,
+                       t.order_amount as money,
+                        t.order_time as orderTime,
+                        2 as type,
+                        0 as payMethod,
+                        t.order_number as orderNumber,
+                        tau.name as appUserName,
+                        tau.phone as phone,
+                        t.order_status as orderStatus
+                    FROM t_vip_order t
+                    INNER JOIN t_app_user tau ON t.app_user_id = tau.id
+                    WHERE t.del_flag=0
+                        and t.pay_status=2
+                    <if test="dto.appUserName!=null and  ''!=dto.appUserName">
+                            and tau.name like concat('%',#{dto.appUserName},'%')
+                    </if>
+
+                    <if test="dto.phone!=null and  ''!=dto.phone">
+                            and tau.phone like concat('%',#{dto.phone},'%')
+                    </if>
+
+                    <if test="dto.orderStatus!=null and 0!=dto.orderStatus ">
+                            and t.order_status = #{dto.orderStatus}
+                    </if>
+                    <if test="dto.startTime!=null and dto.endTime != null">
+                        and t.order_time between #{dto.startTime} and #{dto.endTime}
+                    </if>
                 </if>
                 ) t
             where
@@ -266,14 +279,13 @@
             and o.order_time between #{dto.orderStartTime} and #{dto.orderEndTime}
         </if>
         <if test="dto.finishStartTime!=null and dto.finishEndTime != null">
-            and o.finishTime between #{dto.finishStartTime} and #{dto.finishEndTime}
+            and o.finish_time between #{dto.finishStartTime} and #{dto.finishEndTime}
         </if>
-        <if test="dto.orderStatus!=null and 0!=dto.orderStatus and dto.orderStatus !=4">
+        <if test="dto.orderStatus!=null and 0!=dto.orderStatus">
             and o.order_status = #{dto.orderStatus}
         </if>
-        <if test="dto.orderStatus ==4">
-            and o.order_status in(4,5)
-        </if>
+
+        order by o.order_time desc
     </select>
     <select id="detail" resultType="com.ruoyi.errand.object.vo.sys.OrderSysDetailVO">
         select
@@ -303,7 +315,7 @@
         inner join t_app_user tau on o.app_user_id = tau.id
         left join t_courier tc on o.courier_id = tc.id
         left join t_evaluation teu on o.id = teu.order_id and teu.type=0
-        left join t_evaluation tec on o.id = teu.order_id and teu.type=1
+        left join t_evaluation tec on o.id = tec.order_id and tec.type=1
         where
             o.id=#{id}
     </select>
@@ -311,7 +323,9 @@
         select * from (
         SELECT t.id as id,
         t.order_time as orderTime,
+        t.order_amount as money,
         1 as type,
+        t.pay_method as payMethod,
         t.order_number as orderNumber,
         tau.name as appUserName,
         tau.phone as phone,
@@ -335,10 +349,17 @@
         <if test="dto.startTime!=null and dto.endTime != null">
             and t.order_time between #{dto.startTime} and #{dto.endTime}
         </if>
+        <if test="dto.payMethod!=null">
+            and t.pay_method = #{dto.payMethod}
+        </if>
+
+        <if test="dto.payMethod==null || dto.payMethod==0">
         UNION ALL
         SELECT t.id as id,
         t.order_time as orderTime,
+        t.order_amount as money,
         2 as type,
+        0 as payMethod,
         t.order_number as orderNumber,
         tau.name as appUserName,
         tau.phone as phone,
@@ -355,15 +376,14 @@
             and tau.phone like concat('%',#{dto.phone},'%')
         </if>
 
-        <if test="dto.orderStatus!=null and 0!=dto.orderStatus and dto.orderStatus !=4">
+        <if test="dto.orderStatus!=null and 0!=dto.orderStatus ">
             and t.order_status = #{dto.orderStatus}
         </if>
-        <if test="dto.orderStatus ==4">
-            and t.order_status in(4,5)
-        </if>
+
 
         <if test="dto.startTime!=null and dto.endTime != null">
             and t.order_time between #{dto.startTime} and #{dto.endTime}
+        </if>
         </if>
         ) t
         where
@@ -414,7 +434,7 @@
             and o.order_time between #{dto.orderStartTime} and #{dto.orderEndTime}
         </if>
         <if test="dto.finishStartTime!=null and dto.finishEndTime != null">
-            and o.finishTime between #{dto.finishStartTime} and #{dto.finishEndTime}
+            and o.finish_time between #{dto.finishStartTime} and #{dto.finishEndTime}
         </if>
         <if test="dto.orderStatus!=null and 0!=dto.orderStatus and dto.orderStatus !=4">
             and o.order_status = #{dto.orderStatus}
@@ -422,5 +442,6 @@
         <if test="dto.orderStatus ==4">
             and o.order_status in(4,5)
         </if>
+        order by o.order_time desc
     </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.7.1