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

168 lines
3.3 KiB
Markdown
Raw Normal View History

2026-02-28 17:26:03 +08:00
# ⚡ 立即执行 - 日历数据修复
**时间**: 2026-01-24
**问题**: 日历页面显示"暂无订单数据"
## 快速诊断
日历没有数据的原因通常是以下之一:
1.**数据库中没有订单数据** (最常见)
2.**用户ID获取错误** (已修复)
3.**订单状态不符合条件**
4.**日期不在当前月份**
## 立即执行步骤
### 步骤1: 检查数据库
在MySQL中执行:
```sql
-- 快速检查是否有订单数据
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中手动执行:
```bash
source peidu/sql/🚀创建日历测试数据-2026-01-24.sql
```
这将创建6条测试订单数据。
### 步骤3: 重新编译后端
```bash
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:
```sql
-- 查看当前用户信息
SELECT id, username, phone, user_type
FROM user
WHERE id = 1;
```
如果登录的用户ID不是1,需要修改测试数据的user_id:
```sql
-- 修改订单的user_id为当前登录用户
UPDATE `order`
SET user_id = [当前用户ID]
WHERE user_id = 1
AND service_date >= '2026-01-01'
AND service_date <= '2026-01-31';
```
## 调试命令
### 查看所有订单
```sql
SELECT id, order_no, user_id, service_date, status, deleted
FROM `order`
WHERE deleted = 0
ORDER BY service_date DESC;
```
### 查看1月订单
```sql
SELECT id, service_date, time_slot, status
FROM `order`
WHERE service_date >= '2026-01-01'
AND service_date <= '2026-01-31'
AND deleted = 0;
```
### 查看用户的所有订单
```sql
SELECT id, service_date, status
FROM `order`
WHERE user_id = 1
AND deleted = 0;
```
## 总结
最常见的问题是**数据库中没有订单数据**。执行测试数据创建脚本后,日历应该就能正常显示了。
如果还有问题,请提供:
1. 后端日志
2. 前端控制台输出
3. 数据库查询结果