200 lines
4.1 KiB
Markdown
200 lines
4.1 KiB
Markdown
|
|
# 🔍 服务记录不显示 - 调试指南
|
|||
|
|
|
|||
|
|
**问题**: 订单详情页面没有显示"服务记录"区域
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📋 排查步骤
|
|||
|
|
|
|||
|
|
### 步骤1: 检查后端是否重新编译
|
|||
|
|
|
|||
|
|
后端修复了类型错误后,需要重新编译。
|
|||
|
|
|
|||
|
|
**执行**:
|
|||
|
|
```bash
|
|||
|
|
cd peidu/backend
|
|||
|
|
mvn clean package -DskipTests
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**等待编译完成**(约2-3分钟)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 步骤2: 检查前端是否重新编译
|
|||
|
|
|
|||
|
|
前端代码已修改,需要重新编译。
|
|||
|
|
|
|||
|
|
**执行**:
|
|||
|
|
```bash
|
|||
|
|
cd peidu/uniapp
|
|||
|
|
npm run build:mp-weixin
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**等待编译完成**(约1-2分钟)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 步骤3: 检查数据库中是否有打卡记录
|
|||
|
|
|
|||
|
|
在 Navicat 中执行以下SQL,检查这个订单是否有打卡记录:
|
|||
|
|
|
|||
|
|
```sql
|
|||
|
|
-- 查看订单ID(从截图看,订单显示的是"小学套餐")
|
|||
|
|
-- 假设订单ID是你点击的那个订单的ID
|
|||
|
|
|
|||
|
|
-- 方法1: 通过订单号查询
|
|||
|
|
SELECT o.id, o.order_no, o.status, o.service_name
|
|||
|
|
FROM `order` o
|
|||
|
|
WHERE o.service_name LIKE '%小学%'
|
|||
|
|
AND o.status = 4 -- 已完成
|
|||
|
|
ORDER BY o.id DESC
|
|||
|
|
LIMIT 10;
|
|||
|
|
|
|||
|
|
-- 记下订单ID,然后查询打卡记录
|
|||
|
|
SELECT *
|
|||
|
|
FROM check_in_record
|
|||
|
|
WHERE order_id = <你的订单ID>;
|
|||
|
|
|
|||
|
|
-- 如果没有记录,说明这个订单没有打卡记录
|
|||
|
|
-- 需要找一个有打卡记录的订单来测试
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 步骤4: 查看浏览器控制台日志
|
|||
|
|
|
|||
|
|
在微信开发者工具中:
|
|||
|
|
|
|||
|
|
1. 打开"调试器"
|
|||
|
|
2. 切换到"Console"标签
|
|||
|
|
3. 查看日志输出
|
|||
|
|
|
|||
|
|
**查找以下日志**:
|
|||
|
|
```
|
|||
|
|
=== 开始加载订单详情 ===
|
|||
|
|
订单ID: xxx
|
|||
|
|
尝试调用完整详情API...
|
|||
|
|
完整详情API成功: {...}
|
|||
|
|
提取的数据: {...}
|
|||
|
|
- 签到记录: {...} ← 看这里!
|
|||
|
|
- 签退记录: {...} ← 看这里!
|
|||
|
|
- 服务时长: xxx ← 看这里!
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**如果没有看到签到/签退记录的日志**,说明后端没有返回数据。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 步骤5: 测试后端API
|
|||
|
|
|
|||
|
|
在浏览器中直接访问API,查看返回数据:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
http://localhost:8080/api/order/detail-full/<订单ID>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**查看返回的JSON数据**,确认是否包含:
|
|||
|
|
- `checkInRecord` 字段
|
|||
|
|
- `checkOutRecord` 字段
|
|||
|
|
- `serviceDurationText` 字段
|
|||
|
|
|
|||
|
|
**示例返回数据**:
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"data": {
|
|||
|
|
"id": 123,
|
|||
|
|
"orderNo": "PD20260119...",
|
|||
|
|
"status": 4,
|
|||
|
|
"checkInRecord": {
|
|||
|
|
"id": 29,
|
|||
|
|
"checkType": "checkin",
|
|||
|
|
"checkTime": "2026-01-16 18:45:19",
|
|||
|
|
"photoUrl": "http://...",
|
|||
|
|
"address": "某某地址",
|
|||
|
|
"latitude": 39.9,
|
|||
|
|
"longitude": 116.4
|
|||
|
|
},
|
|||
|
|
"checkOutRecord": {
|
|||
|
|
...
|
|||
|
|
},
|
|||
|
|
"serviceDurationText": "2小时30分钟"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🎯 可能的原因和解决方案
|
|||
|
|
|
|||
|
|
### 原因1: 后端未重新编译 ❌
|
|||
|
|
**解决**: 重新编译后端(步骤1)
|
|||
|
|
|
|||
|
|
### 原因2: 前端未重新编译 ❌
|
|||
|
|
**解决**: 重新编译前端(步骤2)
|
|||
|
|
|
|||
|
|
### 原因3: 订单没有打卡记录 ❌
|
|||
|
|
**解决**:
|
|||
|
|
1. 找一个有打卡记录的订单测试
|
|||
|
|
2. 或者创建新订单并完成签到签退流程
|
|||
|
|
|
|||
|
|
### 原因4: 数据库 order_id 字段未关联 ❌
|
|||
|
|
**解决**: 执行SQL关联数据
|
|||
|
|
```sql
|
|||
|
|
UPDATE check_in_record c
|
|||
|
|
INNER JOIN `order` o ON c.teacher_id = o.teacher_id
|
|||
|
|
AND DATE(c.check_time) = o.service_date
|
|||
|
|
SET c.order_id = o.id
|
|||
|
|
WHERE c.order_id IS NULL;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🧪 完整测试流程
|
|||
|
|
|
|||
|
|
### 方案A: 使用现有数据测试
|
|||
|
|
|
|||
|
|
1. 在数据库中找一个有打卡记录的订单:
|
|||
|
|
```sql
|
|||
|
|
SELECT o.id, o.order_no, o.service_name, o.status,
|
|||
|
|
COUNT(c.id) as checkin_count
|
|||
|
|
FROM `order` o
|
|||
|
|
LEFT JOIN check_in_record c ON c.order_id = o.id
|
|||
|
|
WHERE o.status = 4
|
|||
|
|
GROUP BY o.id
|
|||
|
|
HAVING checkin_count > 0
|
|||
|
|
LIMIT 10;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2. 在家长端查看这个订单的详情
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 方案B: 创建新订单测试
|
|||
|
|
|
|||
|
|
1. **家长端**: 创建新订单
|
|||
|
|
2. **家长端**: 支付订单
|
|||
|
|
3. **管理师端**: 派单给陪伴员
|
|||
|
|
4. **陪伴员端**: 接单
|
|||
|
|
5. **陪伴员端**: 签到(上传照片)
|
|||
|
|
6. **陪伴员端**: 签退(上传照片)
|
|||
|
|
7. **家长端**: 查看订单详情
|
|||
|
|
|
|||
|
|
**预期结果**: 显示服务记录
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📝 调试清单
|
|||
|
|
|
|||
|
|
- [ ] 后端已重新编译
|
|||
|
|
- [ ] 前端已重新编译
|
|||
|
|
- [ ] 数据库有打卡记录
|
|||
|
|
- [ ] order_id 字段已关联
|
|||
|
|
- [ ] 浏览器控制台有日志
|
|||
|
|
- [ ] 后端API返回正确数据
|
|||
|
|
- [ ] 前端正确提取数据
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**下一步**: 按照以上步骤逐一排查,找出问题所在。
|