yanghb
2023-04-21 59f70d9b19408d36f40ee0f418bf98232c40fb33
DispatchTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OrderTaxiMapper.xml
@@ -71,38 +71,128 @@
    <select id="queryOrderList" resultType="map">
    <select id="query" resultType="OrderTaxi">
        select
        a.id as id,
        DATE_FORMAT(a.insertTime, '%Y年%m月%d日%H:%i') as orderTime,
        CONCAT(b.nickName, '-', b.phone) as `user`,
        a.startAddress as startAddress,
        a.endAddress as endAddress,
        a.state as state
        from t_order_taxi a
        left join t_user b on (a.userId = b.id)
        left join t_driver c on (a.driverId = c.id)
        left join t_car d on (a.carId = d.id)
        where a.isDelete = 1 and a.companyId = #{companyId}
        <if test="null != search and '' != search">
            and (a.passengersPhone = #{search} or c.name like CONCAT('%', #{search}, '%') or c.phone like CONCAT('%', #{search}, '%') or d.carLicensePlate like CONCAT('%', #{search}, '%'))
        id as id,
        userId as userId,
        driverId as driverId,
        carId as carId,
        orderNum as orderNum,
        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,
        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,
        parkMoney as parkMoney,
        roadTollMoney as roadTollMoney,
        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,
        substitute as substitute,
        passengers as passengers,
        passengersPhone as passengersPhone,
        state as state,
        insertTime as insertTime,
        travelTime as travelTime,
        snatchOrderTime as snatchOrderTime,
        setOutTime as setOutTime,
        arriveTime as arriveTime,
        startServiceTime as startServiceTime,
        endServiceTime as endServiceTime,
        orderType as orderType,
        orderSource as orderSource,
        invoiceId as invoiceId
        from t_order_taxi where insertTime between #{start} and #{end}
    </select>
    <select id="queryMyOrderList" resultType="map">
        select
        id as orderId,
        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as orderTime,
        DATE_FORMAT(travelTime, '%m月%d日 %H:%i') as time,
        startAddress as startAddress,
        endAddress as endAddress,
        driverId as driverId,
        (2) as orderType,
        state as state,
        oldState as oldState
        from t_order_taxi where userId = #{uid} order by insertTime desc limit #{pageNum}, #{size}
    </select>
    <select id="queryMyTravelRecord" resultType="map">
        select
        (payMoney * -1) as money,
        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as time,
        ('出租车订单') as name,
        UNIX_TIMESTAMP(insertTime) as insertTime
        from t_order_taxi where payMoney != 0 and userId = #{uid} and state in (8, 9, 10, 11, 12)
    </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_taxi where userId = #{uid} and state in (8, 9) and redPacketId is not null
    </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,
        ('出租车订单') as orderName,
        if(invoiceId is null, 1, 2) as invoice,
        unix_timestamp(insertTime) as insertTime,
        (2) as orderType
        from t_order_taxi where state in (8, 9)
        <if test="type == 1">
            and invoiceId is null and invoiceId in (select id from t_invoice where state != 2)
        </if>
        <if test="null != orderSource">
            and a.orderSource in
            <foreach collection="orderSource" item="item" index="index" open="(" separator="," close=")">
                #{item}
            </foreach>
        <if test="type == 2">
            and invoiceId in (select id from t_invoice where state = 2)
        </if>
        <if test="null != state">
            and a.state in
            <foreach collection="state" item="item" index="index" open="(" separator="," close=")">
                #{item}
            </foreach>
        <if test="null != startTime and null != endTime">
            and travelTime between #{startTime} and #{endTime}
        </if>
        order by a.insertTime desc
        <if test="null != pageNum and null != size">
            limit #{pageNum}, #{size}
        <if test="null != startMoney and null != endMoney">
            and payMoney between #{startMoney} and #{endMoney}
        </if>
        <if test="null !=uid">
            and userId = #{uid}
        </if>
    </select>
@@ -110,25 +200,59 @@
    <select id="queryOrderInfo" resultType="map">
        select
        a.id as id,
        DATE_FORMAT(a.insertTime, '%Y/%m/%d/%H:%i') as orderTime,
        a.orderNum as orderNumber,
        DATE_FORMAT(a.travelTime, '%Y/%m/%d/%H:%i') as travelTime,
        CONCAT(b.nickName, '-', b.phone) as `user`,
        a.id as orderId,
        a.type as type,
        a.state as state,
        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,
        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.orderMoney as orderMoney,
        CONCAT(d.`name`, '-',d.phone) as driver,
        e.carLicensePlate as car,
        CONCAT(g.`name`, '-',g.phone) as originalDriver,
        a.state as state
      a.driverId as driverId,
      a.orderMoney as orderMoney,
      a.travelMoney as travelMoney,
      a.parkMoney as parkMoney,
      a.roadTollMoney as roadTollMoney,
      a.redPacketMoney as redPacketMoney,
      a.couponMoney as couponMoney,
      a.discountMoney as discountMoney,
      a.tipMoney as tipMoney,
      a.payMoney as payMoney,
      a.reassignNotice as reassignNotice,
      a.oldState as oldState,
      b.headImgUrl as driverAvatar,
      b.`name` 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 (7, 8, 9)) +
      (select count(id) from t_order_taxi where driverId = a.driverId and state in (7, 8, 9)) +
      (select count(id) from t_order_cross_city where driverId = a.driverId and state in (6, 8, 9))
      ) as orderNum,
      b.phone as driverPhone,
      if(a.state = 12, (select money from t_order_cancel where orderId = a.id and orderType = 2 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 = 2 and state = 2 order by insertTime desc limit 0, 1), 0)) as cancelPayMoney,
      if(a.state = 12, (select id from t_order_cancel where orderId = a.id and orderType = 2 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
        from t_order_taxi a
        left join t_user b on (a.userId = b.id)
        left join t_driver d on (a.driverId = d.id)
        left join t_car e on (a.carId = e.id)
        left join (select * from t_reassign where orderType = 2 and orderId = #{orderId} order by insertTime desc limit 0, 1) as f on (a.id = f.orderId and f.orderType = 2)
        left join t_driver g on (f.originalDriverId = g.id)
        where a.id = #{orderId}
      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 = 2)
      left join t_order_cancel h on (a.id = h.orderId and h.orderType = 2 and h.state = 2)
      where a.id = #{orderId}
    </select>
@@ -136,6 +260,73 @@
    <select id="queryByState" resultType="OrderTaxi">
        select
        id as id,
        userId as userId,
        driverId as driverId,
        carId as carId,
        orderNum as orderNum,
        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,
        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,
        parkMoney as parkMoney,
        roadTollMoney as roadTollMoney,
        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,
        substitute as substitute,
        passengers as passengers,
        passengersPhone as passengersPhone,
        state as state,
        insertTime as insertTime,
        travelTime as travelTime,
        snatchOrderTime as snatchOrderTime,
        setOutTime as setOutTime,
        arriveTime as arriveTime,
        startServiceTime as startServiceTime,
        endServiceTime as endServiceTime,
        orderType as orderType,
        orderSource as orderSource,
        invoiceId as invoiceId
        from t_order_taxi where userId = #{uid}
        <if test="null != state">
            and state in
            <foreach collection="state" item="item" index="index" open="(" separator="," close=")">
                #{item}
            </foreach>
        </if>
    </select>
    <select id="queryByState_" resultType="OrderTaxi">
        select
        id as id,
        `type` as `type`,
        userId as userId,
        driverId as driverId,