8.9 KiB
康策 CSM 系统 API 接口文档
自动生成时间:2025-07-11
Swagger UI:http://localhost:5276/swagger
基地址:http://localhost:5276
📋 接口概览
| Controller | 路由前缀 | 接口数 | 是否需要认证 |
|---|---|---|---|
| AdminController | /api/admin |
14 | 除登录外均需 JWT |
| HospitalController | /api/hospital |
9 | 除登录外均需 JWT |
| UploadController | /api/upload |
2 | 上传需 JWT |
🔐 认证说明
Authorization: Bearer {token}
- 调用登录接口获取 Token
- Token 有效期:1440 分钟(24 小时)
- 签发者:CSM_System
- 受众:CSM_Client
📐 统一响应格式
所有接口均返回 ApiResponse 或 ApiResponse<T>:
// 成功
{ "code": 200, "message": "success", "data": { ... } }
// 错误
{ "code": 400, "message": "参数错误", "data": null }
{ "code": 401, "message": "未授权", "data": null }
{ "code": 403, "message": "无权限", "data": null }
{ "code": 404, "message": "资源不存在", "data": null }
{ "code": 500, "message": "服务器内部错误", "data": null }
分页接口返回 ApiResponse<PagedResult<T>>:
{
"code": 200,
"message": "success",
"data": {
"total": 100,
"page": 1,
"pageSize": 10,
"list": [...]
}
}
一、管理端 API — /api/admin
1.1 登录
POST
/api/admin/login· 无需认证
请求体:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| username | string | 是 | 用户名 |
| password | string | 是 | 密码 |
请求示例:
{ "username": "admin", "password": "123456" }
响应数据:
| 字段 | 类型 | 说明 |
|---|---|---|
| token | string | JWT Token |
| userId | int | 用户 ID |
| userName | string | 用户名 |
| userType | string | 用户类型(Admin/Hospital) |
| hospitalId | int? | 所属医院 ID(Admin 为 null) |
| hospitalName | string | 所属医院名称 |
| role | string | 角色 |
| name | string | 姓名 |
⚠️ 仅允许
userType == "Admin"的账号登录,否则返回 403
1.2 服务工单
获取工单列表
GET
/api/admin/orders· ✅ 需认证
| 查询参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | int | 否 | 页码,默认 1 |
| pageSize | int | 否 | 每页条数,默认 10 |
| status | string | 否 | 状态筛选 |
| priority | string | 否 | 优先级筛选(高/中/低) |
| type | string | 否 | 服务类型筛选 |
| keyword | string | 否 | 关键词搜索 |
| startDate | string | 否 | 开始时间 |
| endDate | string | 否 | 结束时间 |
| hospitalId | int | 否 | 医院 ID 筛选 |
获取工单详情
GET
/api/admin/orders/{id}· ✅ 需认证
| 路径参数 | 类型 | 说明 |
|---|---|---|
| id | int | 工单 ID |
管理端提交工单
POST
/api/admin/orders· ✅ 需认证
请求体:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| title | string | 是 | 工单标题 |
| priority | string | 是 | 优先级(高/中/低) |
| serviceType | string | 是 | 服务类型 |
| description | string | 是 | 详细描述(HTML) |
| department | string | 否 | 科室 |
| submitter | string | 否 | 提交人 |
| colorTag | string | 否 | 颜色标签 |
| hospitalId | int | 否 | 指定医院 ID |
处理工单
PUT
/api/admin/orders/{id}/process· ✅ 需认证
路径参数: id — 工单 ID
请求体:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| processRemark | string | 是 | 处理备注(HTML) |
| status | string | 是 | 目标状态(如"已完成") |
1.3 医院信息
获取医院列表
GET
/api/admin/hospitals· ✅ 需认证
| 查询参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | int | 否 | 页码,默认 1 |
| pageSize | int | 否 | 每页条数,默认 10 |
| keyword | string | 否 | 关键词搜索 |
| category | string | 否 | 类别筛选 |
获取医院详情
GET
/api/admin/hospitals/{id}· ✅ 需认证
| 路径参数 | 类型 | 说明 |
|---|---|---|
| id | int | 医院 ID |
添加医院
POST
/api/admin/hospitals· ✅ 需认证
请求体:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 是 | 医院名称 |
| customerCategory | string | 是 | 客户类别(如 A) |
| contactDept | string | 否 | 联系部门 |
| contactPerson | string | 否 | 联系人 |
| contactPosition | string | 否 | 联系人职位 |
| contactPhone | string | 否 | 联系电话 |
| signDate | DateTime | 是 | 签约日期 |
| acceptDate | DateTime | 是 | 验收日期 |
| contractYears | int | 是 | 合同年限 |
| maintenanceEnd | DateTime | 是 | 维保到期日 |
| managerId | int | 否 | 负责人 ID |
| remark | string | 否 | 备注 |
更新医院信息
PUT
/api/admin/hospitals/{id}· ✅ 需认证
请求体同「添加医院」
1.4 账号管理
获取账号列表
GET
/api/admin/accounts· ✅ 需认证
| 查询参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 否 | 用户类型(Admin/Hospital) |
| page | int | 否 | 页码 |
| pageSize | int | 否 | 每页条数 |
| keyword | string | 否 | 关键词搜索 |
添加账号
POST
/api/admin/accounts· ✅ 需认证
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| username | string | 是 | 用户名 |
| password | string | 是 | 密码 |
| name | string | 是 | 姓名 |
| gender | string | 否 | 性别 |
| userType | string | 是 | 类型(Admin/Hospital) |
| hospitalId | int | 否 | 所属医院 ID |
| role | string | 否 | 角色 |
编辑账号
PUT
/api/admin/accounts/{id}· ✅ 需认证
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 否 | 姓名 |
| gender | string | 否 | 性别 |
| hospitalId | int | 否 | 所属医院 ID |
| role | string | 否 | 角色 |
切换账号状态
PUT
/api/admin/accounts/{id}/status· ✅ 需认证
切换启用/禁用状态,无需请求体。
重置密码
POST
/api/admin/accounts/{id}/reset-password· ✅ 需认证
重置为默认密码 123456,无需请求体。
二、医院端 API — /api/hospital
2.1 登录
POST
/api/hospital/login· 无需认证
请求体同管理端登录。
⚠️ 仅允许
userType == "Hospital"的账号登录,否则返回 403
2.2 工作台
获取统计数据
GET
/api/hospital/workbench· ✅ 需认证
| 查询参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| period | string | 否 | 统计周期(month) |
| start | DateTime | 否 | 开始日期 |
| end | DateTime | 否 | 结束日期 |
响应数据:
| 字段 | 类型 | 说明 |
|---|---|---|
| totalOrders | int | 总工单数 |
| completedOrders | int | 已完成数 |
| pendingOrders | int | 待处理数 |
| highPriorityOrders | int | 高优先级数 |
| trendData | array | 趋势图数据 [{ date, submitCount, completeCount }] |
2.3 工单管理
我的工单列表
GET
/api/hospital/orders· ✅ 需认证
查询参数同管理端工单列表(不含 hospitalId,自动绑定当前医院)
工单详情
GET
/api/hospital/orders/{id}· ✅ 需认证
| 路径参数 | 类型 | 说明 |
|---|---|---|
| id | int | 工单 ID |
返回工单详情(含附件列表 + 状态流转日志)
快速提交工单
POST
/api/hospital/orders· ✅ 需认证
请求体同管理端提交工单(不含 hospitalId,自动绑定当前医院)
编辑工单
PUT
/api/hospital/orders/{id}· ✅ 需认证
取消工单
DELETE
/api/hospital/orders/{id}· ✅ 需认证
2.4 积分
积分总览
GET
/api/hospital/points· ✅ 需认证
响应:
{ "totalPoints": 0, "rewardCount": 0 }
积分明细
GET
/api/hospital/points/details· ✅ 需认证
| 查询参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | int | 否 | 页码,默认 1 |
| pageSize | int | 否 | 每页条数,默认 10 |
响应:
[{ "source": "string", "orderNo": "string", "changeAmount": 0, "description": "string", "createdAt": "2025-01-01" }]
三、附件上传下载 — /api/upload
3.1 上传附件
POST
/api/upload· ✅ 需认证
请求格式: multipart/form-data
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| orderNo | string | 是 | 关联工单号 |
| files | file[] | 是 | 文件列表 |
- 单文件最大:50 MB
- 存储路径:
Uploads/Attachments/
3.2 下载/预览附件
GET
/api/upload/{fileName}· 无需认证
| 路径参数 | 类型 | 说明 |
|---|---|---|
| fileName | string | 文件名 |
🏷️ 附录:状态码说明
| 状态码 | 说明 |
|---|---|
| 200 | 请求成功 |
| 400 | 参数校验失败 |
| 401 | 未登录或 Token 过期 |
| 403 | 无操作权限 |
| 404 | 资源不存在 |
| 500 | 服务器内部错误 |