主页统计

This commit is contained in:
19173159168
2025-09-17 00:05:46 +08:00
parent 682b8c45fe
commit d343b4b39e
12 changed files with 175 additions and 83 deletions

View File

@ -290,6 +290,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
WHERE a.order_status in ('AUTO_END','MANUAL_END')
AND a.del_flag = '0'
AND b.del_flag = '0'
<if test="operatorId != null">
and b.operating_company_id = #{operatorId}
</if>
GROUP BY a.store_id
ORDER BY orderAmount DESC
LIMIT #{limit}
@ -300,65 +303,92 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="statisticsOrderByHour" resultType="com.ruoyi.orders.dto.StatisticsHomeOrder">
SELECT
HOUR(create_time) as keyType,
HOUR(a.create_time) as keyType,
count(1) as totalCount,
sum(amount) as totalAmount,
SUM(CASE WHEN suborder_type = 'RENTCAR' THEN 1 ELSE 0 END) as rentcarCount,
SUM(CASE WHEN suborder_type = 'RENTCAR' THEN amount ELSE 0 END) as rentcarAmount,
SUM(CASE WHEN suborder_type = 'RENTBATTEY' THEN 1 ELSE 0 END) as rentbatteryCount,
SUM(CASE WHEN suborder_type = 'RENTBATTEY' THEN amount ELSE 0 END) as rentbatteryAmount
FROM zc_order_sub
WHERE DATE(create_time) = CURDATE()
AND suborder_type IN ('RENTCAR', 'RENTBATTEY')
GROUP BY HOUR(create_time)
sum(a.amount) as totalAmount,
SUM(CASE WHEN a.suborder_type = 'RENTCAR' THEN 1 ELSE 0 END) as rentcarCount,
SUM(CASE WHEN a.suborder_type = 'RENTCAR' THEN a.amount ELSE 0 END) as rentcarAmount,
SUM(CASE WHEN a.suborder_type = 'RENTBATTEY' THEN 1 ELSE 0 END) as rentbatteryCount,
SUM(CASE WHEN a.suborder_type = 'RENTBATTEY' THEN a.amount ELSE 0 END) as rentbatteryAmount
FROM zc_order_sub a left join zc_order_main m on a.order_id = m.order_id
WHERE DATE(a.create_time) = CURDATE()
AND a.suborder_type IN ('RENTCAR', 'RENTBATTEY') and a.pay_status = 'SUCCESS'
<if test="operatorId != null">
and m.operator_id = #{operatorId}
</if>
GROUP BY HOUR(a.create_time)
ORDER BY keyType;
</select>
<select id="statisticsOrderByWeek" resultType="com.ruoyi.orders.dto.StatisticsHomeOrder">
SELECT
DAYNAME(create_time) as name,
DAYOFWEEK(create_time) as keyType,
DAYNAME(a.create_time) as name,
DAYOFWEEK(a.create_time) as keyType,
count(1) as totalCount,
sum(amount) as totalAmount,
SUM(CASE WHEN suborder_type = 'RENTCAR' THEN 1 ELSE 0 END) as rentcarCount,
SUM(CASE WHEN suborder_type = 'RENTCAR' THEN amount ELSE 0 END) as rentcarAmount,
SUM(CASE WHEN suborder_type = 'RENTBATTEY' THEN 1 ELSE 0 END) as rentbatteryCount,
SUM(CASE WHEN suborder_type = 'RENTBATTEY' THEN amount ELSE 0 END) as rentbatteryAmount
FROM zc_order_sub
WHERE YEARWEEK(create_time, 1) = YEARWEEK(CURDATE(), 1)
AND suborder_type IN ('RENTCAR', 'RENTBATTEY')
GROUP BY DAYOFWEEK(create_time), DAYNAME(create_time)
sum(a.amount) as totalAmount,
SUM(CASE WHEN a.suborder_type = 'RENTCAR' THEN 1 ELSE 0 END) as rentcarCount,
SUM(CASE WHEN a.suborder_type = 'RENTCAR' THEN a.amount ELSE 0 END) as rentcarAmount,
SUM(CASE WHEN a.suborder_type = 'RENTBATTEY' THEN 1 ELSE 0 END) as rentbatteryCount,
SUM(CASE WHEN a.suborder_type = 'RENTBATTEY' THEN a.amount ELSE 0 END) as rentbatteryAmount
FROM zc_order_sub a left join zc_order_main m on a.order_id = m.order_id
WHERE YEARWEEK(a.create_time, 1) = YEARWEEK(CURDATE(), 1)
AND a.suborder_type IN ('RENTCAR', 'RENTBATTEY') and a.pay_status = 'SUCCESS'
<if test="operatorId != null">
and m.operator_id = #{operatorId}
</if>
GROUP BY DAYOFWEEK(a.create_time), DAYNAME(a.create_time)
ORDER BY keyType;
</select>
<select id="statisticsOrderByMonth" resultType="com.ruoyi.orders.dto.StatisticsHomeOrder">
SELECT
DAY(create_time) as keyType,
DAY(a.create_time) as keyType,
count(1) as totalCount,
sum(amount) as totalAmount,
SUM(CASE WHEN suborder_type = 'RENTCAR' THEN 1 ELSE 0 END) as rentcarCount,
SUM(CASE WHEN suborder_type = 'RENTCAR' THEN amount ELSE 0 END) as rentcarAmount,
SUM(CASE WHEN suborder_type = 'RENTBATTEY' THEN 1 ELSE 0 END) as rentbatteryCount,
SUM(CASE WHEN suborder_type = 'RENTBATTEY' THEN amount ELSE 0 END) as rentbatteryAmount
FROM zc_order_sub
WHERE MONTH(create_time) = MONTH(CURDATE())
AND YEAR(create_time) = YEAR(CURDATE())
AND suborder_type IN ('RENTCAR', 'RENTBATTEY')
GROUP BY DAY(create_time)
ORDER BY keyType;
SUM(CASE WHEN a.suborder_type = 'RENTCAR' THEN 1 ELSE 0 END) as rentcarCount,
SUM(CASE WHEN a.suborder_type = 'RENTCAR' THEN a.amount ELSE 0 END) as rentcarAmount,
SUM(CASE WHEN a.suborder_type = 'RENTBATTEY' THEN 1 ELSE 0 END) as rentbatteryCount,
SUM(CASE WHEN a.suborder_type = 'RENTBATTEY' THEN a.amount ELSE 0 END) as rentbatteryAmount
FROM zc_order_sub a left join zc_order_main m on a.order_id = m.order_id
WHERE MONTH(a.create_time) = MONTH(CURDATE())
AND YEAR(a.create_time) = YEAR(CURDATE())
AND a.suborder_type IN ('RENTCAR', 'RENTBATTEY') and a.pay_status = 'SUCCESS'
<if test="operatorId != null">
and m.operator_id = #{operatorId}
</if>
GROUP BY DAY(a.create_time)
ORDER BY keyType;
</select>
<select id="statisticsOrderByYear" resultType="com.ruoyi.orders.dto.StatisticsHomeOrder">
SELECT
MONTH(create_time) as keyType,
MONTH(a.create_time) as keyType,
count(1) as totalCount,
sum(amount) as totalAmount,
SUM(CASE WHEN suborder_type = 'RENTCAR' THEN 1 ELSE 0 END) as rentcarCount,
SUM(CASE WHEN suborder_type = 'RENTCAR' THEN amount ELSE 0 END) as rentcarAmount,
SUM(CASE WHEN suborder_type = 'RENTBATTEY' THEN 1 ELSE 0 END) as rentbatteryCount,
SUM(CASE WHEN suborder_type = 'RENTBATTEY' THEN amount ELSE 0 END) as rentbatteryAmount
FROM zc_order_sub
WHERE YEAR(create_time) = YEAR(CURDATE())
AND suborder_type IN ('RENTCAR', 'RENTBATTEY')
GROUP BY MONTH(create_time), MONTHNAME(create_time)
sum(a.amount) as totalAmount,
SUM(CASE WHEN a.suborder_type = 'RENTCAR' THEN 1 ELSE 0 END) as rentcarCount,
SUM(CASE WHEN a.suborder_type = 'RENTCAR' THEN a.amount ELSE 0 END) as rentcarAmount,
SUM(CASE WHEN a.suborder_type = 'RENTBATTEY' THEN 1 ELSE 0 END) as rentbatteryCount,
SUM(CASE WHEN a.suborder_type = 'RENTBATTEY' THEN a.amount ELSE 0 END) as rentbatteryAmount
FROM zc_order_sub a left join zc_order_main m on a.order_id = m.order_id
WHERE YEAR(a.create_time) = YEAR(CURDATE())
AND a.suborder_type IN ('RENTCAR', 'RENTBATTEY') and a.pay_status = 'SUCCESS'
<if test="operatorId != null">
and m.operator_id = #{operatorId}
</if>
GROUP BY MONTH(a.create_time), MONTHNAME(a.create_time)
ORDER BY keyType;
</select>
<select id="statisticsOrderSum" resultType="com.ruoyi.orders.dto.StatisticsHomeOrder">
SELECT
count(1) as totalCount,
sum(a.amount) as totalAmount,
SUM(CASE WHEN a.suborder_type = 'RENTCAR' THEN 1 ELSE 0 END) as rentcarCount,
SUM(CASE WHEN a.suborder_type = 'RENTCAR' THEN a.amount ELSE 0 END) as rentcarAmount,
SUM(CASE WHEN a.suborder_type = 'RENTBATTEY' THEN 1 ELSE 0 END) as rentbatteryCount,
SUM(CASE WHEN a.suborder_type = 'RENTBATTEY' THEN a.amount ELSE 0 END) as rentbatteryAmount
FROM zc_order_sub a left join zc_order_main m on a.order_id = m.order_id
WHERE a.suborder_type IN ('RENTCAR', 'RENTBATTEY') and a.pay_status = 'SUCCESS'
<if test="operatorId != null">
and m.operator_id = #{operatorId}
</if>
</select>
</mapper>