xuhy
2025-08-01 98a7cb217d580d8c2642570dc8298e9226551928
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderCrossCityMapper.xml
@@ -237,4 +237,75 @@
            </foreach>
        </if>
    </select>
    <select id="paymentOrderStatisticsList" resultType="map">
        select
        a.id,
        b.code as paymentCode,
        a.orderNum,
        c.phone as userPhone,
        b.amount,
        d.phone as driverPhone,
        e.name as company,
        f.money as income,
        b.orderType as orderType,
        DATE_FORMAT(a.insertTime, '%Y-%m-%d %H:%i:%s') as insertTime,
        DATE_FORMAT(b.insertTime, '%Y-%m-%d %H:%i:%s') as paymentTime
        from t_order_cross_city a
        left join t_payment_record b on (a.id = b.orderId and b.orderType = 3 and b.state = 2)
        left join t_user c on (a.userId = c.id)
        left join t_driver d on (a.driverId = d.id)
        left join t_company e on (d.companyId = e.id)
        left join t_pub_transaction_details f on (a.id = f.orderId and f.userType = 2 and f.state = 2)
        where a.state in (8, 9) and a.isDelete = 1 and a.payManner = 1
        <if test="null != paymentCode and '' != paymentCode">
            and b.code like CONCAT('%', #{paymentCode}, '%')
        </if>
        <if test="null != orderCode and '' != orderCode">
            and a.orderNum like CONCAT('%', #{orderCode}, '%')
        </if>
        <if test="null != orderType">
            and b.orderType = #{orderType}
        </if>
        <if test="null != userPhone and '' != userPhone">
            and c.phone like CONCAT('%', #{userPhone}, '%')
        </if>
        <if test="null != driverPhone and '' != driverPhone">
            and d.phone like CONCAT('%', #{driverPhone}, '%')
        </if>
        <if test="null != createTimeStart and '' != createTimeStart and null != createTimeEnd and '' != createTimeEnd">
            and a.insertTime between #{createTimeStart} and #{createTimeEnd}
        </if>
        <if test="null != paymentTimeStart and '' != paymentTimeStart and null != paymentTimeEnd and '' != paymentTimeEnd">
            and b.insertTime between #{paymentTimeStart} and #{paymentTimeEnd}
        </if>
        order by a.insertTime desc
    </select>
    <select id="getTaxiOrderDetailById" 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 '调度下单'
                 when ot.orderSource = 6 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,
            CONCAT(di.`name`,'-',di.phone) as driver,
            CONCAT(cb.`name`,'-',ci.carLicensePlate) as car,
            cc.`name` as companyName,ot.*
        FROM t_order_cross_city 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
        where ot.id = #{orderId}
    </select>
</mapper>