5.7 KiB
✅ 家长预约订单管理师看不到问题 - 修复完成
修复时间: 2026-01-25
问题类型: 业务流程逻辑错误
影响范围: 管理师端待派单列表、快速预约页面
📋 问题描述
现象:
- 家长在家长端成功预约陪伴员
- 管理师端首页"待派单"组件显示订单数为 0
- 管理师端快速预约页面也看不到订单
- 导致管理师无法派单,业务流程中断
业务流程:
家长预约 → 管理师看到订单 → 管理师派单 → 陪伴员接单 → 提供服务
🔍 根本原因
1. 后端查询条件过于严格
文件: peidu/backend/src/main/java/com/peidu/controller/ManagerController.java
问题代码 (第90行):
// ❌ 错误:要求订单必须已支付才能显示
pendingQuery.eq("status", 0).eq("pay_status", 1).eq("deleted", 0);
查询条件:
status = 0(待派单) ✅pay_status = 1(已支付) ❌ 这是问题所在!deleted = 0(未删除) ✅
2. 家长预约时订单状态
文件: peidu/uniapp/src/pages/booking/components/ParentBooking.vue
订单创建代码 (第200行):
const orderData = {
userId: userId,
status: 0, // 待派单
payStatus: 0, // ❌ 未支付
payAmount: 0, // 金额为0
// ...
}
3. 逻辑冲突
家长创建订单:
status = 0 (待派单)
pay_status = 0 (未支付)
管理师查询条件:
status = 0 AND pay_status = 1 ← 永远查不到!
结果: 管理师永远看不到家长的预约订单
✅ 解决方案
修复策略: 移除支付状态限制
业务逻辑调整:
原流程: 家长预约 → 支付 → 管理师派单 → 服务
新流程: 家长预约 → 管理师派单 → 服务 → 支付
代码修改
1. 修复管理师统计查询
文件: ManagerController.java (第88-92行)
// ✅ 修复后:移除支付状态限制
// 待派单订单数(status=0 表示待派单)
// 业务流程:家长预约 → 管理师派单 → 陪伴员服务 → 服务后支付
QueryWrapper<com.peidu.entity.Order> pendingQuery = new QueryWrapper<>();
pendingQuery.eq("status", 0).eq("deleted", 0);
long pendingOrders = orderService.count(pendingQuery);
2. 修复工单列表查询
文件: ManagerController.java (第145-147行)
// ✅ 修复后:移除支付状态限制
// 业务流程:家长预约 → 管理师派单 → 陪伴员服务 → 服务后支付
// queryWrapper.eq("pay_status", 1); // 已移除支付状态限制
3. 明确家长预约订单状态
文件: ParentBooking.vue (第200行)
const orderData = {
userId: userId,
status: 0, // ✅ 0=待派单(家长预约后等待管理师派单)
payStatus: 0, // ✅ 未支付(服务后支付)
payAmount: 0,
// ...
}
🧪 测试验证
测试步骤
-
家长端预约:
1. 打开家长端 2. 进入"快速预约"页面 3. 填写预约信息 4. 提交预约 5. 确认提示"预约成功" -
管理师端查看:
1. 打开管理师端 2. 查看首页"待派单"组件 3. 应该显示订单数 > 0 4. 点击"查看全部" 5. 应该在快速预约页面看到订单 -
管理师派单:
1. 点击订单 2. 选择陪伴员 3. 点击"派单" 4. 确认派单成功
预期结果
✅ 家长预约后,管理师立即能看到订单
✅ 管理师可以正常派单
✅ 业务流程正常运转
📊 影响范围
修改的文件
-
peidu/backend/src/main/java/com/peidu/controller/ManagerController.java- 第88-92行: 修复统计查询
- 第145-147行: 修复工单列表查询
-
peidu/uniapp/src/pages/booking/components/ParentBooking.vue- 第200行: 明确订单状态注释
影响的功能
✅ 管理师端首页统计
✅ 管理师端待派单列表
✅ 管理师端快速预约页面
✅ 管理师派单功能
🔄 业务流程说明
新的订单状态流转
0. 待派单 (status=0, pay_status=0)
↓ 家长预约
↓ 管理师派单
1. 已派单 (status=1, pay_status=0)
↓ 陪伴员接单
2. 待服务 (status=2, pay_status=0)
↓ 陪伴员签到
3. 服务中 (status=3, pay_status=0)
↓ 陪伴员签退
4. 已完成 (status=4, pay_status=0)
↓ 家长支付
4. 已完成 (status=4, pay_status=1)
支付时机
- 原方案: 预约时支付(先付费)
- 新方案: 服务后支付(后付费)
优势:
- 降低家长预约门槛
- 提高预约转化率
- 服务质量有保障后再付费
- 符合"先体验后付费"的用户习惯
⚠️ 注意事项
1. 支付管理
由于订单可以在未支付状态下流转,需要注意:
- 订单完成后提醒家长支付
- 设置支付超时机制
- 记录未支付订单
2. 退款处理
如果订单在服务前取消:
- 未支付订单: 直接取消
- 已支付订单: 需要退款
3. 数据统计
统计收入时需要区分:
- 已完成订单数 (status=4)
- 已支付订单数 (pay_status=1)
- 实际收入 = 已完成且已支付的订单
📝 总结
问题根源
后端查询条件要求 pay_status=1,但家长预约时 pay_status=0,导致管理师看不到订单。
解决方案
移除 pay_status=1 查询条件,允许管理师看到未支付的预约订单。
业务调整
从"先付费后服务"改为"先服务后付费",更符合用户习惯。
修复状态
✅ 后端查询已修复
✅ 前端状态已明确
✅ 业务流程已理顺
✅ 可以立即测试
修复完成时间: 2026-01-25
修复人员: Kiro AI
测试状态: 待测试