feat: import services and standardize Go 1.26.5

This commit is contained in:
2026-08-09 10:43:45 +08:00
parent 689c74b28f
commit 86024fa81d
1456 changed files with 220765 additions and 2 deletions

View File

@@ -0,0 +1,15 @@
# mgt 接口文档索引
接口基础地址:`http(s)://{host}:{port}/mgt/`
除公开接口外,需在请求头携带:`Authorization: Bearer {token}`
| 模块 | 说明 | 文档 |
|------|------|------|
| 公开接口 | 登录、刷新 Token、重置密码、Ping、Session | [pub.md](pub.md) |
| 用户 | 用户 CRUD、角色/权限/应用关联、列表与下拉 | [user.md](user.md) |
| 应用 | 应用 CRUD、用户/角色/权限列表 | [app.md](app.md) |
| 角色 | 角色 CRUD、用户/应用/权限关联 | [role.md](role.md) |
| 权限 | 权限 CRUD、排序、用户/角色关联查询 | [pmn.md](pmn.md) |
| 部门 | 部门 CRUD、树与列表、部门权限、部门用户移入移出 | [dpt.md](dpt.md) |
文档内请求/响应示例均使用有意义的示例值,无空字符串或无意义的零值占位。

245
apps/base/mgt/doc/app.md Normal file
View File

@@ -0,0 +1,245 @@
# 应用模块接口文档
基础路径:`POST /mgt/app/*`,需 JWT 认证。
---
## 1. 新增应用
**路径**`POST /mgt/app/create`
**请求体**ApplicationRequest
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| title | string | 否 | 应用名称1-200 位 |
| workspace | string | 否 | 工作空间标识1-100 位,与 title 至少填其一 |
| description | string | 否 | 描述,最长 1000 |
| page | number | 否 | 分页用 |
| size | number | 否 | 分页用 |
| keyword | string | 否 | 关键字 |
| status | number | 否 | 状态 |
**请求示例**
```json
{
"title": "后台管理系统",
"workspace": "admin_console",
"description": "运营与配置管理"
}
```
**返回**IdResp
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
}
}
```
---
## 2. 删除应用
**路径**`POST /mgt/app/del`
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 是 | 应用 ID |
**请求示例**
```json
{
"id": 1
}
```
**返回示例**
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
}
}
```
---
## 3. 应用详情
**路径**`POST /mgt/app/detail`
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 是 | 应用 ID |
**请求示例**
```json
{
"id": 1
}
```
**返回**ApplicationRsp
| 参数 | 类型 | 说明 |
|------|------|------|
| id | number | 应用 ID |
| identity | string | 唯一标识 |
| title | string | 应用名称 |
| code | string | 编码(与 workspace 对应) |
| description | string | 描述 |
| created_at | string | 创建时间 |
**返回示例**
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"title": "后台管理系统",
"code": "admin_console",
"description": "运营与配置管理",
"created_at": "2025-03-16 10:00:00"
}
}
```
---
## 4. 修改应用
**路径**`POST /mgt/app/modify`
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 是 | 应用 ID |
| title | string | 否 | 应用名称 |
| workspace | string | 否 | 工作空间标识 |
| description | string | 否 | 描述 |
| status | number | 否 | 状态 |
**请求示例**
```json
{
"id": 1,
"title": "运营后台",
"description": "运营与配置管理 v2"
}
```
**返回示例**
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
}
}
```
---
## 5. 获取应用列表(分页)
**路径**`POST /mgt/app/fetch`
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| page | number | 否 | 页码 |
| size | number | 否 | 每页条数 |
| keyword | string | 否 | 关键字,模糊匹配 title/code |
| status | number | 否 | 状态 |
**请求示例**
```json
{
"page": 1,
"size": 10,
"keyword": "后台",
"status": 1
}
```
**返回**FetchRespdata 为 ApplicationRsp 数组):
```json
{
"code": 0,
"data": {
"total": 1,
"page": 1,
"size": 10,
"data": [
{
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"title": "后台管理系统",
"code": "admin_console",
"description": "运营与配置管理",
"created_at": "2025-03-16 10:00:00"
}
]
}
}
```
---
## 6. 获取应用用户列表
**路径**`POST /mgt/app/user`
**请求体**FetchBaseid 为应用 ID。
**请求示例**
```json
{
"id": 1
}
```
**返回**data 为该应用下的用户列表。
---
## 7. 获取应用角色列表
**路径**`POST /mgt/app/role`
**请求体**同上id 为应用 ID。
---
## 8. 获取应用权限列表
**路径**`POST /mgt/app/pmn`
**请求体**同上id 为应用 ID。
**返回**data 为该应用下的权限列表。

468
apps/base/mgt/doc/dpt.md Normal file
View File

@@ -0,0 +1,468 @@
# 部门模块接口文档
基础路径:`POST /mgt/dpt/*`,需 JWT 认证。
部门按应用维度隔离:创建/列表/树等接口需传 `workspace` 表示所属应用。
---
## 1. 新增部门
**路径**`POST /mgt/dpt/create`
**请求体**DptReq
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| workspace | string | 是 | 应用编码,部门归属应用 |
| name | string | 是 | 部门名称1-100 位,同应用下唯一 |
| parent_id | number | 否 | 父部门 ID0 或不传表示顶级 |
| leader_id | number | 否 | 部门负责人用户 ID |
**请求示例**
```json
{
"workspace": "my_app",
"name": "技术部",
"parent_id": 0,
"leader_id": 1
}
```
**返回**IdResp
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
}
}
```
---
## 2. 删除部门
**路径**`POST /mgt/dpt/del`
**说明**:会级联删除该部门及所有子部门,并清理部门-用户、部门-角色、部门-权限关联。
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 是 | 部门 ID |
**请求示例**
```json
{
"id": 1
}
```
**返回示例**
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
}
}
```
---
## 3. 部门详情
**路径**`POST /mgt/dpt/detail`
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 是 | 部门 ID |
**请求示例**
```json
{
"id": 1
}
```
**返回**data 含部门基础信息及负责人leader简要信息。
| 参数 | 类型 | 说明 |
|------|------|------|
| id | number | 部门 ID |
| identity | string | 唯一标识 |
| name | string | 部门名称 |
| app_id | number | 应用 ID |
| parent_id | number | 父部门 ID |
| leader_id | number | 负责人用户 ID |
| leader | object | 负责人信息id、identity、name |
**返回示例**
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"name": "技术部",
"app_id": 1,
"parent_id": 0,
"leader_id": 1,
"leader": {
"id": 1,
"identity": "01HXXX",
"name": "张三"
}
}
}
```
---
## 4. 修改部门
**路径**`POST /mgt/dpt/modify`
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 是 | 部门 ID |
| name | string | 否 | 部门名称,同应用下唯一 |
| parent_id | number | 否 | 父部门 ID不能为自己或当前部门的子孙 |
| leader_id | number | 否 | 负责人用户 ID |
| status | number | 否 | 状态 |
**请求示例**
```json
{
"id": 1,
"name": "研发技术部",
"parent_id": 0,
"leader_id": 2
}
```
**返回示例**
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
}
}
```
---
## 5. 获取部门列表(分页)
**路径**`POST /mgt/dpt/fetch`
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| workspace | string | 是 | 应用编码 |
| page | number | 否 | 页码 |
| size | number | 否 | 每页条数 |
| keyword | string | 否 | 关键字,模糊匹配部门名称 |
| status | number | 否 | 状态 |
| id | number | 否 | 指定部门 ID |
| parent_id | number | 否 | 按父部门 ID 筛选 |
**请求示例**
```json
{
"workspace": "my_app",
"page": 1,
"size": 10,
"keyword": "技术",
"status": 1
}
```
**返回**FetchRespdata 为部门对象数组,含 id、identity、name、app_id、parent_id
```json
{
"code": 0,
"data": {
"total": 1,
"page": 1,
"size": 10,
"data": [
{
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"name": "技术部",
"app_id": 1,
"parent_id": 0
}
]
}
}
```
---
## 6. 部门列表(下拉/树)
**路径**`POST /mgt/dpt/list`
**说明**:必传 workspace`tree=true` 时返回树形结构,否则返回扁平列表。
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| workspace | string | 是 | 应用编码 |
| keyword | string | 否 | 关键字,模糊匹配部门名称 |
| status | number | 否 | 状态 |
| tree | bool | 否 | true 时返回树形(含 children |
**请求示例(扁平)**
```json
{
"workspace": "my_app",
"keyword": "技术"
}
```
**请求示例(树形)**
```json
{
"workspace": "my_app",
"tree": true
}
```
**返回示例(树形)**
```json
{
"code": 0,
"data": {
"data": [
{
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"name": "技术部",
"app_id": 1,
"parent_id": 0,
"children": [
{
"id": 2,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FBW",
"name": "前端组",
"app_id": 1,
"parent_id": 1,
"children": []
}
]
}
]
}
}
```
---
## 7. 获取部门树
**路径**`POST /mgt/dpt/fetch_tree`
**说明**:必传 workspace返回该应用下完整部门树。
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| workspace | string | 是 | 应用编码 |
**请求示例**
```json
{
"workspace": "my_app"
}
```
**返回**data 为树形部门数组(结构同 list tree=true
---
## 8. 给部门设置权限
**路径**`POST /mgt/dpt/set_pmn`
**请求体**AddPmnRequest
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| workspace | string | 否 | 应用编码,需与部门所属应用一致 |
| id | number | 是 | 部门 ID |
| list | number[] | 是 | 权限 ID 列表,至少 1 个 |
**请求示例**
```json
{
"workspace": "my_app",
"id": 1,
"list": [1, 2, 3]
}
```
---
## 9. 给部门编辑权限(按应用覆盖)
**路径**`POST /mgt/dpt/modify_pmn`
**请求体**:同 set_pmn按应用维度覆盖该部门在该应用下的权限。
---
## 10. 移除部门权限
**路径**`POST /mgt/dpt/del_pmn`
**请求体**:同 set_pmn**list 必填且至少一个元素**,为要移除的权限 ID 列表。
**请求示例**
```json
{
"workspace": "my_app",
"id": 1,
"list": [2, 3]
}
```
---
## 11. 获取部门权限列表(平面)
**路径**`POST /mgt/dpt/pmn`
**说明**:可选 id 指定部门、workspace 过滤应用;**传 workspace 时仅返回该应用下部门权限**。
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 否 | 部门 ID不传则查所有部门 |
| workspace | string | 否 | 应用编码,过滤应用维度 |
**请求示例**
```json
{
"id": 1,
"workspace": "my_app"
}
```
**返回**data 为部门列表,每项含 id、identity、name 及 permissions 数组。
---
## 12. 获取部门权限树
**路径**`POST /mgt/dpt/pmn_tree`
**说明**:部门下权限按父子建树;**传 workspace 时仅返回该应用下部门权限**。
**请求体**:同 pmn 接口id、workspace 可选)。
**返回**data 为部门列表,每项的 permissions 为树形权限结构。
---
## 13. 用户移入部门
**路径**`POST /mgt/dpt/set_user`
**请求体**DptUserRequest
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| dpt_id | number | 是 | 部门 ID大于 0 |
| user_ids | number[] | 是 | 用户 ID 列表,至少 1 个,每个大于 0 |
**请求示例**
```json
{
"dpt_id": 1,
"user_ids": [1, 2, 3]
}
```
**返回示例**
```json
{
"code": 0,
"data": ""
}
```
---
## 14. 用户移出部门
**路径**`POST /mgt/dpt/del_user`
**请求体**:同 set_useruser_ids 为要移出的用户 ID 列表。
**请求示例**
```json
{
"dpt_id": 1,
"user_ids": [2]
}
```
---
## 15. 获取部门下用户列表
**路径**`POST /mgt/dpt/user`
**说明****部门 ID 必传**,避免误用为“查全部部门用户”。
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 是 | 部门 ID |
**请求示例**
```json
{
"id": 1
}
```
**返回**data 为部门列表(通常一条),每项含 id、identity、name 及 users 数组(用户 id、identity、name

308
apps/base/mgt/doc/pmn.md Normal file
View File

@@ -0,0 +1,308 @@
# 权限模块接口文档
基础路径:`POST /mgt/pmn/*`,需 JWT 认证。
---
## 1. 新增权限
**路径**`POST /mgt/pmn/create`
**请求体**PermissionRequest
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| workspace | string | 是 | 应用编码,权限归属应用 |
| title | string | 否 | 权限名称1-100 位 |
| title_en | string | 否 | 权限名称英文,最长 100 |
| code | string | 是 | 权限标识1-100 位,同应用下唯一 |
| description | string | 否 | 权限描述,最长 1000 |
| parent_id | number | 否 | 父级权限 ID0 表示顶级 |
| menu_path | string | 否 | 菜单路径,最长 500 |
| menu_icon | string | 否 | 菜单图标,最长 100 |
| type | number | 否 | 1=菜单 2=按钮 |
| component | string | 否 | 组件路径,最长 255 |
| sort_key | number | 否 | 排序键≥0 |
| is_web_page | bool | 否 | 是否网页 |
| is_new_tab | bool | 否 | 是否新标签页打开 |
| is_full | bool | 否 | 是否单独页面不包含菜单 |
| hide_menu | bool | 否 | 是否隐藏菜单栏 |
| web_url | string | 否 | 网页地址,最长 500 |
**请求示例**
```json
{
"workspace": "my_app",
"title": "用户管理",
"code": "user:manage",
"description": "用户列表与编辑",
"parent_id": 0,
"menu_path": "/system/user",
"type": 1,
"sort_key": 10
}
```
**返回**IdResp
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
}
}
```
---
## 2. 删除权限
**路径**`POST /mgt/pmn/del`
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 是 | 权限 ID |
**请求示例**
```json
{
"id": 1
}
```
**返回示例**
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
}
}
```
---
## 3. 权限详情
**路径**`POST /mgt/pmn/detail`
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 是 | 权限 ID |
**请求示例**
```json
{
"id": 1
}
```
**返回**PermissionRsp
| 参数 | 类型 | 说明 |
|------|------|------|
| id | number | 权限 ID |
| identity | string | 唯一标识 |
| title | string | 权限名称 |
| title_en | string | 英文名称 |
| code | string | 权限标识 |
| description | string | 描述 |
| app_id | number | 应用 ID |
| parent_id | number | 父级 ID |
| menu_path | string | 菜单路径 |
| menu_icon | string | 菜单图标 |
| type | number | 1=菜单 2=按钮 |
| component | string | 组件路径 |
| sort_key | number | 排序 |
| is_web_page | bool | 是否网页 |
| is_new_tab | bool | 是否新标签打开 |
| is_full | bool | 是否单独页 |
| hide_menu | bool | 是否隐藏菜单 |
| web_url | string | 网页地址 |
| created_at | string | 创建时间 |
**返回示例**
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"title": "用户管理",
"title_en": "User Manage",
"code": "user:manage",
"description": "用户列表与编辑",
"app_id": 1,
"parent_id": 0,
"menu_path": "/system/user",
"menu_icon": "user",
"type": 1,
"component": "/system/user/index",
"sort_key": 10,
"is_web_page": false,
"is_new_tab": false,
"is_full": false,
"hide_menu": false,
"web_url": "",
"created_at": "2025-03-16 10:00:00"
}
}
```
---
## 4. 修改权限
**路径**`POST /mgt/pmn/modify`
**请求体**与创建字段一致id 必填,其余为要更新的字段。
**请求示例**
```json
{
"id": 1,
"title": "用户与角色管理",
"sort_key": 5
}
```
**返回示例**
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
}
}
```
---
## 5. 获取权限列表(分页)
**路径**`POST /mgt/pmn/fetch`
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| page | number | 否 | 页码 |
| size | number | 否 | 每页条数 |
| keyword | string | 否 | 关键字,模糊匹配 title/code |
| workspace | string | 否 | 应用编码,只查该应用下权限 |
| status | number | 否 | 状态 |
| id | number | 否 | 指定权限 ID |
| sort_key | number | 否 | 非 0 时按 sort_key 降序 |
**请求示例**
```json
{
"page": 1,
"size": 20,
"workspace": "my_app",
"keyword": "用户",
"status": 1
}
```
**返回**FetchRespdata 为 PermissionRsp 数组):
```json
{
"code": 0,
"data": {
"total": 1,
"page": 1,
"size": 20,
"data": [
{
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"title": "用户管理",
"code": "user:manage",
"app_id": 1,
"parent_id": 0,
"sort_key": 10,
"type": 1,
"created_at": "2025-03-16 10:00:00"
}
]
}
}
```
---
## 6. 权限排序
**路径**`POST /mgt/pmn/sort`
**请求体**:数组,每项为 SortPmnRequest。
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| pmn_id | number | 是 | 权限 ID大于 0 |
| sort_key | number | 否 | 新排序序号≥0 |
**请求示例**
```json
[
{ "pmn_id": 1, "sort_key": 0 },
{ "pmn_id": 2, "sort_key": 1 },
{ "pmn_id": 3, "sort_key": 2 }
]
```
**返回示例**
```json
{
"code": 0,
"data": ""
}
```
---
## 7. 获取权限关联用户列表
**路径**`POST /mgt/pmn/user`
**请求体**FetchBaseid 为权限 ID。
**请求示例**
```json
{
"id": 1
}
```
**返回**data 为拥有该权限的用户列表。
---
## 8. 获取权限关联角色列表
**路径**`POST /mgt/pmn/role`
**请求体**同上id 为权限 ID。
**返回**data 为拥有该权限的角色列表。

169
apps/base/mgt/doc/pub.md Normal file
View File

@@ -0,0 +1,169 @@
# 公开接口文档(免鉴权)
基础路径:`/mgt/`,以下接口**不需要** JWT 认证。
---
## 1. 登录
**路径**`POST /mgt/login`
**说明**:支持账号密码登录或 AppId/AppKey 登录,二选一。
**请求体**LoginRequest
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| account | string | 否 | 账号(与 password 一起使用) |
| password | string | 否 | 密码 |
| phone | string | 否 | 手机号,若使用需符合 phone 格式 |
| phone_code | string | 否 | 手机验证码 |
| workspace | string | 否 | 应用 workspace |
| app_id | string | 否 | 应用 ID与 app_key 一起使用) |
| app_key | string | 否 | 应用密钥 |
**约束**`account + password``app_id + app_key` 必须提供一组。
**请求示例(账号密码)**
```json
{
"account": "zhangsan",
"password": "abc12345",
"workspace": "my_app"
}
```
**请求示例(应用密钥)**
```json
{
"app_id": "my_app",
"app_key": "secret_key_xxx"
}
```
**返回**LoginResp
| 参数 | 类型 | 说明 |
|------|------|------|
| token | string | JWT后续请求放在 Header Authorization |
| user_id | number | 用户 ID |
| identity | string | 用户唯一标识 |
| account | string | 账号 |
| name | string | 姓名 |
| phone | string | 手机号 |
| email | string | 邮箱 |
| avatar | string | 头像 |
**返回示例**
```json
{
"code": 0,
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user_id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"account": "zhangsan",
"name": "张三",
"phone": "13800138000",
"email": "zhangsan@example.com",
"avatar": "https://example.com/avatar.png"
}
}
```
---
## 2. 刷新 Token
**路径**`POST /mgt/refresh`
**说明**:基于当前请求中的 JWT 签发新 token。通常需在 Header 中带有效 Authorization。
**请求体**:无,或空 JSON `{}`
**返回**
| 参数 | 类型 | 说明 |
|------|------|------|
| token | string | 新的 JWT |
**返回示例**
```json
{
"code": 0,
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
}
```
---
## 3. 重置密码(短信验证码)
**路径**`POST /mgt/reset`
**请求体**ForgetPwdRequest
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| account | string | 是 | 账号 |
| code | string | 是 | 短信验证码 |
| password | string | 是 | 新密码,最少 6 位 |
| phone | string | 是 | 手机号,需符合 phone 格式 |
**请求示例**
```json
{
"account": "zhangsan",
"code": "123456",
"password": "newpass123",
"phone": "13800138000"
}
```
**返回示例**
```json
{
"code": 0,
"data": "密码重置成功"
}
```
---
## 4. 健康检查 Ping
**路径**`GET /mgt/ping`
**说明**:无需请求体,用于健康检查。
**返回示例**
```json
{
"message": "Pong"
}
```
---
## 5. Session 演示
**路径**`GET /mgt/session`
**说明**Session 示例接口,会写入并读取 session。
**返回示例**
```json
{
"message": "Pong"
}
```

275
apps/base/mgt/doc/role.md Normal file
View File

@@ -0,0 +1,275 @@
# 角色模块接口文档
基础路径:`POST /mgt/role/*`,需 JWT 认证。
---
## 1. 新增角色
**路径**`POST /mgt/role/create`
**请求体**RoleReq
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| name | string | 是 | 角色名称1-100 位 |
| description | string | 否 | 角色描述,最长 1000 |
**请求示例**
```json
{
"name": "管理员",
"description": "系统管理员,拥有全部权限"
}
```
**返回**IdResp
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
}
}
```
---
## 2. 删除角色
**路径**`POST /mgt/role/del`
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 是 | 角色 ID |
**请求示例**
```json
{
"id": 1
}
```
**返回示例**
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
}
}
```
---
## 3. 角色详情
**路径**`POST /mgt/role/detail`
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 是 | 角色 ID |
**请求示例**
```json
{
"id": 1
}
```
**返回**data 为角色对象id、identity、name、description、status、created_at 等)。
**返回示例**
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"name": "管理员",
"description": "系统管理员,拥有全部权限",
"status": 1,
"created_at": "2025-03-16 10:00:00"
}
}
```
---
## 4. 修改角色
**路径**`POST /mgt/role/modify`
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 是 | 角色 ID |
| name | string | 否 | 角色名称 |
| description | string | 否 | 角色描述 |
| status | number | 否 | 状态 |
**请求示例**
```json
{
"id": 1,
"name": "超级管理员",
"description": "超级管理员角色"
}
```
**返回示例**
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
}
}
```
---
## 5. 获取角色列表(分页)
**路径**`POST /mgt/role/fetch`
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| page | number | 否 | 页码 |
| size | number | 否 | 每页条数 |
| keyword | string | 否 | 关键字,模糊匹配名称 |
| status | number | 否 | 状态 |
**请求示例**
```json
{
"page": 1,
"size": 10,
"keyword": "管理",
"status": 1
}
```
**返回**FetchResp
```json
{
"code": 0,
"data": {
"total": 1,
"page": 1,
"size": 10,
"data": [
{
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"name": "管理员",
"description": "系统管理员,拥有全部权限",
"status": 1,
"created_at": "2025-03-16 10:00:00"
}
]
}
}
```
---
## 6. 获取角色用户列表
**路径**`POST /mgt/role/user`
**请求体**FetchBaseid 为角色 ID。
**请求示例**
```json
{
"id": 1
}
```
---
## 7. 获取角色应用列表
**路径**`POST /mgt/role/app`
**请求体**:同上。
---
## 8. 给角色设置权限
**路径**`POST /mgt/role/set_pmn`
**请求体**AddPmnRequest
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| workspace | string | 否 | 应用编码 |
| id | number | 是 | 角色 ID |
| list | number[] | 是 | 权限 ID 列表,至少 1 个 |
**请求示例**
```json
{
"workspace": "my_app",
"id": 1,
"list": [1, 2, 3]
}
```
---
## 9. 给角色编辑权限(按应用覆盖)
**路径**`POST /mgt/role/modify_pmn`
**请求体**:同 set_pmn。
---
## 10. 给角色移除权限
**路径**`POST /mgt/role/del_pmn`
**请求体**:同 set_pmnlist 为要移除的权限 ID 列表。
---
## 11. 获取角色权限列表(平面)
**路径**`POST /mgt/role/pmn`
**请求体**FetchBaseid 为角色 ID可选 workspace 过滤应用。
---
## 12. 获取角色权限树(角色->应用->权限)
**路径**`POST /mgt/role/pmn_tree`
**请求体**:同上。
**返回**data 为按应用聚合的权限树。

426
apps/base/mgt/doc/user.md Normal file
View File

@@ -0,0 +1,426 @@
# 用户模块接口文档
基础路径:`POST /mgt/user/*`,需 JWT 认证。
---
## 1. 新增用户
**路径**`POST /mgt/user/create`
**请求体**UserRequest
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| account | string | 是 | 账户3-50 位,创建时必填 |
| phone | string | 是 | 手机号,创建时必填 |
| password | string | 是 | 密码6-50 位,创建时必填 |
| name | string | 否 | 名称,最长 100 |
| email | string | 否 | 邮箱 |
| avatar | string | 否 | 头像 URL最长 500 |
| roles | string | 否 | 角色(预留) |
**请求示例**
```json
{
"account": "zhangsan",
"phone": "13800138000",
"password": "abc12345",
"name": "张三",
"email": "zhangsan@example.com"
}
```
**返回**IdResp
| 参数 | 类型 | 说明 |
|------|------|------|
| id | number | 用户 ID |
| identity | string | 用户唯一标识 |
**返回示例**
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
}
}
```
---
## 2. 删除用户
**路径**`POST /mgt/user/del`
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 是 | 用户 ID |
**请求示例**
```json
{
"id": 1
}
```
**返回示例**
```json
{
"code": 0,
"data": {
"id": 1,
"identity": ""
}
}
```
---
## 3. 用户详情
**路径**`POST /mgt/user/detail`
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 是 | 用户 ID |
**请求示例**
```json
{
"id": 1
}
```
**返回**UserResp
| 参数 | 类型 | 说明 |
|------|------|------|
| id | number | 用户 ID |
| identity | string | 唯一标识 |
| account | string | 账户 |
| name | string | 姓名 |
| phone | string | 手机号 |
| email | string | 邮箱 |
| avatar | string | 头像 |
| status | number | 状态 |
| created_at | string | 创建时间 |
**返回示例**
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"account": "zhangsan",
"name": "张三",
"phone": "13800138000",
"email": "zhangsan@example.com",
"avatar": "https://example.com/avatar.png",
"status": 1,
"created_at": "2025-03-16 10:00:00"
}
}
```
---
## 4. 修改用户
**路径**`POST /mgt/user/modify`
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | number | 是 | 用户 ID |
| name | string | 否 | 名称 |
| phone | string | 否 | 手机号 |
| email | string | 否 | 邮箱 |
| avatar | string | 否 | 头像 URL |
| password | string | 否 | 新密码6-50 位 |
| status | number | 否 | 状态 |
**请求示例**
```json
{
"id": 1,
"name": "张三丰",
"phone": "13900139000"
}
```
**返回示例**
```json
{
"code": 0,
"data": {
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
}
}
```
---
## 5. 获取用户列表(分页)
**路径**`POST /mgt/user/fetch`
**请求体**(继承 FetchBase
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| page | number | 否 | 页码,默认 1 |
| size | number | 否 | 每页条数 |
| keyword | string | 否 | 关键字,模糊匹配姓名/账户/手机号 |
| status | number | 否 | 状态筛选 |
**请求示例**
```json
{
"page": 1,
"size": 10,
"keyword": "张",
"status": 1
}
```
**返回**FetchRespdata 为 UserResp 数组):
| 参数 | 类型 | 说明 |
|------|------|------|
| total | number | 总条数 |
| page | number | 当前页 |
| size | number | 每页条数 |
| data | array | 用户列表 |
**返回示例**
```json
{
"code": 0,
"data": {
"total": 2,
"page": 1,
"size": 10,
"data": [
{
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"account": "zhangsan",
"name": "张三",
"phone": "13800138000",
"email": "zhangsan@example.com",
"avatar": "",
"status": 1,
"created_at": "2025-03-16 10:00:00"
}
]
}
}
```
---
## 6. 用户列表(下拉,不分页)
**路径**`POST /mgt/user/list`
**说明**:按应用编码 workspace 查询该应用下用户,用于下拉选择。
**请求体**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| workspace | string | 是 | 应用编码 |
| keyword | string | 否 | 关键字,模糊匹配姓名 |
| status | number | 否 | 状态 |
**请求示例**
```json
{
"workspace": "my_app",
"keyword": "张"
}
```
**返回**FetchRespdata 为 UserResp 数组,无分页字段):
```json
{
"code": 0,
"data": {
"data": [
{
"id": 1,
"identity": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"account": "zhangsan",
"name": "张三",
"phone": "13800138000",
"email": "zhangsan@example.com",
"avatar": "",
"status": 1,
"created_at": "2025-03-16 10:00:00"
}
]
}
}
```
---
## 7. 给用户设置角色
**路径**`POST /mgt/user/set_role`
**请求体**UserRoleRequest
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| user_id | number | 是 | 用户 ID大于 0 |
| role_id | number[] | 是 | 角色 ID 列表,至少 1 个,每个大于 0 |
**请求示例**
```json
{
"user_id": 1,
"role_id": [1, 2]
}
```
**返回示例**
```json
{
"code": 0,
"data": ""
}
```
---
## 8. 给用户移除角色
**路径**`POST /mgt/user/del_role`
**请求体**:同 set_roleuser_id + role_id 数组。
**请求示例**
```json
{
"user_id": 1,
"role_id": [2]
}
```
---
## 9. 获取用户角色列表
**路径**`POST /mgt/user/role`
**请求体**FetchBase传 id 表示用户 ID。
**请求示例**
```json
{
"id": 1
}
```
**返回**data 为角色列表(含 id、identity、name 等)。
---
## 10. 给用户设置权限
**路径**`POST /mgt/user/set_pmn`
**请求体**AddPmnRequest
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| workspace | string | 否 | 应用编码 |
| id | number | 是 | 用户 ID |
| list | number[] | 是 | 权限 ID 列表,至少 1 个 |
**请求示例**
```json
{
"workspace": "my_app",
"id": 1,
"list": [1, 2, 3]
}
```
---
## 11. 给用户编辑权限(按应用覆盖)
**路径**`POST /mgt/user/modify_pmn`
**请求体**:同 set_pmn按应用维度覆盖该用户在该应用下的权限。
---
## 12. 给用户移除权限
**路径**`POST /mgt/user/del_pmn`
**请求体**:同 set_pmnlist 为要移除的权限 ID 列表。
---
## 13. 获取用户应用列表
**路径**`POST /mgt/user/app`
**请求体**FetchBaseid 为用户 ID。
**请求示例**
```json
{
"id": 1
}
```
---
## 14. 获取用户权限列表(平面)
**路径**`POST /mgt/user/pmn`
**请求体**FetchBaseid 为用户 ID可选 workspace 过滤应用。
---
## 15. 获取用户权限树(用户->应用->权限)
**路径**`POST /mgt/user/pmn_tree`
**请求体**:同上。
**返回**data 为按应用聚合的权限树结构。