164 lines
5.0 KiB
SQL
164 lines
5.0 KiB
SQL
-- 检查订单状态分布情况
|
||
|
||
-- 1. 查看所有订单的状态分布(包括已删除的)
|
||
SELECT
|
||
status,
|
||
COUNT(*) as 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 '已取消'
|
||
WHEN status IS NULL THEN 'NULL状态'
|
||
ELSE CONCAT('未知状态(', status, ')')
|
||
END as status_name
|
||
FROM `order`
|
||
GROUP BY status
|
||
ORDER BY status;
|
||
|
||
-- 2. 查看未删除订单的状态分布
|
||
SELECT
|
||
status,
|
||
COUNT(*) as 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 '已取消'
|
||
WHEN status IS NULL THEN 'NULL状态'
|
||
ELSE CONCAT('未知状态(', status, ')')
|
||
END as status_name
|
||
FROM `order`
|
||
WHERE deleted = 0
|
||
GROUP BY status
|
||
ORDER BY status;
|
||
|
||
-- 3. 查看已支付订单的状态分布
|
||
SELECT
|
||
status,
|
||
COUNT(*) as 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 '已取消'
|
||
WHEN status IS NULL THEN 'NULL状态'
|
||
ELSE CONCAT('未知状态(', status, ')')
|
||
END as status_name
|
||
FROM `order`
|
||
WHERE pay_status = 1 AND deleted = 0
|
||
GROUP BY status
|
||
ORDER BY status;
|
||
|
||
-- 4. 查看已支付且未分配陪伴员的订单状态分布(这些应该是待派单)
|
||
SELECT
|
||
status,
|
||
COUNT(*) as count,
|
||
CASE
|
||
WHEN status = 0 THEN '✅ 待派单(正常)'
|
||
WHEN status = 1 THEN '❌ 已派单(异常:有teacher_id应该不为NULL)'
|
||
WHEN status = 2 THEN '❌ 待服务(异常:未派单不应该是待服务)'
|
||
WHEN status = 3 THEN '❌ 服务中(异常:未派单不应该是服务中)'
|
||
WHEN status = 4 THEN '❌ 已完成(异常:未派单不应该是已完成)'
|
||
WHEN status = 5 THEN '⚠️ 已取消(可能正常)'
|
||
WHEN status IS NULL THEN '❌ NULL状态(异常)'
|
||
ELSE CONCAT('❌ 未知状态(', status, ')(异常)')
|
||
END as status_check
|
||
FROM `order`
|
||
WHERE pay_status = 1
|
||
AND teacher_id IS NULL
|
||
AND deleted = 0
|
||
GROUP BY status
|
||
ORDER BY status;
|
||
|
||
-- 5. 查看已支付且已分配陪伴员的订单状态分布(这些应该是已派单或更后面的状态)
|
||
SELECT
|
||
status,
|
||
COUNT(*) as count,
|
||
CASE
|
||
WHEN status = 0 THEN '❌ 待派单(异常:已有teacher_id不应该是待派单)'
|
||
WHEN status = 1 THEN '✅ 已派单/待接单(正常)'
|
||
WHEN status = 2 THEN '✅ 待服务(正常)'
|
||
WHEN status = 3 THEN '✅ 服务中(正常)'
|
||
WHEN status = 4 THEN '✅ 已完成(正常)'
|
||
WHEN status = 5 THEN '⚠️ 已取消(可能正常)'
|
||
WHEN status IS NULL THEN '❌ NULL状态(异常)'
|
||
ELSE CONCAT('❌ 未知状态(', status, ')(异常)')
|
||
END as status_check
|
||
FROM `order`
|
||
WHERE pay_status = 1
|
||
AND teacher_id IS NOT NULL
|
||
AND deleted = 0
|
||
GROUP BY status
|
||
ORDER BY status;
|
||
|
||
-- 6. 查看支付状态和订单状态的组合分布
|
||
SELECT
|
||
pay_status,
|
||
CASE
|
||
WHEN pay_status = 0 THEN '未支付'
|
||
WHEN pay_status = 1 THEN '已支付'
|
||
WHEN pay_status = 2 THEN '已退款'
|
||
ELSE CONCAT('未知(', pay_status, ')')
|
||
END as pay_status_name,
|
||
status,
|
||
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 '已取消'
|
||
WHEN status IS NULL THEN 'NULL'
|
||
ELSE CONCAT('未知(', status, ')')
|
||
END as status_name,
|
||
COUNT(*) as count
|
||
FROM `order`
|
||
WHERE deleted = 0
|
||
GROUP BY pay_status, status
|
||
ORDER BY pay_status, status;
|
||
|
||
-- 7. 列出所有可能存在的状态值(包括异常状态)
|
||
SELECT DISTINCT
|
||
status,
|
||
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 '已取消'
|
||
WHEN status IS NULL THEN 'NULL状态'
|
||
ELSE CONCAT('未知状态(', status, ')')
|
||
END as status_name
|
||
FROM `order`
|
||
ORDER BY status;
|
||
|
||
-- 8. 查看状态为NULL的订单详情(如果有的话)
|
||
SELECT
|
||
id,
|
||
order_no,
|
||
status,
|
||
pay_status,
|
||
teacher_id,
|
||
create_time,
|
||
update_time
|
||
FROM `order`
|
||
WHERE status IS NULL
|
||
LIMIT 20;
|
||
|
||
-- 9. 统计:按照后端逻辑应该显示的待派单数量
|
||
SELECT
|
||
'后端统计逻辑' as query_type,
|
||
COUNT(*) as pending_count
|
||
FROM `order`
|
||
WHERE pay_status = 1
|
||
AND teacher_id IS NULL
|
||
AND deleted = 0;
|