55 lines
2.1 KiB
XML
55 lines
2.1 KiB
XML
<?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.sczx.order.mapper.OrderMainMapper">
|
|
|
|
<select id="storeOrderStatistics" resultType="com.sczx.order.dto.StoreOrderStatisticsDTO">
|
|
SELECT
|
|
store_id,
|
|
COUNT(*) as total_orders,
|
|
SUM(CASE WHEN (order_status = 'AUTO_END' OR order_status = 'MANUAL_END') AND DATE_FORMAT(end_order_time, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m') THEN 1 ELSE 0 END) as monthly_completed_orders,
|
|
SUM(CASE WHEN (order_status = 'AUTO_END' OR order_status = 'MANUAL_END') AND DATE_FORMAT(end_order_time, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m') THEN order_amount ELSE 0 END) as monthly_order_amount,
|
|
COUNT(CASE WHEN order_status = 'WAIT_RETURN' THEN 1 END) as pending_pickup_count,
|
|
COUNT(CASE WHEN order_status = 'WAIT_RETURN' THEN 1 END) as pending_return_count,
|
|
COUNT(CASE WHEN order_status = 'RENT_OVERDUE' THEN 1 END) as overdue_count
|
|
FROM zc_order_main
|
|
WHERE store_id = #{storeId}
|
|
GROUP BY store_id
|
|
</select>
|
|
|
|
<select id="pageQueryOrder" resultType="com.sczx.order.dto.OrderSimpleDTO">
|
|
|
|
SELECT
|
|
o.order_id,
|
|
o.order_no,
|
|
o.order_status,
|
|
o.first_order_time,
|
|
o.end_rent_time,
|
|
o.car_model_id,
|
|
o.vehicle_id,
|
|
c.license_plate,
|
|
c.vin,
|
|
m.model_name,
|
|
m.brand_name,
|
|
m.image
|
|
from
|
|
zc_order_main o
|
|
join zc_car_model m on o.car_model_id = m.id
|
|
LEFT JOIN zc_car c on o.vehicle_id = c.id
|
|
|
|
<where>
|
|
<if test="customerId != null">
|
|
and o.customer_id = #{customerId}
|
|
</if>
|
|
<if test="storeId != null">
|
|
and o.store_id = #{storeId}
|
|
</if>
|
|
<if test="orderStatus != null and orderStatus!= ''">
|
|
and o.order_status = #{orderStatus}
|
|
</if>
|
|
</where>
|
|
order by o.update_time desc
|
|
|
|
</select>
|
|
|
|
</mapper>
|