peixue-dev/Archive/peidu-temp-files/sql/🔍检查工单详情数据-2026-01-24.sql

116 lines
2.5 KiB
MySQL
Raw Normal View History

2026-02-28 17:26:03 +08:00
-- 检查工单详情数据完整性
-- 2026-01-24
-- 1. 检查订单表数据
SELECT
o.id AS order_id,
o.order_no,
o.status,
o.user_id,
o.student_id,
o.teacher_id,
o.service_name,
o.service_date,
o.time_slot
FROM `order` o
WHERE o.deleted = 0
ORDER BY o.create_time DESC
LIMIT 10;
-- 2. 检查订单关联的用户(家长)信息
SELECT
o.id AS order_id,
o.order_no,
u.id AS user_id,
u.real_name AS parent_name,
u.nickname,
u.phone AS parent_phone
FROM `order` o
LEFT JOIN `user` u ON o.user_id = u.id
WHERE o.deleted = 0
ORDER BY o.create_time DESC
LIMIT 10;
-- 3. 检查订单关联的学生信息
SELECT
o.id AS order_id,
o.order_no,
s.id AS student_id,
s.name AS student_name,
s.grade AS student_grade,
s.parent_phone AS student_phone,
s.age AS student_age
FROM `order` o
LEFT JOIN student s ON o.student_id = s.id
WHERE o.deleted = 0
ORDER BY o.create_time DESC
LIMIT 10;
-- 4. 检查订单关联的陪伴员信息
SELECT
o.id AS order_id,
o.order_no,
t.id AS teacher_id,
t.teacher_name,
t.real_name,
t.phone AS teacher_phone,
t.level AS teacher_level
FROM `order` o
LEFT JOIN teacher t ON o.teacher_id = t.id
WHERE o.deleted = 0 AND o.teacher_id IS NOT NULL
ORDER BY o.create_time DESC
LIMIT 10;
-- 5. 完整的工单详情数据(管理师端需要的所有信息)
SELECT
o.id AS order_id,
o.order_no,
o.status,
CASE o.status
WHEN 0 THEN '待支付'
WHEN 1 THEN '待接单'
WHEN 2 THEN '待服务'
WHEN 3 THEN '服务中'
WHEN 4 THEN '已完成'
WHEN -1 THEN '已取消'
WHEN -2 THEN '已退款'
ELSE '未知'
END AS status_text,
-- 家长信息
u.real_name AS parent_name,
u.phone AS parent_phone,
-- 学生信息
s.name AS student_name,
s.grade AS student_grade,
s.age AS student_age,
-- 陪伴员信息
COALESCE(t.teacher_name, t.real_name, t.name) AS teacher_name,
t.phone AS teacher_phone,
-- 服务信息
o.service_name,
o.service_date,
o.time_slot,
o.service_address,
-- 费用信息
o.price,
o.pay_amount,
-- 时间信息
o.create_time,
o.pay_time,
o.service_start_time,
o.complete_time
FROM `order` o
LEFT JOIN `user` u ON o.user_id = u.id
LEFT JOIN student s ON o.student_id = s.id
LEFT JOIN teacher t ON o.teacher_id = t.id
WHERE o.deleted = 0
ORDER BY o.create_time DESC
LIMIT 10;