Files
sczx_order/src/main/resources/mapper/OrderMainMapper.xml

48 lines
1.9 KiB
XML
Raw Normal View History

2025-07-25 17:27:06 +08:00
<?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 (status = 'AUTO_END' OR 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 (status = 'AUTO_END' OR 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 status = 'WAIT_RETURN' THEN 1 END) as pending_pickup_count,
COUNT(CASE WHEN status = 'WAIT_RETURN' THEN 1 END) as pending_return_count,
COUNT(CASE WHEN 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,
2025-07-30 23:08:34 +08:00
o.order_status,
o.first_order_time,
o.end_rent_time,
o.car_model_id,
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
<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!= ''">
2025-07-30 23:08:34 +08:00
and o.order_status = #{orderStatus}
</if>
</where>
order by o.update_time desc
</select>
2025-07-25 17:27:06 +08:00
</mapper>