peixue-dev/Archive/peidu-temp-files/sql/🔍验证日历统计数据-2026-01-24.sql

91 lines
3.0 KiB
MySQL
Raw Normal View History

2026-02-28 17:26:03 +08:00
-- ========================================
-- 验证日历统计数据修复
-- 创建时间: 2026-01-24
-- 目的: 验证日历页面统计数据与"我的预约"页面一致
-- ========================================
-- 1. 查询用户ID=1的所有订单统计与"我的预约"页面一致)
SELECT
'所有订单统计' AS ,
COUNT(*) AS ,
SUM(CASE WHEN status IN (1, 2) THEN 1 ELSE 0 END) AS ,
SUM(CASE WHEN status = 3 THEN 1 ELSE 0 END) AS ,
SUM(CASE WHEN status = 4 THEN 1 ELSE 0 END) AS
FROM `order`
WHERE user_id = 1
AND deleted = 0;
-- 2. 查询用户ID=1的当月订单统计2026年1月
SELECT
'当月订单统计' AS ,
COUNT(*) AS ,
SUM(CASE WHEN status IN (1, 2) THEN 1 ELSE 0 END) AS ,
SUM(CASE WHEN status = 3 THEN 1 ELSE 0 END) AS ,
SUM(CASE WHEN status = 4 THEN 1 ELSE 0 END) AS
FROM `order`
WHERE user_id = 1
AND deleted = 0
AND service_date >= '2026-01-01'
AND service_date <= '2026-01-31';
-- 3. 按状态分组查看所有订单
SELECT
status AS ,
CASE
WHEN status = 0 THEN '待支付'
WHEN status = 1 THEN '待接单'
WHEN status = 2 THEN '待服务'
WHEN status = 3 THEN '服务中'
WHEN status = 4 THEN '已完成'
WHEN status = -1 THEN '已取消'
ELSE '未知'
END AS ,
COUNT(*) AS
FROM `order`
WHERE user_id = 1
AND deleted = 0
GROUP BY status
ORDER BY status;
-- 4. 查看所有订单的详细信息
SELECT
id AS ID,
order_no AS ,
service_date AS ,
time_slot AS ,
service_name AS ,
status AS ,
CASE
WHEN status = 0 THEN '待支付'
WHEN status = 1 THEN '待接单'
WHEN status = 2 THEN '待服务'
WHEN status = 3 THEN '服务中'
WHEN status = 4 THEN '已完成'
WHEN status = -1 THEN '已取消'
ELSE '未知'
END AS ,
created_time AS
FROM `order`
WHERE user_id = 1
AND deleted = 0
ORDER BY service_date DESC, time_slot;
-- ========================================
-- 预期结果说明
-- ========================================
-- 修复前:
-- - 日历页面只显示当月订单统计例如全部6个
-- - "我的预约"页面显示所有订单统计例如全部62个
-- - 两个页面数据不一致
--
-- 修复后:
-- - 日历页面显示所有订单统计例如全部62个
-- - "我的预约"页面显示所有订单统计例如全部62个
-- - 两个页面数据完全一致
--
-- 注意:
-- - 日历的月视图仍然只显示当月的订单卡片
-- - 但统计数字(全部、待服务、已完成)显示的是所有订单的统计
-- - 这样用户可以看到总体情况,同时在日历上查看具体月份的安排
-- ========================================