<?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.supersavedriving.driver.modular.system.dao.OrderMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.supersavedriving.driver.modular.system.model.Order">
|
<id column="id" property="id" />
|
<result column="code" property="code" />
|
<result column="userId" property="userId" />
|
<result column="userPhone" property="userPhone" />
|
<result column="userName" property="userName" />
|
<result column="driverId" property="driverId" />
|
<result column="source" property="source" />
|
<result column="agentId" property="agentId" />
|
<result column="branchOfficeId" property="branchOfficeId" />
|
<result column="orderTakingTime" property="orderTakingTime"/>
|
<result column="goToAppointmentPointTime" property="goToAppointmentPointTime"/>
|
<result column="arrivalTimeAtTheAppointmentPoint" property="arrivalTimeAtTheAppointmentPoint"/>
|
<result column="startTime" property="startTime" />
|
<result column="startAddress" property="startAddress" />
|
<result column="startLat" property="startLat" />
|
<result column="startLng" property="startLng" />
|
<result column="endAddress" property="endAddress" />
|
<result column="endLat" property="endLat" />
|
<result column="endLng" property="endLng" />
|
<result column="boardingTime" property="boardingTime" />
|
<result column="getoffTime" property="getoffTime" />
|
<result column="startDistance" property="startDistance" />
|
<result column="startPrice" property="startPrice" />
|
<result column="overDriveDistance" property="overDriveDistance" />
|
<result column="overDrivePrice" property="overDrivePrice" />
|
<result column="longDistance" property="longDistance" />
|
<result column="longDistancePrice" property="longDistancePrice" />
|
<result column="overLongDistance" property="overLongDistance" />
|
<result column="overLongDistancePrice" property="overLongDistancePrice" />
|
<result column="waitTime" property="waitTime" />
|
<result column="waitTimePrice" property="waitTimePrice" />
|
<result column="outWaitTime" property="outWaitTime" />
|
<result column="outWaitTimePrice" property="outWaitTimePrice" />
|
<result column="badWeatherDistance" property="badWeatherDistance" />
|
<result column="badWeatherPrice" property="badWeatherPrice" />
|
<result column="overBadWeatherDistance" property="overBadWeatherDistance" />
|
<result column="overBadWeatherPrice" property="overBadWeatherPrice" />
|
<result column="weather" property="weather"/>
|
<result column="estimatedPrice" property="estimatedPrice" />
|
<result column="estimatedMileage" property="estimatedMileage"/>
|
<result column="orderMoney" property="orderMoney" />
|
<result column="actualMileage" property="actualMileage"/>
|
<result column="payMoney" property="payMoney" />
|
<result column="discountedPrice" property="discountedPrice" />
|
<result column="couponId" property="couponId" />
|
<result column="discountAmount" property="discountAmount"/>
|
<result column="discount" property="discount"/>
|
<result column="payType" property="payType" />
|
<result column="payTime" property="payTime" />
|
<result column="hallOrder" property="hallOrder"/>
|
<result column="startWaitTime" property="startWaitTime"/>
|
<result column="state" property="state" />
|
<result column="oldState" property="oldState"/>
|
<result column="status" property="status" />
|
<result column="createTime" property="createTime" />
|
<result column="routeRecord" property="routeRecord"/>
|
</resultMap>
|
|
|
|
<select id="queryOrderHall" resultType="com.supersavedriving.driver.modular.system.warpper.HallOrderList">
|
select
|
a.id,
|
b.avatar,
|
a.userName,
|
a.userPhone,
|
(select count(1) from t_order where userId = a.userId and state in (107, 108, 109)) as orderTimes,
|
(select count(1) from t_order where userId = a.userId and state in (301)) as cancelTimes,
|
a.source,
|
UNIX_TIMESTAMP(a.createTime) * 1000 as createTime,
|
a.startAddress,
|
a.startLat,
|
a.startLng,
|
a.endAddress,
|
a.endLat,
|
a.endLng,
|
a.estimatedPrice,
|
a.estimatedMileage,
|
a.startPrice
|
from t_order a
|
left join t_app_user b on (a.userId = b.id)
|
where a.`status` = 1 and a.hallOrder = 1 and a.state in (101, 201) order by a.createTime desc
|
</select>
|
|
|
|
<select id="queryOrderInfo" resultType="com.supersavedriving.driver.modular.system.warpper.OrderInfoWarpper">
|
select
|
a.id,
|
b.id as userId,
|
b.avatar,
|
a.userName,
|
a.userPhone,
|
(select count(1) from t_order where userId = a.userId and state in (107, 108, 109)) as orderTimes,
|
(select count(1) from t_order where userId = a.userId and state in (301)) as cancelTimes,
|
a.source,
|
UNIX_TIMESTAMP(a.createTime) * 1000 as createTime,
|
a.startAddress,
|
a.startLat,
|
a.startLng,
|
a.endAddress,
|
a.endLat,
|
a.endLng,
|
a.estimatedPrice,
|
a.estimatedMileage,
|
a.estimatedTime,
|
a.startPrice,
|
a.waitTime,
|
a.actualMileage,
|
a.state,
|
(UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(a.startTime)) / 60 as travelTime
|
from t_order a
|
left join t_app_user b on (a.userId = b.id)
|
where a.id = #{orderId}
|
</select>
|
|
|
<select id="queryDriverOrderList" resultType="com.supersavedriving.driver.modular.system.warpper.DriverOrderListWarpper">
|
select
|
id,
|
'超省新代驾订单' as title,
|
UNIX_TIMESTAMP(createTime) * 1000 as createTime,
|
startAddress,
|
endAddress,
|
state,
|
source
|
from t_order where status = 1 and driverId = #{driverId}
|
<if test="null != state and 107 == state">
|
and state = #{state}
|
</if>
|
<if test="null != state and 109 == state">
|
and state in (108, 109)
|
</if>
|
<if test="null != state and 301 == state">
|
and state = #{state}
|
</if>
|
order by createTime desc limit #{pageNum}, #{pageSize}
|
</select>
|
|
|
<select id="queryInviteList" resultType="com.supersavedriving.driver.modular.system.warpper.InviteListWarpper">
|
select * from (
|
select
|
a.id,
|
a.nickname,
|
min(UNIX_TIMESTAMP(b.createTime) * 1000) as time,
|
1 as type
|
from t_app_user a
|
left join t_order b on (a.id = b.userId)
|
where a.`status` = 1 and a.inviterType = 2 and a.inviterId = #{driverId}
|
<if test="null != time and '' != time">
|
and DATE_FORMAT(b.createTime, '%Y年%m月') = #{time}
|
</if>
|
group by a.id, a.nickname
|
|
union all
|
|
select
|
a.id,
|
a.`name`,
|
min(UNIX_TIMESTAMP(b.createTime) * 1000) as time,
|
2 as type
|
from t_driver a
|
left join t_order b on (a.id = b.driverId)
|
where a.`status` = 1 and a.approvalStatus = 2 and a.inviterType = 2 and a.inviterId = #{driverId}
|
<if test="null != time and '' != time">
|
and DATE_FORMAT(b.createTime, '%Y年%m月') = #{time}
|
</if>
|
group by a.id, a.`name`
|
) as aa where aa.time is not null order by aa.time desc limit #{pageNum}, #{pageSize}
|
</select>
|
|
|
<select id="queryDriverRank" resultType="com.supersavedriving.driver.modular.system.warpper.PerformanceRankingWarpper">
|
select
|
aa.driverId,
|
aa.name,
|
UNIX_TIMESTAMP(aa.createTime) * 1000 as createTime,
|
aa.number as amountOfData
|
from (
|
select
|
a.driverId,
|
b.`name`,
|
MAX(a.createTime) as createTime,
|
count(1) as number
|
from t_order a
|
left join t_driver b on (a.driverId = b.id)
|
where a.state in (107, 108, 109) and a.`status` = 1
|
<if test="null != dayType and 1 == dayType"><!--天-->
|
<if test="null != time and '' != time">
|
and DATE_FORMAT(a.createTime, '%Y年%m月%d日') = #{time}
|
</if>
|
</if>
|
<if test="null != dayType and 2 == dayType"><!--月-->
|
<if test="null != time and '' != time">
|
and DATE_FORMAT(a.createTime, '%Y年%m月') = #{time}
|
</if>
|
</if>
|
<if test="null != dayType and 3 == dayType"><!--年-->
|
<if test="null != time and '' != time">
|
and DATE_FORMAT(a.createTime, '%Y年') = #{time}
|
</if>
|
</if>
|
group by a.driverId,b.`name`
|
) as aa order by aa.number desc
|
</select>
|
</mapper>
|