168 lines
3.3 KiB
Markdown
168 lines
3.3 KiB
Markdown
|
|
# ⚡ 立即执行 - 日历数据修复
|
||
|
|
|
||
|
|
**时间**: 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. 数据库查询结果
|