Files
EchoChat/docs/api/admin/user.md
bujinyuan 883598d5fa docs: Phase 1 完成 — 同步更新全部文档至最新进度
- system-architecture.md: 标注 Docker 部署架构实现状态
- phase1-foundation-and-auth.md: 添加 Phase 1 完成标记
- api/README.md: 添加各模块实现状态标注(Phase 1/2/3)
- api/admin/user.md: 修正角色分配权限、补充创建用户响应示例
- project-context.mdc: 更新当前进度为 Phase 1 完成

Made-with: Cursor
2026-03-02 11:42:45 +08:00

196 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 管理端 — 用户管理 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 | admin / super_admin | 分配用户角色 |
| POST | /api/v1/admin/users | admin | 管理员创建用户 |
| GET | /api/v1/admin/users/:id/meetings | admin | 获取用户会议记录Phase 3 实现) |
---
## 1. 获取用户列表
`GET /api/v1/admin/users`
**权限:** admin
**查询参数:**
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|------|------|------|--------|------|
| page | int | 是 | - | 页码(从 1 开始) |
| page_size | int | 是 | - | 每页数量1-100 |
| keyword | string | 否 | 无 | 搜索关键词(模糊匹配用户名或邮箱) |
| status | int | 否 | 无 | 按状态筛选1=正常2=禁用3=注销 |
**成功响应:**
```json
{
"code": 0,
"message": "success",
"data": {
"total": 100,
"list": [
{
"id": 1,
"username": "zhangsan",
"email": "zhangsan@example.com",
"nickname": "张三",
"avatar": "",
"gender": 1,
"phone": "13800138000",
"status": 1,
"status_text": "正常",
"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",
"updated_at": "2026-02-27 10:00:00"
}
]
}
}
```
---
## 2. 获取用户详情
`GET /api/v1/admin/users/:id`
**权限:** admin
**成功响应:**
```json
{
"code": 0,
"message": "success",
"data": {
"id": 1,
"username": "zhangsan",
"email": "zhangsan@example.com",
"nickname": "张三",
"avatar": "",
"gender": 1,
"phone": "13800138000",
"status": 1,
"status_text": "正常",
"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",
"updated_at": "2026-02-27 10:00:00"
}
}
```
---
## 3. 更新用户状态
`PUT /api/v1/admin/users/:id/status`
**权限:** admin
**请求参数:**
| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| status | int | 是 | 目标状态1=正常启用2=禁用 |
**说明:**
- 禁用用户后,该用户的所有活跃 Token 将被清除
- 不能禁用自己的账号(返回 400
- 禁用后用户尝试登录将返回 403
**成功响应:**
```json
{
"code": 0,
"message": "success",
"trace_id": "...",
"time": "2026-03-02 11:12:44"
}
```
---
## 4. 分配用户角色
`PUT /api/v1/admin/users/:id/role`
**权限:** admin / super_admin
**请求参数:**
| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| role_code | string | 是 | 角色代码user / admin / super_admin |
---
## 5. 管理员创建用户
`POST /api/v1/admin/users`
**权限:** admin
**请求参数:**
| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| username | string | 是 | 用户名3-50 字符 |
| email | string | 是 | 邮箱地址 |
| password | string | 是 | 初始密码6-50 字符 |
| nickname | string | 否 | 昵称(默认使用用户名) |
| role_code | string | 否 | 指定角色,默认为 user |
**成功响应:**
```json
{
"code": 0,
"message": "success",
"data": {
"id": 6,
"username": "created_by_admin",
"email": "admin_created@example.com",
"nickname": "管理员创建",
"avatar": "",
"gender": 0,
"status": 1,
"status_text": "正常",
"roles": ["user"],
"created_at": "2026-03-02 11:12:33",
"updated_at": "2026-03-02 11:12:33"
},
"trace_id": "...",
"time": "2026-03-02 11:12:33"
}
```
---
## 6. 获取用户会议记录
`GET /api/v1/admin/users/:id/meetings`
**权限:** admin
**查询参数:**
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| status | string | 无 | ongoing=进行中upcoming=即将开始ended=已结束 |
| page | int | 1 | 页码 |
| page_size | int | 20 | 每页数量 |