docs: API 文档按端+模块二级目录重组

- 前台用户端 API 迁移到 frontend/ 目录(auth/contact/im/meeting/notify)
- 后台管理端 admin.md 拆分为 admin/ 目录下 4 个文档(auth/user/meeting/system)
- WebSocket 协议保留在根目录(跨端通用)
- 更新 README 导航为两级结构,补充目录结构说明
- 更新所有文档间的交叉引用路径

Made-with: Cursor
This commit is contained in:
bujinyuan
2026-02-28 09:52:52 +08:00
parent 44fa5a3830
commit 7dcd89c7fc
12 changed files with 390 additions and 300 deletions

32
docs/api/admin/auth.md Normal file
View File

@@ -0,0 +1,32 @@
# 管理端 — 认证 API
> 通用规范(认证方式、响应格式、错误码)见 [README.md](../README.md)
---
## 接口列表
| 方法 | 路径 | 权限 | 说明 |
|------|------|------|------|
| POST | /api/v1/admin/auth/login | 公开 | 管理员登录 |
---
## 1. 管理员登录
`POST /api/v1/admin/auth/login`
**权限:** 公开
**请求参数:** 与前台用户登录接口格式一致
| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| account | string | 是 | 用户名或邮箱 |
| password | string | 是 | 登录密码 |
**说明:** 登录后会额外验证用户是否拥有 admin 或 super_admin 角色,如果没有对应角色则返回 1003权限不足。管理员与普通用户共用 `auth_users` 表,通过角色区分权限。
**成功响应:** 与前台登录接口返回格式一致,包含 token、refresh_token、用户信息等。
**可能的错误码:** 1001, 1003, 2003, 2004

86
docs/api/admin/meeting.md Normal file
View File

@@ -0,0 +1,86 @@
# 管理端 — 会议管理 API
> 通用规范(认证方式、响应格式、错误码)见 [README.md](../README.md)
> 以下所有接口均需要 **JWT 认证 + admin/super_admin 角色**
---
## 接口列表
| 方法 | 路径 | 权限 | 说明 |
|------|------|------|------|
| GET | /api/v1/admin/meetings | admin | 获取会议列表 |
| GET | /api/v1/admin/meetings/:id | admin | 获取会议详情 |
| PUT | /api/v1/admin/meetings/:id/close | admin | 强制结束会议 |
| GET | /api/v1/admin/meetings/stats | admin | 获取会议统计 |
---
## 1. 获取会议列表
`GET /api/v1/admin/meetings`
**权限:** admin
**查询参数:**
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| status | int | 无 | 按状态筛选0=未开始1=进行中2=已结束 |
| type | int | 无 | 按类型筛选1=即时会议2=预约会议 |
| keyword | string | 无 | 搜索关键词(匹配会议标题) |
| page | int | 1 | 页码 |
| page_size | int | 20 | 每页数量 |
---
## 2. 获取会议详情
`GET /api/v1/admin/meetings/:id`
**权限:** admin
**说明:** 返回会议完整信息,包括参与者列表、会议设置、时长统计等。
---
## 3. 强制结束会议
`PUT /api/v1/admin/meetings/:id/close`
**权限:** admin
**说明:** 强制结束后,所有参会者将收到会议结束通知,所有媒体资源将被回收。操作将记录到管理日志(`admin_operation_logs` 表)。
---
## 4. 获取会议统计
`GET /api/v1/admin/meetings/stats`
**权限:** admin
**成功响应:**
```json
{
"code": 0,
"message": "ok",
"data": {
"total_meetings": 1500,
"ongoing_meetings": 5,
"today_meetings": 23,
"total_participants": 8500,
"avg_duration": 1800
}
}
```
**字段说明:**
| 字段 | 类型 | 说明 |
|------|------|------|
| total_meetings | int | 历史会议总数 |
| ongoing_meetings | int | 当前进行中的会议数 |
| today_meetings | int | 今日创建的会议数 |
| total_participants | int | 历史累计参会人次 |
| avg_duration | int | 平均会议时长(秒) |

92
docs/api/admin/system.md Normal file
View File

@@ -0,0 +1,92 @@
# 管理端 — 系统管理 API
> 通用规范(认证方式、响应格式、错误码)见 [README.md](../README.md)
> 以下所有接口均需要 **JWT 认证 + admin/super_admin 角色**
---
## 接口列表
| 方法 | 路径 | 权限 | 说明 |
|------|------|------|------|
| GET | /api/v1/admin/dashboard | admin | 获取仪表盘数据 |
| GET | /api/v1/admin/logs | admin | 获取操作日志 |
| GET | /api/v1/admin/system/config | super_admin | 获取系统配置 |
| PUT | /api/v1/admin/system/config | super_admin | 更新系统配置 |
---
## 1. 获取仪表盘数据
`GET /api/v1/admin/dashboard`
**权限:** admin
**说明:** 返回系统核心指标概览,用于后台管理端首页展示。
**成功响应:**
```json
{
"code": 0,
"message": "ok",
"data": {
"total_users": 1200,
"online_users": 85,
"today_new_users": 12,
"ongoing_meetings": 5,
"today_meetings": 23,
"today_messages": 5600
}
}
```
**字段说明:**
| 字段 | 类型 | 说明 |
|------|------|------|
| total_users | int | 系统注册用户总数 |
| online_users | int | 当前在线用户数WebSocket 连接中) |
| today_new_users | int | 今日新注册用户数 |
| ongoing_meetings | int | 当前进行中的会议数 |
| today_meetings | int | 今日创建的会议数 |
| today_messages | int | 今日消息发送总数 |
---
## 2. 获取操作日志
`GET /api/v1/admin/logs`
**权限:** admin
**查询参数:**
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| module | string | 无 | 按模块筛选user / meeting / permission / system |
| action | string | 无 | 按操作类型筛选create / update / delete / disable / enable / close |
| admin_id | int | 无 | 按操作管理员 ID 筛选 |
| page | int | 1 | 页码 |
| page_size | int | 20 | 每页数量 |
**说明:** 日志数据来源于 `admin_operation_logs` 表,记录所有管理员的操作行为,用于审计和问题追踪。
---
## 3. 获取系统配置
`GET /api/v1/admin/system/config`
**权限:** super_admin
**说明:** 返回系统全局配置项,如默认会议最大人数、消息保留天数等。
---
## 4. 更新系统配置
`PUT /api/v1/admin/system/config`
**权限:** super_admin
**说明:** 修改系统全局配置,操作将记录到管理日志。

125
docs/api/admin/user.md Normal file
View File

@@ -0,0 +1,125 @@
# 管理端 — 用户管理 API
> 通用规范(认证方式、响应格式、错误码)见 [README.md](../README.md)
> 以下所有接口均需要 **JWT 认证 + admin/super_admin 角色**
---
## 接口列表
| 方法 | 路径 | 权限 | 说明 |
|------|------|------|------|
| GET | /api/v1/admin/users | admin | 获取用户列表 |
| GET | /api/v1/admin/users/:id | admin | 获取用户详情 |
| PUT | /api/v1/admin/users/:id/status | admin | 更新用户状态 |
| PUT | /api/v1/admin/users/:id/role | super_admin | 分配用户角色 |
| POST | /api/v1/admin/users | admin | 管理员创建用户 |
| GET | /api/v1/admin/users/:id/meetings | admin | 获取用户会议记录 |
---
## 1. 获取用户列表
`GET /api/v1/admin/users`
**权限:** admin
**查询参数:**
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| keyword | string | 无 | 搜索关键词(匹配用户名/邮箱/昵称) |
| status | int | 无 | 按状态筛选1=正常2=禁用3=注销 |
| role | string | 无 | 按角色筛选user / admin / super_admin |
| page | int | 1 | 页码 |
| page_size | int | 20 | 每页数量 |
---
## 2. 获取用户详情
`GET /api/v1/admin/users/:id`
**权限:** admin
**成功响应:**
```json
{
"code": 0,
"message": "ok",
"data": {
"id": 1,
"username": "zhangsan",
"email": "zhangsan@example.com",
"nickname": "张三",
"avatar": "https://...",
"gender": 1,
"phone": "13800138000",
"status": 1,
"roles": ["user"],
"last_login_at": "2026-02-27 10:00:00",
"last_login_ip": "192.168.1.100",
"created_at": "2026-02-20 08:00:00"
}
}
```
---
## 3. 更新用户状态
`PUT /api/v1/admin/users/:id/status`
**权限:** admin
**请求参数:**
| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| status | int | 是 | 目标状态1=正常启用2=禁用 |
**说明:** 禁用用户后,该用户的所有活跃 Token 将被清除,正在进行的 WebSocket 连接将被断开。
---
## 4. 分配用户角色
`PUT /api/v1/admin/users/:id/role`
**权限:** super_admin
**请求参数:**
| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| role_code | string | 是 | 角色代码user / admin / super_admin |
---
## 5. 管理员创建用户
`POST /api/v1/admin/users`
**权限:** admin
**请求参数:** 同前台用户注册接口,额外支持:
| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| role_code | string | 否 | 指定角色,默认为 user |
---
## 6. 获取用户会议记录
`GET /api/v1/admin/users/:id/meetings`
**权限:** admin
**查询参数:**
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| status | string | 无 | ongoing=进行中upcoming=即将开始ended=已结束 |
| page | int | 1 | 页码 |
| page_size | int | 20 | 每页数量 |