添加了后台管理接口,包括用户、角色、材质管理,管理员可进行删除、查找、设定状态操作,详情在README
This commit is contained in:
134
README.md
134
README.md
@@ -144,6 +144,140 @@ golangci-lint run (若已安装)
|
||||
- 若手动运行,需要保证 `docs/` 下的 `docs.go`、`swagger.json`、`swagger.yaml` 与代码同步
|
||||
- 通过 `SERVER_SWAGGER_ENABLED=false` 可在生产环境关闭 Swagger UI 暴露
|
||||
|
||||
## 🔐 管理后台 API
|
||||
|
||||
管理后台接口均需要管理员权限(`role=admin`),所有接口路径前缀为 `/api/v1/admin`。
|
||||
|
||||
### 📊 统计信息
|
||||
|
||||
| 接口 | 方法 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `/stats` | GET | 获取系统统计数据(用户数、材质数、下载量等) |
|
||||
|
||||
**响应示例:**
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "success",
|
||||
"data": {
|
||||
"total_users": 100,
|
||||
"active_users": 80,
|
||||
"banned_users": 5,
|
||||
"admin_users": 3,
|
||||
"total_textures": 500,
|
||||
"public_textures": 300,
|
||||
"pending_textures": 10,
|
||||
"total_downloads": 1000,
|
||||
"total_favorites": 500
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 👥 角色管理
|
||||
|
||||
| 接口 | 方法 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `/roles` | GET | 获取所有可用角色列表 |
|
||||
|
||||
**响应示例:**
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "success",
|
||||
"data": {
|
||||
"roles": [
|
||||
{
|
||||
"name": "user",
|
||||
"display_name": "普通用户",
|
||||
"description": "拥有基本用户权限"
|
||||
},
|
||||
{
|
||||
"name": "admin",
|
||||
"display_name": "管理员",
|
||||
"description": "拥有所有管理权限"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 👤 用户管理
|
||||
|
||||
| 接口 | 方法 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `/users` | GET | 获取用户列表(分页) |
|
||||
| `/users/search` | GET | 搜索用户(支持关键词、角色、状态筛选、排序) |
|
||||
| `/users/{id}` | GET | 获取用户详情 |
|
||||
| `/users/{id}` | DELETE | 删除用户(软删除) |
|
||||
| `/users/role` | PUT | 设置单个用户角色 |
|
||||
| `/users/status` | PUT | 设置单个用户状态(封禁/解封) |
|
||||
| `/users/batch-role` | PUT | 批量设置用户角色 |
|
||||
| `/users/batch-delete` | DELETE | 批量删除用户 |
|
||||
|
||||
**搜索用户请求参数:**
|
||||
- `keyword` (string): 搜索关键词(用户名或邮箱)
|
||||
- `role` (string): 角色筛选
|
||||
- `status` (int): 状态筛选(1=正常,0=禁用,-1=删除)
|
||||
- `sort_by` (string): 排序字段
|
||||
- `sort_desc` (bool): 是否降序
|
||||
- `page` (int): 页码
|
||||
- `page_size` (int): 每页数量
|
||||
|
||||
**设置用户状态请求示例:**
|
||||
```json
|
||||
{
|
||||
"user_id": 123,
|
||||
"status": 0
|
||||
}
|
||||
```
|
||||
- `status`: 1=正常,0=禁用,-1=删除
|
||||
|
||||
**批量设置角色请求示例:**
|
||||
```json
|
||||
{
|
||||
"user_ids": [1, 2, 3],
|
||||
"role": "admin"
|
||||
}
|
||||
```
|
||||
|
||||
### 🎨 材质管理
|
||||
|
||||
| 接口 | 方法 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `/textures` | GET | 获取材质列表(分页) |
|
||||
| `/textures/search` | GET | 搜索材质(支持关键词、类型、状态、上传者筛选、排序) |
|
||||
| `/textures/{id}` | PUT | 更新材质信息(名称、描述、公开状态、审核状态) |
|
||||
| `/textures/{id}` | DELETE | 删除材质 |
|
||||
| `/textures/batch-delete` | DELETE | 批量删除材质 |
|
||||
|
||||
**搜索材质请求参数:**
|
||||
- `keyword` (string): 搜索关键词
|
||||
- `type` (string): 材质类型(SKIN/CAPE)
|
||||
- `status` (int): 状态筛选
|
||||
- `uploader_id` (int): 上传者ID筛选
|
||||
- `sort_by` (string): 排序字段
|
||||
- `sort_desc` (bool): 是否降序
|
||||
- `page` (int): 页码
|
||||
- `page_size` (int): 每页数量
|
||||
|
||||
**更新材质请求示例:**
|
||||
```json
|
||||
{
|
||||
"name": "新皮肤名称",
|
||||
"description": "新描述",
|
||||
"is_public": true,
|
||||
"status": 1
|
||||
}
|
||||
```
|
||||
|
||||
### 🔒 安全特性
|
||||
|
||||
1. **权限保护**:所有管理接口都需要管理员权限(`role=admin`)
|
||||
2. **安全限制**:管理员不能修改/删除自己的角色和状态
|
||||
3. **批量操作**:支持批量设置角色和批量删除
|
||||
4. **操作日志**:所有管理操作都会记录日志
|
||||
5. **封禁功能**:通过 `/users/status` 接口可以封禁/解封用户
|
||||
|
||||
## 🤝 贡献指南
|
||||
|
||||
1. Fork & Clone
|
||||
|
||||
Reference in New Issue
Block a user