# 排班接口测试 ## 测试前准备 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. 检查数据库表结构是否正确