From 2506c3f8e3ef1ace4a258a8c5f93ddd47a51bbd2 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 19 九月 2025 16:06:14 +0800
Subject: [PATCH] 修改后台司机授权逻辑判断

---
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/OrderRideMapper.xml |   72 +++++++++++++++++++++++++++++------
 1 files changed, 59 insertions(+), 13 deletions(-)

diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/OrderRideMapper.xml b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/OrderRideMapper.xml
index 051501f..28ce9ad 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/OrderRideMapper.xml
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/OrderRideMapper.xml
@@ -31,11 +31,12 @@
     </sql>
     <!--用户顺风车订单 type :1待处理的订单,2根据线路、时间,人数综合匹配排序 3按时间排序最早,4距离最近排序,5价格最高 and r.startTime>=now()-->
     <select id="getOrderRide" resultType="com.stylefeng.guns.modular.shunfeng.model.vo.OrderRideVo">
-        select r.*,_fnGetDistance(#{lon},#{lat}, r.startLon, r.startLat)  as distance,u.headImg,u.sex,u.totalOrders,u.nickName as name,
-        r.id as userOrderId,t.id as  driverOrderId from app_order_ride r
+        select r.*,calculate_distance(#{lat},#{lon},r.startLat, r.startLon) as distance,u.avatar as headImg,u.sex,u.totalOrders,u.nickName as name,
+        r.id as userOrderId,t.id as  driverOrderId, r.startLon as lon, r.startLat as lat
+        from app_order_ride r
         left join app_order_travel t on r.travelId=t.id
-        left join app_user_info u on r.userId=u.id
-        left join app_user_info u1 on r.driverId=u1.driverId
+        left join t_user u on r.userId=u.id
+        left join t_user u1 on r.driverId=u1.driverId
         <where>
             <if test="userId!=null">
                 and r.userId = #{userId}
@@ -51,15 +52,12 @@
             order by r.startTime desc
         </if>
         <if test="type==2">
-            order by _fnGetDistance(#{lon},#{lat}, r.startLon, r.startLat) asc,r.startTime desc,(r.num-#{num}) asc
+            order by calculate_distance(#{lat},#{lon},r.startLat, r.startLon) asc,r.startTime desc,(r.num-#{num}) asc
         </if>
         <if test="type==3">
             order by r.startTime asc
         </if>
         <if test="type==4">
-            order by _fnGetDistance(#{lon},#{lat}, r.startLon, r.startLat) asc
-        </if>
-        <if test="type==5">
             order by r.money desc
         </if>
         LIMIT #{current},#{size}
@@ -67,10 +65,10 @@
     <!--获取用户身份和司机身份的订单 只需要按照时间排序-->
     <select id="getOrderRideAndTravel" resultType="com.stylefeng.guns.modular.shunfeng.model.vo.OrderRideVo">
        select * from (
-         select r.addTime,r.startTime,1 as type,r.state,r.startName,r.endName,r.userId,t.driverId,r.num,r.id as userOrderId,t.id as driverOrderId,r.money from app_order_ride r
+         select r.addTime,r.startTime,1 as type,r.state,r.startName,r.endName,r.userId,t.driverId,r.num,r.id as userOrderId,t.id as driverOrderId,r.money, r.startLon as lon, r.startLat as lat from app_order_ride r
 				left join app_order_travel t on r.travelId=t.id where r.userId=#{userId}
         UNION
-        select t.addTime,t.startTime,2 as type,t.state,t.startName,t.endName,0,t.driverId,r.num,r.id as userOrderId,t.id as driverOrderId,0 as money  from app_order_travel t
+        select t.addTime,t.startTime,2 as type,t.state,t.startName,t.endName,0,t.driverId,r.num,r.id as userOrderId,t.id as driverOrderId,0 as money, r.startLon as lon, r.startLat as lat  from app_order_travel t
 				left join app_order_ride r on r.travelId=t.id where t.driverId=#{driverId}
         ) o
         order by o.addTime desc
@@ -79,11 +77,59 @@
     <!--获取订单详情-->
     <select id="getOrderInfo" resultType="com.stylefeng.guns.modular.shunfeng.model.vo.OrderRideInfoVo">
         select r.addTime,r.startTime,r.endName,r.startName,r.money,r.id as userOrderId,r.state,t.id as driverOrderId,r.isEvaluate,t.isComplaint,
-        r.num,r.userId,r.driverId ,u.headImg,CASE  when r.isDai=1 then r.lxPhone else u.phone end as phone,u.sex,u.nickName as name,u.totalOrders,
-        _fnGetDistance(#{lon},#{lat}, r.startLon, r.startLat) as distance
+        r.num,r.userId,r.driverId ,u.avatar as headImg,CASE  when r.isDai=1 then r.lxPhone else u.phone end as phone,u.sex,u.nickName as name,u.totalOrders,
+        calculate_distance(#{lat},#{lon},r.startLat, r.startLon) as distance,r.startLat as lat, r.startLon as lon,r.endLon endLon,r.endLat endLat,
+        t.startLat as latDriver, t.startLon as lonDriver,t.endLon endLonDriver,t.endLat endLatDriver
         from (select * from app_order_ride where id=#{userOrderId}) r
         left join app_order_travel t on r.travelId=t.id
         left join app_driver_ride d on d.id=r.driverId
-        left join app_user_info u on r.userId=u.id
+        left join t_user u on r.userId=u.id
+    </select>
+
+    <select id="queryMyOrderList" resultType="java.util.Map">
+        SELECT
+            *
+        FROM
+            (
+                SELECT
+                    id AS orderId,
+                    DATE_FORMAT( addTime, '%Y-%m-%d %H:%i' ) AS orderTime,
+                    DATE_FORMAT( startTime, '%m月%d日 %H:%i' ) AS time,
+		startName AS startAddress,
+		endName AS endAddress,
+		driverId AS driverId,
+		( 8 ) AS orderType,
+		1 AS rideUserType,
+		startLon as startLon,
+		startLat as startLat,
+		state AS state
+                FROM
+                    app_order_ride
+                WHERE
+                    userId = #{uid}
+
+                UNION all
+
+                SELECT
+                    t1.id AS orderId,
+                    DATE_FORMAT( t1.addTime, '%Y-%m-%d %H:%i' ) AS orderTime,
+                    DATE_FORMAT( t1.startTime, '%m月%d日 %H:%i' ) AS time,
+                    t1.startName AS startAddress,
+                    t1.endName AS endAddress,
+                    t1.driverId AS driverId,
+                    ( 8 ) AS orderType,
+                    2 AS rideUserType,
+                    t1.startLon as startLon,
+                    t1.startLat as startLat,
+                    t1.state AS state
+                FROM
+                    app_order_travel t1
+                    LEFT JOIN t_user t2 ON t1.driverId = t2.driverId
+                WHERE
+                    t2.id = #{uid}
+            ) as t
+        ORDER BY
+            t.orderTime DESC
+            LIMIT #{pageNum}, #{size}
     </select>
 </mapper>

--
Gitblit v1.7.1