3.3 KiB
3.3 KiB
⚡ 立即执行 - 日历数据修复
时间: 2026-01-24
问题: 日历页面显示"暂无订单数据"
快速诊断
日历没有数据的原因通常是以下之一:
- ❌ 数据库中没有订单数据 (最常见)
- ❌ 用户ID获取错误 (已修复)
- ❌ 订单状态不符合条件
- ❌ 日期不在当前月份
立即执行步骤
步骤1: 检查数据库
在MySQL中执行:
-- 快速检查是否有订单数据
SELECT COUNT(*) as order_count
FROM `order`
WHERE user_id = 1
AND service_date >= '2026-01-01'
AND service_date <= '2026-01-31'
AND status IN (1,2,3,4)
AND deleted = 0;
如果结果是0,说明没有数据,执行步骤2
步骤2: 创建测试数据
双击执行:
peidu/sql/执行日历测试数据创建.bat
或者在MySQL中手动执行:
source peidu/sql/🚀创建日历测试数据-2026-01-24.sql
这将创建6条测试订单数据。
步骤3: 重新编译后端
cd peidu/backend
mvn clean compile
步骤4: 重启后端服务
确保后端服务重启,加载最新的CalendarController代码。
步骤5: 刷新前端测试
- 在微信开发者工具中点击"编译"
- 进入家长端
- 点击底部"日历"标签
- 查看是否显示数据
预期结果
修复后应该看到:
日历显示
- ✅ 1月10日有绿色标记(已完成)
- ✅ 1月15日有橙色标记(待服务)
- ✅ 1月20日有橙色标记(待接单)
- ✅ 1月24日有蓝色标记(服务中)
- ✅ 1月25日有橙色标记(待服务)
- ✅ 1月28日有橙色标记(待服务)
统计数据
- 总课时: 6
- 已完成: 1
- 待服务: 5
如果还是没有数据
检查后端日志
查看是否有以下日志:
[CalendarController] 获取预约记录, startDate: 2026-01-01, endDate: 2026-01-31
[CalendarController] 当前用户ID: 1
[CalendarServiceImpl] 查询到 6 条订单记录
检查前端请求
在浏览器开发者工具Network中查看:
Request: GET /api/calendar/appointments?startDate=2026-01-01&endDate=2026-01-31
Status: 200 OK
Response: {
"code": 200,
"data": [
{ "id": 1, "serviceDate": "2026-01-10", ... },
...
]
}
检查用户ID
确认当前登录的用户ID是1:
-- 查看当前用户信息
SELECT id, username, phone, user_type
FROM user
WHERE id = 1;
如果登录的用户ID不是1,需要修改测试数据的user_id:
-- 修改订单的user_id为当前登录用户
UPDATE `order`
SET user_id = [当前用户ID]
WHERE user_id = 1
AND service_date >= '2026-01-01'
AND service_date <= '2026-01-31';
调试命令
查看所有订单
SELECT id, order_no, user_id, service_date, status, deleted
FROM `order`
WHERE deleted = 0
ORDER BY service_date DESC;
查看1月订单
SELECT id, service_date, time_slot, status
FROM `order`
WHERE service_date >= '2026-01-01'
AND service_date <= '2026-01-31'
AND deleted = 0;
查看用户的所有订单
SELECT id, service_date, status
FROM `order`
WHERE user_id = 1
AND deleted = 0;
总结
最常见的问题是数据库中没有订单数据。执行测试数据创建脚本后,日历应该就能正常显示了。
如果还有问题,请提供:
- 后端日志
- 前端控制台输出
- 数据库查询结果