102 lines
2.0 KiB
Markdown
102 lines
2.0 KiB
Markdown
# 排班接口测试
|
|
|
|
## 测试前准备
|
|
|
|
1. 确保数据库已创建 `la_doctor_roster` 表
|
|
2. 确保 `zyt_admin` 表中有 `role_id=1` 的用户(医生)
|
|
|
|
## 测试步骤
|
|
|
|
### 1. 测试获取排班列表
|
|
|
|
```bash
|
|
GET /adminapi/doctor.roster/lists?start_date=2026-03-02&end_date=2026-03-08
|
|
```
|
|
|
|
预期结果:返回空列表或已有的排班数据
|
|
|
|
### 2. 测试新增排班
|
|
|
|
```bash
|
|
POST /adminapi/doctor.roster/save
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"doctor_id": 1,
|
|
"date": "2026-03-03",
|
|
"period": "morning",
|
|
"status": 1,
|
|
"quota": 20,
|
|
"max_patients": 30,
|
|
"remark": "测试排班"
|
|
}
|
|
```
|
|
|
|
预期结果:返回成功,包含新增的排班ID
|
|
|
|
### 3. 测试更新排班
|
|
|
|
```bash
|
|
POST /adminapi/doctor.roster/save
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"id": 1,
|
|
"doctor_id": 1,
|
|
"date": "2026-03-03",
|
|
"period": "morning",
|
|
"status": 2,
|
|
"quota": 0,
|
|
"max_patients": 0,
|
|
"remark": "临时停诊"
|
|
}
|
|
```
|
|
|
|
预期结果:返回成功,排班状态更新为停诊
|
|
|
|
### 4. 测试删除排班
|
|
|
|
```bash
|
|
POST /adminapi/doctor.roster/delete
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"id": 1
|
|
}
|
|
```
|
|
|
|
预期结果:返回成功,排班被软删除
|
|
|
|
## 常见问题
|
|
|
|
### 1. 控制器不存在
|
|
|
|
错误:`控制器不存在:\\app\\adminapi\\controller\\doctor\\RosterController`
|
|
|
|
解决:确保文件路径正确,文件名大小写匹配
|
|
|
|
### 2. 类不存在
|
|
|
|
错误:`Class 'app\common\model\doctor\Roster' not found`
|
|
|
|
解决:检查 Model 文件是否创建,命名空间是否正确
|
|
|
|
### 3. 表不存在
|
|
|
|
错误:`Table 'database.la_doctor_roster' doesn't exist`
|
|
|
|
解决:执行 SQL 创建表
|
|
|
|
### 4. 唯一索引冲突
|
|
|
|
错误:`Duplicate entry '1-2026-03-03-morning' for key 'uk_doctor_date_period'`
|
|
|
|
说明:同一医生同一天同一时段已有排班,这是正常的约束
|
|
|
|
## 调试技巧
|
|
|
|
1. 查看日志文件:`server/runtime/log/`
|
|
2. 开启调试模式:`.env` 中设置 `APP_DEBUG=true`
|
|
3. 使用 Postman 或类似工具测试接口
|
|
4. 检查数据库表结构是否正确
|