用户体系
用户体系是 RuoYi Office 管理后台的登录身份与组织归属基础。它把“用户、部门、岗位、角色、个人中心、Excel 导入导出”串成一条闭环:用户先归属部门与岗位,再通过角色获得菜单和数据范围,最后在 PC 管理端和后端安全框架中共同生效。
本地实现位置
| 层 | 位置 |
|---|---|
| PC 页面 | ruoyi-office-vben/apps/web-antd/src/views/system/user |
| PC API | ruoyi-office-vben/apps/web-antd/src/api/system/user、src/api/system/permission |
| 后端 Controller | yudao-module-system-server/.../controller/admin/user/UserController.java |
| 个人中心 Controller | .../controller/admin/user/UserProfileController.java |
| 权限分配 Controller | .../controller/admin/permission/PermissionController.java |
能力边界
用户体系面向后台管理员账号,不等同于商城/移动端会员。当前页面使用左右布局:左侧是部门树,右侧是用户表格,表格支持分页查询、新增、编辑、删除、批量删除、导出、导入、重置密码、分配角色和启停状态。
管理端操作说明
部门过滤与用户列表
views/system/user/index.vue 通过 DeptTree 选择部门,将 deptId 合并进 /system/user/page 查询参数。表格列包含用户 ID、账号、姓名、部门、手机号、状态和创建时间。
常用筛选项来自 data.ts:
| 字段 | 用途 |
|---|---|
username | 按登录账号检索 |
nickname | 按用户姓名检索 |
mobile | 按手机号检索 |
createTime | 按创建时间范围检索 |
deptId | 点击左侧部门树后追加 |
新增与编辑用户
新增/编辑表单包含账号、密码、姓名、归属部门、岗位、邮箱、手机号、性别、状态和备注。新增时密码必填,编辑时不在该表单修改密码,应使用“重置密码”。
后端入口:
| 操作 | 接口 | 权限标识 |
|---|---|---|
| 新增用户 | POST /system/user/create | system:user:create |
| 修改用户 | PUT /system/user/update | system:user:update |
| 删除用户 | DELETE /system/user/delete | system:user:delete |
| 批量删除 | DELETE /system/user/delete-list | system:user:delete |
| 修改状态 | PUT /system/user/update-status | system:user:update |
| 重置密码 | PUT /system/user/update-password | system:user:update-password |
分配角色
“分配角色”从 getSimpleRoleList 加载启用角色,通过 /system/permission/assign-user-role 写入用户与角色关系。分配后,用户的菜单、按钮、接口权限会在重新登录或权限缓存刷新后体现。
Excel 导入导出
用户页面内置导入和导出能力:
| 功能 | 后端接口 | 说明 |
|---|---|---|
| 下载模板 | GET /system/user/get-import-template | 输出 用户导入模板.xls |
| 导入用户 | POST /system/user/import | 上传 xls/xlsx,可选择是否覆盖已有用户 |
| 导出用户 | GET /system/user/export-excel | 按当前筛选条件导出 用户数据.xls |
导入字段最终映射到 UserImportExcelVO,建议二开时先保持账号、姓名、部门、手机号、邮箱、性别和状态字段稳定,再扩展自定义字段。
个人中心
个人中心由 /system/user/profile 提供:
| 接口 | 用途 |
|---|---|
GET /system/user/profile/get | 查询当前登录用户、角色、公司、部门和岗位信息 |
PUT /system/user/profile/update | 修改当前用户基本资料 |
PUT /system/user/profile/update-password | 修改当前用户密码 |
UserProfileController#getUserProfile 显式关闭数据权限,避免用户只查看自己信息时因为部门数据范围导致查询不到所属组织。
二开建议
- 不要把会员用户和后台用户混用:后台用户在
system模块,会员用户在member模块,两者登录端、权限模型和数据范围不同。 - 新增字段要同时补齐导入导出:如果给后台用户增加工号、入职日期等字段,需要同步调整 SaveReqVO、RespVO、Excel VO、前端表单和列表列。
- 状态切换要谨慎处理管理员账号:禁用账号会影响登录,生产环境建议保留至少一个可用超级管理员。
- 导入前先校验部门和岗位:模板里的部门、岗位应能映射到当前租户内数据,否则会造成导入失败或组织归属错误。
常见问题
| 现象 | 排查方向 |
|---|---|
| 用户看不到菜单 | 检查是否分配角色、角色是否分配菜单、菜单状态是否启用 |
| 用户只能看到部分数据 | 检查角色的数据权限范围,尤其是自定义部门范围 |
| 导入提示账号重复 | 如果确实要更新已有用户,导入时打开“是否覆盖” |
| 修改用户后权限没立刻变化 | 让用户重新登录,或检查权限缓存刷新策略 |
