Pu Zhibing
2025-09-19 2506c3f8e3ef1ace4a258a8c5f93ddd47a51bbd2
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/OrderRideMapper.xml
@@ -32,7 +32,8 @@
    <!--用户顺风车订单 type :1待处理的订单,2根据线路、时间,人数综合匹配排序 3按时间排序最早,4距离最近排序,5价格最高 and r.startTime>=now()-->
    <select id="getOrderRide" resultType="com.stylefeng.guns.modular.shunfeng.model.vo.OrderRideVo">
        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 from app_order_ride r
        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 t_user u on r.userId=u.id
        left join t_user u1 on r.driverId=u1.driverId
@@ -57,9 +58,6 @@
            order by r.startTime asc
        </if>
        <if test="type==4">
            order by calculate_distance(#{lat},#{lon},r.startLat, r.startLon) 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
@@ -80,10 +78,58 @@
    <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.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
        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 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>