Skip to content

用户管理 ​

用户管理模块负责管理端的用户:带部门树的分页查询、创建 / 编辑 / 软删除、启用 / 停用、重置密码、分配角色与导出。

功能特性 ​

  • 用户列表:分页、筛选、部门树;查询按调用者的数据范围执行
  • 创建、编辑、删除用户(删除为软删除)
  • 启用 / 停用账号
  • 重置密码
  • 分配角色(每个用户一个角色)
  • 导出为 xlsx

数据模型 ​

SysUser(sys_user),另有所有实体共有的审计字段(creatorId、createTime、updaterId、updateTime、deleted):

字段类型描述
userIdLong主键
roleIdLong用户的角色(0 表示无角色)
deptIdLong所属部门
usernameString登录名——2~64 位字母、数字、_、. 或 -
nicknameString昵称
userTypeInteger用户类型
emailString邮箱(填写时校验格式)
phoneNumberString手机号(填写时须为 1[3-9] 开头的 11 位号码)
sexInteger0 男,1 女,2 未知
avatarString头像地址
passwordStringBCrypt 哈希
statusInteger1 正常;其他值都不能登录(后端定义了 2 停用、3 冻结;管理端的开关写入 0)
loginIp / loginDateString / DateTime最近一次成功登录
isAdminBoolean超级管理员
remarkString备注

API 接口 ​

UserController 与 UserExportController(server-admin)。权威清单是 ArchForge/spec/openapi.yaml。

方法接口路径权限描述
POST/admin/usersystem:user:list分页查询(按数据范围过滤)
POST/admin/user/createsystem:user:add创建用户
PUT/admin/user/updatesystem:user:edit更新资料(传了状态则一并更新)
POST/admin/user/deletesystem:user:remove软删除用户
POST/admin/user/statussystem:user:edit修改状态
POST/admin/user/reset-passwordsystem:user:resetPwd设置新密码
POST/admin/user/assign-rolesystem:user:edit分配角色(取 ids 中的第一个)
POST/admin/user/list-role-idssystem:user:query用户的角色 id(列表形式)
GET/admin/user/exportsystem:user:export导出用户为 xlsx

旧的 RESTful /system/user/* 接口已不存在。

部门树筛选 ​

用户页左侧是部门树(POST /admin/dept,拥有 system:dept:list、system:user:list、system:role:list 任一权限即可)。点击节点即按该部门筛选列表。

登录规则与密码安全 ​

  • 登录管理端需要 status = 1、未删除,并且有角色——超级管理员(isAdmin)除外。否则拒绝登录。
  • 登录页用服务端公钥(getConfig → rsaPublicKey)以 RSA-OAEP / SHA-256 加密密码;服务端用 arch-forge.rsa-private-key 解密后与 BCrypt 哈希比对。见认证鉴权。
  • 创建用户与重置密码时,新密码放在请求体里(请使用 HTTPS),服务端只保存 BCrypt 哈希。

服务层 ​

UserController → AdminUserService(server-admin,负责 DTO 转换与数据范围)→ SysUserService(admin-user 的 api)。SysUserService 校验登录名、邮箱、手机号格式并补默认值(status = 1、roleId = 0)。查询使用 JPA Specification(QueryHelp);Repository 属于 admin-user 模块内部(ADR-0010)。

相关页面 ​

Released under the MIT License.