coder-common-thin-backend/api/user/用户管理API.md
Leo aea2b1fbd7 docs: 新增完整的API接口文档
- 添加认证相关API文档(登录认证、验证码)
- 添加权限管理API文档(菜单管理、角色管理)
- 添加系统管理API文档(图片管理、文件管理、登录日志)
- 添加用户管理API文档
- 完善项目API文档结构,提升开发体验
2025-07-06 00:54:47 +08:00

19 KiB
Raw Blame History

用户管理API

概述

用户管理模块提供系统用户的增删改查功能,包括用户信息管理、状态控制、密码管理、角色分配等核心功能。

权限说明

用户管理接口需要相应的权限才能访问:

操作 权限码 说明
查询用户列表 system:user:list 查看用户列表权限
新增用户 system:user:add 新增用户权限
修改用户 system:user:edit 修改用户信息权限
删除用户 system:user:remove 删除用户权限
重置密码 system:user:resetPwd 重置用户密码权限
修改状态 system:user:status 修改用户状态权限
分配角色 system:user:role 分配用户角色权限
导入用户 system:user:import 导入用户数据权限
导出用户 system:user:export 导出用户数据权限

接口列表

1. 分页查询用户列表

接口地址: GET /coder/sysLoginUser/listPage

接口描述: 分页查询系统用户列表

是否需要认证: 是

权限要求: system:user:list

请求头:

Authorization: your-token-value

请求参数:

参数名 类型 必填 说明 示例
pageNo Integer 页码 1
pageSize Integer 每页大小 10
loginName String 登录账号 admin
userName String 用户姓名 管理员
userType String 用户类型 1
phone String 手机号码 13800138000
sex String 用户性别 1
userStatus String 用户状态 0
beginTime String 开始时间 2024-01-01
endTime String 结束时间 2024-12-31

响应示例:

{
  "status": 200,
  "msg": "SUCCESS",
  "data": {
    "records": [
      {
        "userId": 1,
        "loginName": "admin",
        "userName": "管理员",
        "userType": "1",
        "email": "admin@example.com",
        "phone": "13800138000",
        "sex": "1",
        "avatar": "/upload/avatar/admin.jpg",
        "userStatus": "0",
        "loginIp": "127.0.0.1",
        "loginTime": "2024-01-01 10:00:00",
        "pwdUpdateTime": "2024-01-01 10:00:00",
        "remark": "系统管理员",
        "createBy": "admin",
        "createTime": "2024-01-01 10:00:00",
        "updateBy": "admin",
        "updateTime": "2024-01-01 10:00:00",
        "roleIds": [1, 2]
      }
    ],
    "total": 1,
    "size": 10,
    "current": 1,
    "pages": 1
  },
  "traceId": "trace-123456"
}

调用示例:

curl -X GET \
  "http://localhost:18099/coder/sysLoginUser/listPage?pageNo=1&pageSize=10&loginName=admin" \
  -H "Authorization: your-token-value"

2. 查询所有用户

接口地址: GET /coder/sysLoginUser/list

接口描述: 查询所有系统用户(不分页)

是否需要认证: 是

权限要求: system:user:list

请求参数: 同分页查询除pageNo、pageSize外

响应示例:

{
  "status": 200,
  "msg": "SUCCESS",
  "data": [
    {
      "userId": 1,
      "loginName": "admin",
      "userName": "管理员",
      // 其他字段...
    }
  ],
  "traceId": "trace-123456"
}

3. 根据ID查询用户

接口地址: GET /coder/sysLoginUser/getById/{id}

接口描述: 根据用户ID查询用户详细信息

是否需要认证: 是

权限要求: system:user:list

路径参数:

参数名 类型 必填 说明
id Long 用户ID

响应示例:

{
  "status": 200,
  "msg": "SUCCESS",
  "data": {
    "userId": 1,
    "loginName": "admin",
    "userName": "管理员",
    "userType": "1",
    "email": "admin@example.com",
    "phone": "13800138000",
    "sex": "1",
    "avatar": "/upload/avatar/admin.jpg",
    "userStatus": "0",
    "loginIp": "127.0.0.1",
    "loginTime": "2024-01-01 10:00:00",
    "pwdUpdateTime": "2024-01-01 10:00:00",
    "remark": "系统管理员",
    "createBy": "admin",
    "createTime": "2024-01-01 10:00:00",
    "updateBy": "admin",
    "updateTime": "2024-01-01 10:00:00",
    "roleIds": [1, 2]
  },
  "traceId": "trace-123456"
}

调用示例:

curl -X GET \
  http://localhost:18099/coder/sysLoginUser/getById/1 \
  -H "Authorization: your-token-value"

4. 新增用户

接口地址: POST /coder/sysLoginUser/add

接口描述: 新增系统用户

是否需要认证: 是

权限要求: system:user:add

请求参数:

{
  "loginName": "newuser",
  "userName": "新用户",
  "password": "123456",
  "userType": "1",
  "email": "newuser@example.com",
  "phone": "13800138001",
  "sex": "1",
  "userStatus": "0",
  "remark": "新用户备注",
  "roleIds": [2]
}

请求参数说明:

参数名 类型 必填 说明 校验规则
loginName String 登录账号 3-16位字母数字
userName String 用户姓名 不能为空
password String 登录密码 不能为空
userType String 用户类型 1-系统用户 2-注册用户
email String 邮箱地址 邮箱格式验证
phone String 手机号码 手机号格式验证
sex String 用户性别 1-男 2-女 3-未知
userStatus String 用户状态 0-启用 1-停用
remark String 备注信息 最长200字符
roleIds Long[] 角色ID数组 有效的角色ID

响应示例:

{
  "status": 200,
  "msg": "SUCCESS",
  "data": "新增成功",
  "traceId": "trace-123456"
}

调用示例:

curl -X POST \
  http://localhost:18099/coder/sysLoginUser/add \
  -H "Content-Type: application/json" \
  -H "Authorization: your-token-value" \
  -d '{
    "loginName": "newuser",
    "userName": "新用户",
    "password": "123456",
    "userType": "1",
    "email": "newuser@example.com",
    "phone": "13800138001",
    "sex": "1",
    "userStatus": "0",
    "remark": "新用户备注",
    "roleIds": [2]
  }'

5. 修改用户信息

接口地址: POST /coder/sysLoginUser/update

接口描述: 修改系统用户信息

是否需要认证: 是

权限要求: system:user:edit

请求参数:

{
  "userId": 1,
  "loginName": "admin",
  "userName": "管理员",
  "userType": "1",
  "email": "admin@example.com",
  "phone": "13800138000",
  "sex": "1",
  "userStatus": "0",
  "remark": "系统管理员",
  "roleIds": [1, 2]
}

请求参数说明:

参数名 类型 必填 说明 校验规则
userId Long 用户ID 必须是有效的用户ID
loginName String 登录账号 3-16位字母数字
userName String 用户姓名 不能为空
userType String 用户类型 1-系统用户 2-注册用户
email String 邮箱地址 邮箱格式验证
phone String 手机号码 手机号格式验证
sex String 用户性别 1-男 2-女 3-未知
userStatus String 用户状态 0-启用 1-停用
remark String 备注信息 最长200字符
roleIds Long[] 角色ID数组 有效的角色ID

响应示例:

{
  "status": 200,
  "msg": "SUCCESS",
  "data": "修改成功",
  "traceId": "trace-123456"
}

调用示例:

curl -X POST \
  http://localhost:18099/coder/sysLoginUser/update \
  -H "Content-Type: application/json" \
  -H "Authorization: your-token-value" \
  -d '{
    "userId": 1,
    "loginName": "admin",
    "userName": "管理员",
    "userType": "1",
    "email": "admin@example.com",
    "phone": "13800138000",
    "sex": "1",
    "userStatus": "0",
    "remark": "系统管理员",
    "roleIds": [1, 2]
  }'

6. 删除用户

接口地址: POST /coder/sysLoginUser/deleteById/{id}

接口描述: 根据ID删除用户

是否需要认证: 是

权限要求: system:user:remove

路径参数:

参数名 类型 必填 说明
id Long 用户ID

响应示例:

{
  "status": 200,
  "msg": "SUCCESS",
  "data": "删除成功",
  "traceId": "trace-123456"
}

调用示例:

curl -X POST \
  http://localhost:18099/coder/sysLoginUser/deleteById/1 \
  -H "Authorization: your-token-value"

7. 批量删除用户

接口地址: POST /coder/sysLoginUser/batchDelete

接口描述: 批量删除用户

是否需要认证: 是

权限要求: system:user:remove

请求参数:

{
  "ids": [1, 2, 3]
}

请求参数说明:

参数名 类型 必填 说明
ids Long[] 用户ID数组

响应示例:

{
  "status": 200,
  "msg": "SUCCESS",
  "data": "删除成功",
  "traceId": "trace-123456"
}

调用示例:

curl -X POST \
  http://localhost:18099/coder/sysLoginUser/batchDelete \
  -H "Content-Type: application/json" \
  -H "Authorization: your-token-value" \
  -d '{
    "ids": [1, 2, 3]
  }'

8. 修改用户状态

接口地址: POST /coder/sysLoginUser/updateStatus/{userId}/{userStatus}

接口描述: 修改用户状态(启用/停用)

是否需要认证: 是

权限要求: system:user:status

路径参数:

参数名 类型 必填 说明
userId Long 用户ID
userStatus String 用户状态0-启用 1-停用)

响应示例:

{
  "status": 200,
  "msg": "SUCCESS",
  "data": "修改成功",
  "traceId": "trace-123456"
}

调用示例:

curl -X POST \
  http://localhost:18099/coder/sysLoginUser/updateStatus/1/0 \
  -H "Authorization: your-token-value"

9. 获取登录用户信息

接口地址: GET /coder/sysLoginUser/getLoginUserInformation

接口描述: 获取当前登录用户的详细信息

是否需要认证: 是

权限要求: 无(已登录用户可访问)

请求参数: 无

响应示例:

{
  "status": 200,
  "msg": "SUCCESS",
  "data": {
    "userId": 1,
    "loginName": "admin",
    "userName": "管理员",
    "userType": "1",
    "email": "admin@example.com",
    "phone": "13800138000",
    "sex": "1",
    "avatar": "/upload/avatar/admin.jpg",
    "userStatus": "0",
    "loginIp": "127.0.0.1",
    "loginTime": "2024-01-01 10:00:00",
    "pwdUpdateTime": "2024-01-01 10:00:00",
    "remark": "系统管理员",
    "createBy": "admin",
    "createTime": "2024-01-01 10:00:00",
    "updateBy": "admin",
    "updateTime": "2024-01-01 10:00:00",
    "roleIds": [1, 2],
    "roles": [
      {
        "roleId": 1,
        "roleName": "超级管理员",
        "roleCode": "admin"
      }
    ],
    "permissions": [
      "*:*:*"
    ]
  },
  "traceId": "trace-123456"
}

调用示例:

curl -X GET \
  http://localhost:18099/coder/sysLoginUser/getLoginUserInformation \
  -H "Authorization: your-token-value"

10. 获取个人资料

接口地址: GET /coder/sysLoginUser/getPersonalData

接口描述: 获取当前用户的个人资料

是否需要认证: 是

权限要求: 无(已登录用户可访问)

请求参数: 无

响应示例:

{
  "status": 200,
  "msg": "SUCCESS",
  "data": {
    "userId": 1,
    "loginName": "admin",
    "userName": "管理员",
    "email": "admin@example.com",
    "phone": "13800138000",
    "sex": "1",
    "avatar": "/upload/avatar/admin.jpg",
    "remark": "系统管理员"
  },
  "traceId": "trace-123456"
}

调用示例:

curl -X GET \
  http://localhost:18099/coder/sysLoginUser/getPersonalData \
  -H "Authorization: your-token-value"

11. 修改个人资料

接口地址: POST /coder/sysLoginUser/updateBasicData

接口描述: 修改当前用户的个人资料

是否需要认证: 是

权限要求: 无(已登录用户可访问)

请求参数:

{
  "userName": "管理员",
  "email": "admin@example.com",
  "phone": "13800138000",
  "sex": "1",
  "avatar": "/upload/avatar/admin.jpg",
  "remark": "系统管理员"
}

请求参数说明:

参数名 类型 必填 说明 校验规则
userName String 用户姓名 不能为空
email String 邮箱地址 邮箱格式验证
phone String 手机号码 手机号格式验证
sex String 用户性别 1-男 2-女 3-未知
avatar String 头像地址 有效的文件路径
remark String 备注信息 最长200字符

响应示例:

{
  "status": 200,
  "msg": "SUCCESS",
  "data": "修改成功",
  "traceId": "trace-123456"
}

调用示例:

curl -X POST \
  http://localhost:18099/coder/sysLoginUser/updateBasicData \
  -H "Content-Type: application/json" \
  -H "Authorization: your-token-value" \
  -d '{
    "userName": "管理员",
    "email": "admin@example.com",
    "phone": "13800138000",
    "sex": "1",
    "avatar": "/upload/avatar/admin.jpg",
    "remark": "系统管理员"
  }'

12. 修改登录密码

接口地址: POST /coder/sysLoginUser/updateUserPwd

接口描述: 修改当前用户的登录密码

是否需要认证: 是

权限要求: 无(已登录用户可访问)

请求参数:

{
  "oldPassword": "123456",
  "newPassword": "654321",
  "confirmPassword": "654321"
}

请求参数说明:

参数名 类型 必填 说明 校验规则
oldPassword String 原密码 不能为空
newPassword String 新密码 不能为空
confirmPassword String 确认密码 必须与新密码一致

响应示例:

{
  "status": 200,
  "msg": "SUCCESS",
  "data": "修改成功",
  "traceId": "trace-123456"
}

调用示例:

curl -X POST \
  http://localhost:18099/coder/sysLoginUser/updateUserPwd \
  -H "Content-Type: application/json" \
  -H "Authorization: your-token-value" \
  -d '{
    "oldPassword": "123456",
    "newPassword": "654321",
    "confirmPassword": "654321"
  }'

13. 重置用户密码

接口地址: POST /coder/sysLoginUser/resetPwd/{id}/{password}

接口描述: 重置指定用户的密码

是否需要认证: 是

权限要求: system:user:resetPwd

路径参数:

参数名 类型 必填 说明
id Long 用户ID
password String 新密码

响应示例:

{
  "status": 200,
  "msg": "SUCCESS",
  "data": "重置成功",
  "traceId": "trace-123456"
}

调用示例:

curl -X POST \
  http://localhost:18099/coder/sysLoginUser/resetPwd/1/123456 \
  -H "Authorization: your-token-value"

14. 下载用户导入模板

接口地址: GET /coder/sysLoginUser/downloadExcelTemplate

接口描述: 下载用户批量导入的Excel模板

是否需要认证: 是

权限要求: system:user:import

请求参数: 无

响应: Excel文件下载

调用示例:

curl -X GET \
  http://localhost:18099/coder/sysLoginUser/downloadExcelTemplate \
  -H "Authorization: your-token-value" \
  -o user_template.xlsx

15. 导出用户数据

接口地址: GET /coder/sysLoginUser/exportExcelData

接口描述: 导出用户数据到Excel

是否需要认证: 是

权限要求: system:user:export

请求参数: 同查询参数

响应: Excel文件下载

调用示例:

curl -X GET \
  "http://localhost:18099/coder/sysLoginUser/exportExcelData?userStatus=0" \
  -H "Authorization: your-token-value" \
  -o users.xlsx

16. 导入用户数据

接口地址: POST /coder/sysLoginUser/importExcelData

接口描述: 从Excel文件导入用户数据

是否需要认证: 是

权限要求: system:user:import

请求参数: 文件上传

Content-Type: multipart/form-data

请求参数:

参数名 类型 必填 说明
file File Excel文件
updateSupport Boolean 是否更新已存在的用户

响应示例:

{
  "status": 200,
  "msg": "SUCCESS",
  "data": {
    "total": 100,
    "success": 95,
    "failed": 5,
    "message": "导入成功95条失败5条"
  },
  "traceId": "trace-123456"
}

调用示例:

curl -X POST \
  http://localhost:18099/coder/sysLoginUser/importExcelData \
  -H "Authorization: your-token-value" \
  -F "file=@users.xlsx" \
  -F "updateSupport=true"

数据字典

用户类型 (userType)

说明
1 系统用户
2 注册用户
3 微信用户

用户性别 (sex)

说明
1
2
3 未知

用户状态 (userStatus)

说明
0 启用
1 停用

错误码说明

错误码 错误信息 说明
400 账号长度为 3-16 位 登录账号长度不符合要求
400 账号格式为数字以及字母 登录账号格式不正确
400 登录账号不能为空 登录账号为空
400 用户真实姓名不能为空 用户姓名为空
400 用户不存在 用户ID不存在
400 账号已存在 登录账号已被使用
400 手机号已存在 手机号已被使用
400 邮箱已存在 邮箱已被使用
400 不能删除当前用户 不能删除自己的账号
400 不能停用当前用户 不能停用自己的账号
400 原密码错误 修改密码时原密码不正确
400 新密码不能与原密码相同 新密码与原密码一致
400 两次输入的密码不一致 确认密码与新密码不一致
401 当前会话未登录 未登录或Token无效
403 权限不足 没有相应的操作权限
500 系统异常 服务器内部错误

注意事项

  1. 权限验证: 所有用户管理操作都需要相应的权限
  2. 数据校验: 新增和修改用户时会进行数据格式校验
  3. 唯一性约束: 登录账号、手机号、邮箱必须唯一
  4. 密码安全: 密码使用盐值加密存储
  5. 操作日志: 所有用户操作都会记录日志
  6. 批量操作: 批量删除时会跳过超级管理员账号
  7. Excel导入: 支持Excel模板导入用户数据
  8. 角色关联: 用户删除时会自动删除角色关联关系
  9. 会话管理: 用户状态变更时会影响其登录会话
  10. 数据完整性: 删除用户前会检查关联数据