Files
zyt/server/TEST_ROSTER_API.md
T
2026-03-04 15:32:30 +08:00

2.0 KiB

排班接口测试

测试前准备

  1. 确保数据库已创建 la_doctor_roster
  2. 确保 zyt_admin 表中有 role_id=1 的用户(医生)

测试步骤

1. 测试获取排班列表

GET /adminapi/doctor.roster/lists?start_date=2026-03-02&end_date=2026-03-08

预期结果:返回空列表或已有的排班数据

2. 测试新增排班

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. 测试更新排班

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. 测试删除排班

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. 检查数据库表结构是否正确