用户管理
用户管理提供 B 端系统用户的完整 CRUD 操作,以及用户-角色、用户-用户组的分配管理。
功能说明
- 用户分页查询
- 用户新增 / 修改 / 删除(支持批量)
- 用户详情查看
- 用户角色分配
- 用户用户组分配
- 数据导出(Excel)
- 导入模板下载
- 数据导入(Excel)
API 接口
所有接口均需要 sys:user:* 权限。
| 方法 | 路径 | 权限标识 | 说明 |
|---|---|---|---|
| GET | /api/v1/sys/user/page | sys:user:page | 获取用户分页 |
| POST | /api/v1/sys/user/create | sys:user:create | 添加用户 |
| POST | /api/v1/sys/user/modify | sys:user:modify | 编辑用户 |
| POST | /api/v1/sys/user/remove | sys:user:remove | 删除用户 |
| GET | /api/v1/sys/user/detail | sys:user:detail | 获取用户详情 |
| GET | /api/v1/sys/user/export | sys:user:export | 导出用户数据 |
| GET | /api/v1/sys/user/template | sys:user:template | 下载导入模板 |
| POST | /api/v1/sys/user/import | sys:user:import | 导入用户数据 |
| POST | /api/v1/sys/user/grant-role | sys:user:grant-role | 分配用户角色 |
| POST | /api/v1/sys/user/grant-group | sys:user:grant-group | 分配用户用户组 |
| GET | /api/v1/sys/user/own-roles | sys:user:own-roles | 获取用户已分配的角色 ID 列表 |
| GET | /api/v1/sys/user/own-groups | sys:user:own-groups | 获取用户已分配的用户组 ID 列表 |
数据模型
sys_user 表主要字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| id | VARCHAR(32) | 主键(雪花ID) |
| account | VARCHAR(32) | 账号 |
| password | VARCHAR(255) | bcrypt 哈希密码 |
| nickname | VARCHAR(32) | 昵称 |
| avatar | VARCHAR(255) | 头像 |
| motto | VARCHAR(32) | 座右铭 |
| gender | VARCHAR(8) | 性别 |
| birthday | DATE | 生日 |
| VARCHAR(64) | 电子邮箱 | |
| phone | VARCHAR(32) | 手机号 |
| org_id | VARCHAR(32) | 所属组织 ID |
| position_id | VARCHAR(32) | 所属职位 ID |
| status | VARCHAR(16) | 状态(ACTIVE / DISABLED) |
| last_login_at | DATETIME | 最后登录时间 |
| last_login_ip | VARCHAR(64) | 最后登录 IP |
| login_count | INT | 登录次数 |
路由分配
分配用户角色
json
POST /api/v1/sys/user/grant-role
{
"userId": "用户ID",
"roleIds": ["角色ID1", "角色ID2"],
"scope": "ALL",
"customScopeGroupIds": null
}分配用户用户组
json
POST /api/v1/sys/user/grant-group
{
"userId": "用户ID",
"groupIds": ["用户组ID1", "用户组ID2"]
}RBAC 关系表
用户参与 RBAC 的关联表:
| 表 | 说明 | 作用 |
|---|---|---|
ral_user_role | 用户-角色关联 | 每个用户可关联多个角色,每个角色有数据范围覆盖 |
ral_user_group | 用户-用户组关联 | 每个用户可属于多个用户组 |
ral_user_permission | 用户-权限直关联 | 用户可跳过角色直接被授予权限 |