<?xml version="1.0" encoding="UTF-8"?>
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<mapper namespace="com.stylefeng.guns.modular.shunfeng.dao.OrderRideMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.shunfeng.model.OrderRide">
|
<id column="id" property="id" />
|
<result column="addTime" property="addTime" />
|
<result column="userId" property="userId" />
|
<result column="startTime" property="startTime" />
|
<result column="num" property="num" />
|
<result column="startName" property="startName" />
|
<result column="endName" property="endName" />
|
<result column="lxPhone" property="lxPhone" />
|
<result column="isDai" property="isDai" />
|
<result column="money" property="money" />
|
<result column="state" property="state" />
|
<result column="isEvaluate" property="isEvaluate" />
|
<result column="isComplaint" property="isComplaint" />
|
<result column="startLon" property="startLon" />
|
<result column="startLat" property="startLat" />
|
<result column="endLon" property="endLon" />
|
<result column="endLat" property="endLat" />
|
<result column="travelId" property="travelId" />
|
<result column="payType" property="payType" />
|
</resultMap>
|
|
<!-- 通用查询结果列 -->
|
<sql id="Base_Column_List">
|
id, addTime, userId, startTime, num, startName, endName, lxPhone, isDai, money, state, isEvaluate, isComplaint, startLon, startLat, endLon, endLat, travelId, name, identity, payType
|
</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
|
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
|
<where>
|
<if test="userId!=null">
|
and r.userId = #{userId}
|
</if>
|
<if test="type==1">
|
and r.state in (1,2,3,4)
|
</if>
|
<if test="type>1">
|
and r.state = 2
|
</if>
|
</where>
|
<if test="type==1">
|
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
|
</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}
|
</select>
|
<!--获取用户身份和司机身份的订单 只需要按照时间排序-->
|
<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
|
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
|
left join app_order_ride r on r.travelId=t.id where t.driverId=#{driverId}
|
) o
|
order by o.addTime desc
|
LIMIT #{current},#{size}
|
</select>
|
<!--获取订单详情-->
|
<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
|
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
|
</select>
|
</mapper>
|