<?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.system.dao.TOrderTransferMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.TOrderTransfer">
|
<id column="id" property="id" />
|
<result column="type" property="type" />
|
<result column="userId" property="userId" />
|
<result column="driverId" property="driverId" />
|
<result column="carId" property="carId" />
|
<result column="orderNum" property="orderNum" />
|
<result column="placementLon" property="placementLon" />
|
<result column="placementLat" property="placementLat" />
|
<result column="placementAddress" property="placementAddress" />
|
<result column="startLon" property="startLon" />
|
<result column="startLat" property="startLat" />
|
<result column="endLon" property="endLon" />
|
<result column="startAddress" property="startAddress" />
|
<result column="endLat" property="endLat" />
|
<result column="endAddress" property="endAddress" />
|
<result column="boardingLon" property="boardingLon" />
|
<result column="boardingLat" property="boardingLat" />
|
<result column="boardingAddress" property="boardingAddress" />
|
<result column="boardingTime" property="boardingTime" />
|
<result column="getoffLon" property="getoffLon" />
|
<result column="getoffLat" property="getoffLat" />
|
<result column="getoffAddress" property="getoffAddress" />
|
<result column="getoffTime" property="getoffTime" />
|
<result column="mileage" property="mileage" />
|
<result column="payManner" property="payManner" />
|
<result column="payType" property="payType" />
|
<result column="orderMoney" property="orderMoney" />
|
<result column="startMoney" property="startMoney" />
|
<result column="mileageMoney" property="mileageMoney" />
|
<result column="durationMoney" property="durationMoney" />
|
<result column="longDistanceMoney" property="longDistanceMoney" />
|
<result column="parkMoney" property="parkMoney" />
|
<result column="roadTollMoney" property="roadTollMoney" />
|
<result column="redPacketMoney" property="redPacketMoney" />
|
<result column="couponMoney" property="couponMoney" />
|
<result column="redPacketId" property="redPacketId" />
|
<result column="couponId" property="couponId" />
|
<result column="discount" property="discount" />
|
<result column="discountMoney" property="discountMoney" />
|
<result column="activityId" property="activityId" />
|
<result column="companyId" property="companyId" />
|
<result column="payMoney" property="payMoney" />
|
<result column="substitute" property="substitute" />
|
<result column="passengers" property="passengers" />
|
<result column="passengersPhone" property="passengersPhone" />
|
<result column="state" property="state" />
|
<result column="insertTime" property="insertTime" />
|
<result column="travelTime" property="travelTime" />
|
<result column="snatchOrderTime" property="snatchOrderTime" />
|
<result column="setOutTime" property="setOutTime" />
|
<result column="arriveTime" property="arriveTime" />
|
<result column="startServiceTime" property="startServiceTime" />
|
<result column="endServiceTime" property="endServiceTime" />
|
<result column="orderType" property="orderType" />
|
<result column="orderSource" property="orderSource" />
|
<result column="invoiceId" property="invoiceId" />
|
<result column="isReassign" property="isReassign" />
|
<result column="reassignNotice" property="reassignNotice" />
|
<result column="trackId" property="trackId" />
|
<result column="isDelete" property="isDelete" />
|
<result column="oldState" property="oldState" />
|
<result column="telX" property="telX" />
|
<result column="bindId" property="bindId" />
|
<result column="serverCarModelId" property="serverCarModelId" />
|
</resultMap>
|
|
<!-- 通用查询结果列 -->
|
<sql id="Base_Column_List">
|
id, type, userId, driverId, carId, orderNum, placementLon, placementLat, placementAddress, startLon, startLat, endLon, startAddress, endLat, endAddress, boardingLon, boardingLat, boardingAddress, boardingTime, getoffLon, getoffLat, getoffAddress, getoffTime, mileage, payManner, payType, orderMoney, startMoney, mileageMoney, durationMoney, longDistanceMoney, parkMoney, roadTollMoney, redPacketMoney, couponMoney, redPacketId, couponId, discount, discountMoney, activityId, companyId, payMoney, substitute, passengers, passengersPhone, state, insertTime, travelTime, snatchOrderTime, setOutTime, arriveTime, startServiceTime, endServiceTime, orderType, orderSource, invoiceId, isReassign, reassignNotice, trackId, isDelete, oldState, telX, bindId, serverCarModelId
|
</sql>
|
<!--根据条件查询专车订单列表-->
|
<select id="getTransferOrderList" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page">
|
SELECT * FROM (SELECT ui.nickName as userName,ui.phone as userPhone,CONCAT(di.`name`,'-',di.phone) as driver,CONCAT(cb.`name`,'-',ci.carLicensePlate) as car,
|
sc.`name` as serverCarModel,ot.* FROM t_order_transfer as ot
|
LEFT JOIN t_user as ui on ui.id = ot.userId
|
LEFT JOIN t_driver as di on di.id = ot.driverId
|
LEFT JOIN t_car as ci on ci.id= ot.carId
|
LEFT JOIN t_car_brand as cb on cb.id = ci.carBrandId
|
LEFT JOIN t_server_carmodel as sc on sc.id = ot.serverCarModelId
|
) as o
|
<where>
|
o.isDelete = 1 and o.type = 7
|
<if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''">
|
AND (o.insertTime between CONCAT(#{beginTime},' 00:00:00') and CONCAT(#{endTime},' 23:59:59'))
|
</if>
|
<if test="orderNum != null and orderNum != ''">
|
and o.orderNum LIKE CONCAT('%',#{orderNum},'%')
|
</if>
|
<if test="orderSource != null and orderSource != ''">
|
and o.orderSource = #{orderSource}
|
</if>
|
<if test="userName != null and userName != ''">
|
and o.userName LIKE CONCAT('%',#{userName},'%')
|
</if>
|
<if test="userPhone != null and userPhone != ''">
|
and o.userPhone LIKE CONCAT('%',#{userPhone},'%')
|
</if>
|
<if test="passengers != null and passengers != ''">
|
and o.passengers LIKE CONCAT('%',#{passengers},'%')
|
</if>
|
<if test="passengersPhone != null and passengersPhone != ''">
|
and o.passengersPhone LIKE CONCAT('%',#{passengersPhone},'%')
|
</if>
|
<if test="serverCarModelId != null and serverCarModelId != ''">
|
and o.serverCarModelId = #{serverCarModelId}
|
</if>
|
<if test="driver != null and driver != ''">
|
and o.driver LIKE CONCAT('%',#{driver},'%')
|
</if>
|
<if test="state != null and state != ''">
|
and o.state = #{state}
|
</if>
|
<if test="roleType != null and roleType != '' and roleType == 2">
|
and (o.companyId = #{nowUserId} or FIND_IN_SET(o.companyId,(SELECT GROUP_CONCAT(id) as ids FROM t_company where superiorId = #{nowUserId} GROUP BY superiorId)))
|
</if>
|
<if test="roleType != null and roleType != '' and roleType == 3">
|
and o.companyId = #{nowUserId}
|
</if>
|
</where>
|
order by o.id desc
|
</select>
|
|
<!--根据专车订单ID获取专车订单详情-->
|
<select id="getTransferOrderDetailById" resultType="map">
|
SELECT
|
DATE_FORMAT(ot.insertTime,'%Y-%m-%d %H:%i') as insertTimeStr,
|
DATE_FORMAT(ot.travelTime,'%Y-%m-%d %H:%i') as travelTimeStr,
|
DATE_FORMAT(ot.boardingTime,'%Y-%m-%d %H:%i') as boardingTimeStr,
|
DATE_FORMAT(ot.getoffTime,'%Y-%m-%d %H:%i') as getoffTimeStr,
|
case when ot.orderSource = 1 then 'APP下单'
|
when ot.orderSource = 2 then '扫码下单'
|
when ot.orderSource = 3 then '小程序下单'
|
when ot.orderSource = 4 then '司机下单'
|
when ot.orderSource = 5 then '调度下单' else '' end orderSourceStr,
|
ui.nickName as userName,ui.phone as userPhone,
|
case when ot.payType = 1 then '微信'
|
when ot.payType = 2 then '支付宝'
|
when ot.payType = 3 then '余额' else '' end as payTypeStr,
|
sc.`name` as serverCarModel,
|
case when income1.type = 1 then income1.money else 0 end as platIncome,
|
case when income1.type = 2 then income1.money else 0 end as companyIncome,
|
case when income1.type = 3 then income1.money else 0 end as franchiseeIncome,
|
IFNULL(income2.money,0) as driverIncome,
|
CONCAT(di.`name`,'-',di.phone) as driver,
|
CONCAT(cb.`name`,'-',ci.carLicensePlate) as car,
|
cc.`name` as companyName,ot.*
|
FROM t_order_transfer as ot
|
LEFT JOIN t_user as ui on ui.id = ot.userId
|
LEFT JOIN t_driver as di on di.id = ot.driverId
|
LEFT JOIN t_car as ci on ci.id= ot.carId
|
LEFT JOIN t_car_brand as cb on cb.id = ci.carBrandId
|
LEFT JOIN t_company as cc on cc.id = ot.companyId
|
LEFT JOIN t_server_carmodel as sc on sc.id = ot.serverCarModelId
|
LEFT JOIN (SELECT ii.money,ii.incomeId,cc.type FROM t_income as ii
|
LEFT JOIN t_company as cc on ii.objectId = cc.id
|
where ii.userType = 1 and ii.type = 2 and ii.orderType = 7 GROUP BY ii.incomeId) as income1 on income1.incomeId = ot.id
|
LEFT JOIN (SELECT * FROM t_income where userType = 2 and type = 2 and orderType = 7 GROUP BY incomeId) as income2 on income2.incomeId = ot.id
|
where ot.id = #{orderId}
|
</select>
|
<select id="queryOrderList" resultType="map">
|
<if test="state == 1">
|
select
|
id as id,
|
(1) as type,
|
('接送机订单') as `name`,
|
DATE_FORMAT(travelTime, '%Y-%m-%d %H:%i:%s') as time,
|
startAddress as startAddress,
|
endAddress as endAddress,
|
state as state,
|
orderType as reservation,
|
driverId as driverId
|
from t_order_transfer where 1 = 1
|
<if test="null != driverId">
|
and driverId = #{driverId}
|
</if>
|
and state = 2 and (UNIX_TIMESTAMP(travelTime) - UNIX_TIMESTAMP(now())) < 1800
|
|
UNION ALL
|
|
select
|
id as id,
|
(1) as type,
|
('接送机订单') as `name`,
|
DATE_FORMAT(travelTime, '%Y-%m-%d %H:%i:%s') as time,
|
startAddress as startAddress,
|
endAddress as endAddress,
|
state as state,
|
orderType as reservation,
|
driverId as driverId
|
from t_order_transfer where 1 = 1
|
<if test="null != driverId">
|
and driverId = #{driverId}
|
</if>
|
and state in (3, 4, 5, 6, 11)
|
</if>
|
<if test="state == 2">
|
select
|
id as id,
|
(1) as type,
|
('接送机订单') as `name`,
|
DATE_FORMAT(travelTime, '%Y-%m-%d %H:%i:%s') as time,
|
startAddress as startAddress,
|
endAddress as endAddress,
|
state as state,
|
orderType as reservation,
|
driverId as driverId
|
from t_order_transfer where 1 = 1
|
<if test="null != driverId">
|
and driverId = #{driverId}
|
</if>
|
and state = 2 and (UNIX_TIMESTAMP(travelTime) - UNIX_TIMESTAMP(now())) >= 1800
|
</if>
|
</select>
|
<select id="queryPushOrder" resultType="map">
|
select
|
id as orderId,
|
state as orderState,
|
('接送机订单') as orderName,
|
DATE_FORMAT(travelTime, '%m月%d日 %H:%i') as travelTime,
|
startAddress as startAddress,
|
endAddress as endAddress,
|
startLon as startLon,
|
startLat as startLat,
|
endLon as endLon,
|
endLat as endLat,
|
isReassign as isReassign,
|
orderType as reservation,
|
orderSource as orderSource,
|
orderType as orderType,
|
isReassign as isReassign,
|
companyId as companyId
|
from t_order_transfer where id = #{orderId}
|
</select>
|
<select id="queryMyAllOrder" resultType="map">
|
select
|
id as id,
|
(7) as type,
|
('接送机订单') as `name`,
|
DATE_FORMAT(travelTime, '%Y-%m-%d %H:%i:%s') as time,
|
startAddress as startAddress,
|
endAddress as endAddress,
|
state as state,
|
orderType as reservation,
|
orderMoney as orderMoney,
|
payManner as payManner,
|
UNIX_TIMESTAMP(travelTime) as travelTime,
|
remark as remark
|
from t_order_transfer where driverId = #{driverId}
|
<if test="state == 1">
|
and state != 1
|
</if>
|
<if test="state == 2">
|
and state = 7
|
</if>
|
<if test="state == 3">
|
and state = 10
|
</if>
|
<if test="state == 4">
|
and state in (6, 7, 8, 9)
|
</if>
|
order by insertTime desc
|
</select>
|
|
<select id="queryOrderInfo" resultType="map">
|
select
|
a.id as orderId,
|
a.userId as userId,
|
a.driverId as driverId,
|
a.state as orderState,
|
DATE_FORMAT(a.travelTime, '%m月%d日 %H:%i') as travelTime_,
|
DATE_FORMAT(a.travelTime, '%Y-%m-%d %H:%i:%s') as travelTime,
|
DATE_FORMAT(a.arriveTime, '%Y-%m-%d %H:%i:%s') as arriveTime,
|
a.startAddress as startAddress,
|
a.endAddress as endAddress,
|
a.startLon as startLon,
|
a.startLat as startLat,
|
a.endLon as endLon,
|
a.endLat as endLat,
|
a.orderMoney as orderMoney,
|
a.payManner as payManner,
|
a.trackId as trackId,
|
b.nickName as nickName,
|
a.passengersPhone as phone,
|
a.orderType as reservation,
|
a.telX as telX,
|
a.bindId as bindId,
|
(
|
(select count(id) from t_order_private_car where userId = b.id and state in (8, 9)) +
|
(select count(id) from t_order_taxi where userId = b.id and state in (8, 9)) +
|
(select count(id) from t_order_cross_city where userId = b.id and state in (8, 9))
|
) as historyNum,
|
(select phone from t_phone where companyId = a.companyId and `type` = 1) as emergencyCall,
|
c.reason as cancelReason,
|
c.remark as cancelRemark,
|
c.money as cancelPayMoney,
|
if(c.userType = 1, '用户取消', '平台取消') as cancelUser,
|
(select isSpecialCar from t_sys_reformist where companyId = a.companyId) as reassign
|
from t_order_transfer a
|
left join t_user b on (a.userId = b.id)
|
left join t_order_cancel c on (a.id = c.orderId and c.orderType = 1 and c.state = 2)
|
where a.id = #{orderId}
|
</select>
|
|
</mapper>
|