peixue-dev/Archive/[一次性]验证待派单查询结果.sql

114 lines
2.7 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 验证待派单查询结果
-- 1. 按修复后的条件查询待派单订单(这是后端使用的条件)
SELECT
id,
order_no,
user_id,
teacher_id,
status,
pay_status,
service_date,
create_time,
update_time
FROM `order`
WHERE pay_status = 1
AND status = 0
AND teacher_id IS NULL
AND deleted = 0
ORDER BY create_time DESC;
-- 2. 统计待派单订单数量
SELECT
COUNT(*) as pending_count,
'这是后端返回的待派单数量' as note
FROM `order`
WHERE pay_status = 1
AND status = 0
AND teacher_id IS NULL
AND deleted = 0;
-- 3. 检查订单306是否在待派单列表中
SELECT
CASE
WHEN COUNT(*) > 0 THEN '❌ 订单306仍在待派单列表中异常'
ELSE '✅ 订单306不在待派单列表中正常'
END as check_result
FROM `order`
WHERE id = 306
AND pay_status = 1
AND status = 0
AND teacher_id IS NULL
AND deleted = 0;
-- 4. 查看订单306的当前状态
SELECT
id,
order_no,
teacher_id,
status,
pay_status,
update_time,
CASE
WHEN teacher_id IS NOT NULL AND status = 1 THEN '✅ 已派单(正常)'
WHEN teacher_id IS NULL AND status = 0 THEN '⚠️ 待派单(未派单)'
ELSE '❌ 状态异常'
END as current_status
FROM `order`
WHERE id = 306;
-- 5. 查看所有已派单但status不是1的订单可能的异常数据
SELECT
id,
order_no,
teacher_id,
status,
pay_status,
update_time,
'已派单但status不是1' as issue
FROM `order`
WHERE teacher_id IS NOT NULL
AND status != 1
AND pay_status = 1
AND deleted = 0
ORDER BY update_time DESC
LIMIT 20;
-- 6. 查看所有未派单但status不是0的订单可能的异常数据
SELECT
id,
order_no,
teacher_id,
status,
pay_status,
update_time,
'未派单但status不是0' as issue
FROM `order`
WHERE teacher_id IS NULL
AND status != 0
AND status NOT IN (4, 5) -- 排除已完成和已取消
AND pay_status = 1
AND deleted = 0
ORDER BY update_time DESC
LIMIT 20;
-- 7. 统计各状态的订单数量
SELECT
status,
COUNT(*) as count,
SUM(CASE WHEN teacher_id IS NULL THEN 1 ELSE 0 END) as no_teacher_count,
SUM(CASE WHEN teacher_id IS NOT NULL THEN 1 ELSE 0 END) as has_teacher_count,
CASE
WHEN status = 0 THEN '待派单'
WHEN status = 1 THEN '已派单/待接单'
WHEN status = 2 THEN '待服务'
WHEN status = 3 THEN '服务中'
WHEN status = 4 THEN '已完成'
WHEN status = 5 THEN '已取消'
ELSE '未知状态'
END as status_name
FROM `order`
WHERE pay_status = 1 AND deleted = 0
GROUP BY status
ORDER BY status;