<?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.smallLogistics.dao.OrderLogisticsMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics">
|
<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="cargoType" property="cargoType"/>
|
<result column="urgent" property="urgent"/>
|
<result column="cargoNumber" property="cargoNumber"/>
|
<result column="remark" property="remark"/>
|
<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="startAddress" property="startAddress"/>
|
<result column="endLon" property="endLon"/>
|
<result column="endLat" property="endLat"/>
|
<result column="endAddress" property="endAddress"/>
|
<result column="recipient" property="recipient"/>
|
<result column="recipientPhone" property="recipientPhone"/>
|
<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="travelMoney" property="travelMoney"/>
|
<result column="tipMoney" property="tipMoney"/>
|
<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="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="orderSource" property="orderSource"/>
|
<result column="invoiceId" property="invoiceId"/>
|
<result column="trackId" property="trackId"/>
|
<result column="isDelete" property="isDelete"/>
|
<result column="telX" property="telX"/>
|
<result column="bindId" property="bindId"/>
|
<result column="pickUpCode" property="pickUpCode"/>
|
<result column="isReassign" property="isReassign"/>
|
<result column="reassignNotice" property="reassignNotice"/>
|
<result column="driverPay" property="driverPay"/>
|
</resultMap>
|
|
|
|
<select id="query" resultType="OrderLogistics">
|
select
|
id as id,
|
type as type,
|
userId as userId,
|
driverId as driverId,
|
carId as carId,
|
orderNum as orderNum,
|
cargoType as cargoType,
|
cargoNumber as cargoNumber,
|
remark as remark,
|
placementLon as placementLon,
|
placementLat as placementLat,
|
placementAddress as placementAddress,
|
startLon as startLon,
|
startLat as startLat,
|
startAddress as startAddress,
|
endLon as endLon,
|
endLat as endLat,
|
endAddress as endAddress,
|
recipient as recipient,
|
recipientPhone as recipientPhone,
|
boardingLon as boardingLon,
|
boardingLat as boardingLat,
|
boardingAddress as boardingAddress,
|
boardingTime as boardingTime,
|
getoffLon as getoffLon,
|
getoffLat as getoffLat,
|
getoffAddress as getoffAddress,
|
getoffTime as getoffTime,
|
mileage as mileage,
|
payManner as payManner,
|
payType as payType,
|
orderMoney as orderMoney,
|
travelMoney as travelMoney,
|
tipMoney as tipMoney,
|
redPacketMoney as redPacketMoney,
|
couponMoney as couponMoney,
|
redPacketId as redPacketId,
|
couponId as couponId,
|
discount as discount,
|
discountMoney as discountMoney,
|
activityId as activityId,
|
companyId as companyId,
|
payMoney as payMoney,
|
state as state,
|
insertTime as insertTime,
|
travelTime as travelTime,
|
snatchOrderTime as snatchOrderTime,
|
setOutTime as setOutTime,
|
arriveTime as arriveTime,
|
startServiceTime as startServiceTime,
|
endServiceTime as endServiceTime,
|
orderSource as orderSource,
|
invoiceId as invoiceId,
|
trackId as trackId,
|
isDelete as isDelete,
|
telX as telX,
|
bindId as bindId,
|
tripId
|
from t_order_logistics where isDelete = 1
|
<if test="null != start and null != end">
|
and insertTime between #{start} and #{end}
|
</if>
|
</select>
|
|
|
|
<select id="queryLogisticsNumber" resultType="int">
|
select
|
count(id)
|
from t_order_logistics where isDelete = 1 and state in (1, 2, 3, 4, 5, 7) and userId = #{uid}
|
</select>
|
|
|
<select id="queryMyOrderList" resultType="map">
|
select
|
id as orderId,
|
DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as orderTime,
|
DATE_FORMAT(travelTime, '%Y-%m-%d %H:%i') as time,
|
endAddress as endAddress,
|
startAddress as startAddress,
|
CONCAT(if(#{language} = 1, if(cargoType = 1, '包裹', '贵重物品'), if(#{language} = 2, if(cargoType = 1, 'Package', 'valuables'), if(cargoType = 1, 'Colis', 'Objets de valeur'))), '*', cargoNumber) as cargoType,
|
driverId as driverId,
|
`type` as orderType,
|
state as state,
|
orderMoney as orderMoney,
|
payMoney as payMoney,
|
ifnull(discountMoney, 0) as discountMoney,
|
(select price from t_order_logistics_spread where orderLogisticsId = a.id) as differenceMoney,
|
cancelMidway,
|
tripId,
|
remark,
|
companyId
|
from t_order_logistics as a where userId = #{uid} and isDelete = 1 order by insertTime desc limit #{pageNum}, #{size}
|
</select>
|
|
|
<select id="queryMyTravelRecord" resultType="map">
|
select * from (
|
select
|
(payMoney * -1) as money,
|
DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as time,
|
if(type = 4, '包裹订单', '跨城小件物流') as name,
|
UNIX_TIMESTAMP(insertTime) as insertTime
|
from t_order_logistics where payMoney != 0 and userId = #{uid} and state not in (7, 10) and payType = 3
|
|
union all
|
|
select
|
(a.payMoney * -1) as money,
|
DATE_FORMAT(a.payTime, '%Y-%m-%d %H:%i') as time,
|
if(b.type = 4, '包裹订单', '跨城小件物流') as name,
|
UNIX_TIMESTAMP(a.payTime) as insertTime
|
from t_order_logistics_spread a
|
left join t_order_logistics b on (a.orderLogisticsId = b.id)
|
where a.payTime is not null and b.userId = #{uid} and a.payType = 3
|
) as aa order by aa.time desc
|
</select>
|
|
|
|
<select id="queryInvoiceOrder" resultType="map">
|
select
|
id as id,
|
DATE_FORMAT(travelTime, '%Y-%m-%d %H:%i') as time,
|
startAddress as startAddress,
|
endAddress as endAddress,
|
payMoney as payMoney,
|
if(type = 4, '包裹流订单', '跨城小件物流订单') as orderName,
|
if(invoiceId is null, 1, 2) as invoice,
|
unix_timestamp(insertTime) as insertTime,
|
`type` as orderType
|
from t_order_logistics where state in (9)
|
<if test="type == 1">
|
and invoiceId is null and invoiceId in (select id from t_invoice where state != 2)
|
</if>
|
<if test="type == 2">
|
and invoiceId in (select id from t_invoice where state = 2)
|
</if>
|
<if test="null != startTime and null != endTime">
|
and travelTime between #{startTime} and #{endTime}
|
</if>
|
<if test="null != startMoney and null != endMoney">
|
and payMoney between #{startMoney} and #{endMoney}
|
</if>
|
<if test="null !=uid">
|
and userId = #{uid}
|
</if>
|
<if test="null != orderType">
|
and `type` = #{orderType}
|
</if>
|
</select>
|
|
|
<select id="queryOrderInfo" resultType="map">
|
select
|
a.id as orderId,
|
a.state as state,
|
a.oldState as oldState,
|
DATE_FORMAT(a.insertTime, '%Y-%m-%d %H:%i:%s') as insertTime,
|
DATE_FORMAT(a.travelTime, '%m-%d %H:%i') as travelTime,
|
DATE_FORMAT(a.arriveTime, '%Y-%m-%d %H:%i:%s') as arriveTime,
|
DATE_FORMAT(a.travelTime, '%Y-%m-%d %H:%i:%s') as travelTime1,
|
a.startLon as startLon,
|
a.startLat as startLat,
|
a.startAddress as startAddress,
|
a.endLon as endLon,
|
a.endLat as endLat,
|
a.endAddress as endAddress,
|
a.driverId as driverId,
|
a.orderMoney as orderMoney,
|
a.startMileage as startMileage,
|
a.mileage as mileage,
|
a.startMoney as startMoney,
|
a.mileageKilometers as mileageKilometers,
|
a.mileageMoney as mileageMoney,
|
a.duration as duration,
|
a.durationMoney as durationMoney,
|
a.wait as wait,
|
a.waitMoney as waitMoney,
|
a.longDistance as longDistance,
|
a.longDistanceMoney as longDistanceMoney,
|
a.parkMoney as parkMoney,
|
a.roadTollMoney as roadTollMoney,
|
a.redPacketMoney as redPacketMoney,
|
a.couponMoney as couponMoney,
|
a.discount as discount,
|
a.discountMoney as discountMoney,
|
a.priceDifference,
|
a.payType,
|
a.payMoney as payMoney,
|
a.remark as remark,
|
a.companyId,
|
b.headImgUrl as driverAvatar,
|
CONCAT(b.firstName, " ", b.lastName) as driverName,
|
c.carLicensePlate as licensePlate,
|
c.carColor as carColor,
|
CONCAT(f.`name`, d.`name`) as brand,
|
((select sum(fraction) from t_order_evaluate where driverId = a.driverId) / (select count(id) from t_order_evaluate where driverId = a.driverId)) as score,
|
(
|
(select count(id) from t_order_private_car where driverId = a.driverId and state in (6, 7, 8, 9)) +
|
(select count(id) from t_order_logistics where driverId = a.driverId and state in (6, 7, 8, 9))
|
) as orderNum,
|
b.phone as driverPhone,
|
if(a.state = 10, (select money from t_order_cancel where orderId = a.id and orderType = a.type and state = 1 order by insertTime desc limit 0, 1), if(a.state = 10, (select money from t_order_cancel where orderId = a.id and orderType = a.type and state = 2 order by insertTime desc limit 0, 1), 0)) as cancelPayMoney,
|
if(a.state = 10, (select id from t_order_cancel where orderId = a.id and orderType = a.type and state = 1 order by insertTime desc limit 0, 1), 0) as cancelId,
|
g.fraction as orderScore,
|
g.content as evaluate,
|
a.telX as telX,
|
h.userType as cancelUserType,
|
h.money as cancelMoney,
|
h.reason as cancelReason,
|
h.remark as cancelRemark,
|
a.tripId,
|
a.snatchOrderTime,
|
a.startDuration
|
from t_order_logistics a
|
left join t_driver b on (a.driverId = b.id)
|
left join t_car c on (a.carId = c.id)
|
left join t_car_model d on (c.carModelId = d.id)
|
left join t_car_brand f on (d.brandId = f.id)
|
left join t_order_evaluate g on (a.id = g.orderId and g.orderType = a.type)
|
left join t_order_cancel h on (a.id = h.orderId and h.orderType = a.type and h.state = 2)
|
where a.id = #{orderId}
|
</select>
|
|
|
<select id="queryRedEnvelope" resultType="map">
|
select
|
redPacketMoney as money,
|
DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as time,
|
('包裹') as name,
|
UNIX_TIMESTAMP(insertTime) as insertTime
|
from t_order_logistics where userId = #{uid} and redPacketId is not null
|
</select>
|
|
|
<select id="queryByState" resultType="OrderLogistics">
|
select *
|
from t_order_logistics where isDelete = 1 and isFrozen = 1 and userId = #{uid}
|
<if test="null != orderType">
|
and orderType = #{orderType}
|
</if>
|
<if test="null != state">
|
and state in
|
<foreach collection="state" item="item" index="index" open="(" separator="," close=")">
|
#{item}
|
</foreach>
|
</if>
|
<if test="null != type">
|
and `type` = #{type}
|
</if>
|
</select>
|
</mapper>
|