peixue-dev/Archive/peidu-temp-files/docs/⚡立即执行-日历数据修复-2026-01-24.md

3.3 KiB

立即执行 - 日历数据修复

时间: 2026-01-24
问题: 日历页面显示"暂无订单数据"

快速诊断

日历没有数据的原因通常是以下之一:

  1. 数据库中没有订单数据 (最常见)
  2. 用户ID获取错误 (已修复)
  3. 订单状态不符合条件
  4. 日期不在当前月份

立即执行步骤

步骤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. 在微信开发者工具中点击"编译"
  2. 进入家长端
  3. 点击底部"日历"标签
  4. 查看是否显示数据

预期结果

修复后应该看到:

日历显示

  • 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;

总结

最常见的问题是数据库中没有订单数据。执行测试数据创建脚本后,日历应该就能正常显示了。

如果还有问题,请提供:

  1. 后端日志
  2. 前端控制台输出
  3. 数据库查询结果