You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

469 lines
11 KiB

meta {
name: 分配用户角色
type: http
seq: 3
tags: [
generated
]
}
post {
url: {{baseUrl}}/api/system/users/assign-roles
body: formUrlEncoded
auth: inherit
}
body:form-urlencoded {
userId: 100
roleIds: 3,4
}
docs {
# 分配用户角色
`POST /api/system/users/assign-roles`
给用户分配角色(全量替换,需 ADMIN 角色)。
## 请求参数
| 参数 | 类型 | 必填 | 默认 | 说明 |
| --- | --- | --- | --- | --- |
| userId | string | 是 | - | 用户ID |
| roleIds | string | 否 | - | 角色ID列表(逗号分隔,全量替换) |
## 请求示例
请求头:Authorization: Bearer {{token}}
Content-Type: application/x-www-form-urlencoded
POST /api/system/users/assign-roles
userId=100&roleIds=3,4
## 响应 data 结构
null
## 响应示例
// 示例数据,字段结构以上表为准,非真实返回
```json
{
"code": 0,
"success": true,
"message": "success",
"data": null
}
```
}
meta {
name: 分配用户部门
type: http
seq: 4
tags: [
generated
]
}
post {
url: {{baseUrl}}/api/system/users/assign-depts
body: formUrlEncoded
auth: inherit
}
body:form-urlencoded {
userId: 100
primaryDeptId: 10
deptIds: 20,21
}
docs {
# 分配用户部门
`POST /api/system/users/assign-depts`
原子设置用户的主部门与全部兼职部门(全量替换)。
## 请求参数
| 参数 | 类型 | 必填 | 默认 | 说明 |
| --- | --- | --- | --- | --- |
| userId | string | 是 | - | 用户ID |
| primaryDeptId | string | 否 | - | 主部门 ID(可空) |
| deptIds | string | 否 | - | 兼职部门 ID 列表(逗号分隔,全量替换) |
## 请求示例
请求头:Authorization: Bearer {{token}}
Content-Type: application/x-www-form-urlencoded
POST /api/system/users/assign-depts
userId=100&primaryDeptId=10&deptIds=20,21
## 响应 data 结构
null
## 响应示例
// 示例数据,字段结构以上表为准,非真实返回
```json
{
"code": 0,
"success": true,
"message": "success",
"data": null
}
```
}
meta {
name: 导出用户列表
type: http
seq: 8
tags: [
generated
]
}
get {
url: {{baseUrl}}/api/system/users/export
body: none
auth: inherit
}
params:query {
keyword: 张
deptId: 10
employmentStatus: active
}
docs {
# 导出用户列表
`GET /api/system/users/export`
导出用户列表(按筛选条件,返回文件信息):按当前筛选条件全量导出 Excel,前端拿 fileId 走既有下载端点。
## 请求参数
| 参数 | 类型 | 必填 | 默认 | 说明 |
| --- | --- | --- | --- | --- |
| current | int | 否 | 1 | 当前页码(导出忽略分页,全量导出) |
| size | int | 否 | 10 | 每页条数(导出忽略) |
| keyword | string | 否 | - | 模糊搜索关键字,匹配列由接口定义 |
| orderBy | string | 否 | - | 排序字段 |
| asc | boolean | 否 | false | 是否升序 |
| deptId | string | 否 | - | 部门 ID,选中节点含全部子孙;null=全公司 |
| employmentStatus | string | 否 | - | 在职状态 active/resigned/unassigned;null=不限 |
| loginFrom | date | 否 | - | 最后登录起(含当天 00:00) |
| loginTo | date | 否 | - | 最后登录讫(含当天 23:59:59) |
## 请求示例
请求头:Authorization: Bearer {{token}}
GET /api/system/users/export?keyword=张&deptId=10&employmentStatus=active
## 响应 data 结构
| 字段 | 类型 | 说明 |
| --- | --- | --- |
| fileId | string | 文件唯一引用凭据(crm_file_info 主键),业务表只存它 |
| originalName | string | 原始文件名 |
| size | long | 文件大小(字节) |
| contentType | string | MIME 类型 |
| bizDomain | string | 业务域 |
| creatorId | string | 上传者(无登录态的内部上传为 null) |
| createTime | datetime | 生成时间 |
| thumbnailStatus | string | 缩略图状态(PENDING/READY/FAILED/UNSUPPORTED) |
## 响应示例
meta {
name: 批量分配角色
type: http
seq: 5
tags: [
generated
]
}
post {
url: {{baseUrl}}/api/system/users/assign-roles-batch
body: formUrlEncoded
auth: inherit
}
body:form-urlencoded {
userIds: 2001,2002
roleIds: 3,4
}
docs {
# 批量分配角色
`POST /api/system/users/assign-roles-batch`
批量分配角色(多用户增量,不覆盖已有角色):只增不删不覆盖,与单用户全量替换的 assign-roles 互补。
## 请求参数
| 参数 | 类型 | 必填 | 默认 | 说明 |
| --- | --- | --- | --- | --- |
| userIds | string | 是 | - | 用户 ID 串,逗号分隔 |
| roleIds | string | 是 | - | 角色 ID 串,逗号分隔 |
## 请求示例
请求头:Authorization: Bearer {{token}}
Content-Type: application/x-www-form-urlencoded
POST /api/system/users/assign-roles-batch
userIds=2001,2002&roleIds=3,4
## 响应 data 结构
null
## 响应示例
```json
{
"code": 0,
"success": true,
"message": "success",
"data": null
}
```
}
meta {
name: 用户分页
type: http
seq: 1
tags: [
generated
]
}
post {
url: {{baseUrl}}/api/system/users/page
body: formUrlEncoded
auth: inherit
}
body:form-urlencoded {
current: 1
size: 10
keyword: 张
orderBy: createTime
asc: false
deptId: 10
employmentStatus: active
loginFrom: 2026-08-01
loginTo: 2026-08-14
}
docs {
# 用户分页
`POST /api/system/users/page`
用户管理-用户列表分页(需 ADMIN 角色)。
## 请求参数
| 参数 | 类型 | 必填 | 默认 | 说明 |
| --- | --- | --- | --- | --- |
| current | int | 否 | 1 | 当前页码,从 1 开始 |
| size | int | 否 | 10 | 每页条数,上限 500 |
| keyword | string | 否 | - | 模糊搜索关键字,匹配列由接口定义 |
| orderBy | string | 否 | - | 排序字段,驼峰或下划线均可 |
| asc | boolean | 否 | false | 是否升序(默认新数据在前) |
| deptId | string | 否 | - | 部门ID,选中节点含全部子孙;null=全公司 |
| employmentStatus | string | 否 | - | 在职状态 active/resigned/unassigned;null=不限 |
| loginFrom | date | 否 | - | 最后登录起(含当天 00:00) |
| loginTo | date | 否 | - | 最后登录讫(含当天 23:59:59) |
## 请求示例
请求头:Authorization: Bearer {{token}}
Content-Type: application/x-www-form-urlencoded
POST /api/system/users/page
current=1&size=10&keyword=张&orderBy=createTime&asc=false&deptId=10&employmentStatus=active&loginFrom=2026-08-01&loginTo=2026-08-14
## 响应 data 结构
| 字段 | 类型 | 说明 |
| --- | --- | --- |
| content[] | array<object> | 用户列表 |
| id | string | 用户ID |
meta {
name: 用户统计
type: http
seq: 2
tags: [
generated
]
}
get {
url: {{baseUrl}}/api/system/users/stats
body: none
auth: inherit
}
params:query {
deptId: 10
}
docs {
# 用户统计
`GET /api/system/users/stats`
用户管理-四指标卡统计(需 ADMIN 角色);口径跟随选中部门子树。
## 请求参数
| 参数 | 类型 | 必填 | 默认 | 说明 |
| --- | --- | --- | --- | --- |
| deptId | string | 否 | - | 部门ID(口径含子孙);不传=全公司 |
## 请求示例
请求头:Authorization: Bearer {{token}}
GET /api/system/users/stats?deptId=10
## 响应 data 结构
| 字段 | 类型 | 说明 |
| --- | --- | --- |
| deptCount | int | 部门数(选中节点及其子孙) |
| activeCount | long | 在职用户数 |
| resignedCount | long | 离职用户数 |
| unassignedCount | long | 待分配用户数(在职且无角色) |
## 响应示例
// 示例数据,字段结构以上表为准,非真实返回
```json
{
"code": 0,
"success": true,
"message": "success",
"data": {
"deptCount": 5,
"activeCount": 20,
"resignedCount": 2,
"unassignedCount": 3
}
}
meta {
name: 移交执行
type: http
seq: 7
tags: [
generated
]
}
post {
url: {{baseUrl}}/api/system/users/transfer
body: formUrlEncoded
auth: inherit
}
body:form-urlencoded {
userId: 1001
receiverId: 1002
}
docs {
# 移交执行
`POST /api/system/users/transfer`
移交执行(全量替换归属+全局快照):全部业务域归属一次性换主,全局快照落 sys_user_transfer_log。
## 请求参数
| 参数 | 类型 | 必填 | 默认 | 说明 |
| --- | --- | --- | --- | --- |
| userId | string | 是 | - | 移交方用户 ID |
| receiverId | string | 是 | - | 接收人用户 ID |
## 请求示例
请求头:Authorization: Bearer {{token}}
Content-Type: application/x-www-form-urlencoded
POST /api/system/users/transfer
userId=1001&receiverId=1002
## 响应 data 结构
| 字段 | 类型 | 说明 |
| --- | --- | --- |
| fromUserId | string | 移交方用户 ID |
| toUserId | string | 接收人用户 ID |
| domainCounts | array<object> | 各域移交计数(元素结构同移交预览行) |
| domainCounts[].domain | string | 域标识 lead/customer/opportunity/project |
| domainCounts[].domainName | string | 域展示名(线索/客户/商机/项目) |
| domainCounts[].count | long | 该域移交资产数 |
| transferTime | string | 移交时间(全局快照落库时间) |
## 响应示例
// 示例数据,字段结构以上表为准,非真实返回
```json
{
"code": 0,
"success": true,
"message": "success",
meta {
name: 移交预览
type: http
seq: 6
tags: [
generated
]
}
get {
url: {{baseUrl}}/api/system/users/transfer-preview
body: none
auth: inherit
}
params:query {
id: 1001
}
docs {
# 移交预览
`GET /api/system/users/transfer-preview`
移交预览(各域归属资产计数):分域统计移交方名下客户/商机/线索/项目计数。
## 请求参数
| 参数 | 类型 | 必填 | 默认 | 说明 |
| --- | --- | --- | --- | --- |
| id | string | 是 | - | 移交方用户 ID |
## 请求示例
请求头:Authorization: Bearer {{token}}
GET /api/system/users/transfer-preview?id=1001
## 响应 data 结构
| 字段 | 类型 | 说明 |
| --- | --- | --- |
| [].domain | string | 域标识 lead/customer/opportunity/project |
| [].domainName | string | 域展示名(线索/客户/商机/项目) |
| [].count | long | 该域名下归属资产数 |
## 响应示例
// 示例数据,字段结构以上表为准,非真实返回
```json
{
"code": 0,
"success": true,
"message": "success",
"data": [
{
"domain": "customer",
"domainName": "客户",
"count": 12
}
]
}