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.
 
 
 
 
 

14 KiB

矩阵:A7-1 用户管理 + A7-2 权限管理(票 02)

  • 口径:拍板⑤——接口存在性 + 入参逐字段为主,出参仅记明显缺失块;深 tag 顺带核(拍板④)。
  • 双源:文本库 .scratch/opportunity-bugfix/lanhu-pages/A7-1*.md / A7-2*.md(证据=控件 id)+ 截图 shots/a7-1*.png / a7-2*.png(结构验证)。
  • 类型标注:缺接口 / 缺入参 / 缺出参块 / 校验差距 / 幻影(代码有原型无)/ tag 待修 / 已覆盖。
  • 正式树 7 页全盘;backup「数据共享」3 页不在本票(留票 06 拍板)。

一、A7-1-1 用户列表(文本库 194 行)

# 原型要素 证据 应有接口 现状 差距
1 左栏钉钉部门树(点击过滤右侧列表) u67/u360 部门树 GET /api/system/depts/tree
2 统计卡片:部门总数/在职员工/离职员工/待分配员工 u209-u212/u360 用户统计 GET /users/stats(UserStatsDTO 四指标对齐) 缺出参块:三个时间戳(最近同步×2、最近移交,u209-u211)DTO 无字段
3 筛选:姓名/手机号码/部门/所属角色/状态/职务 u107/u84/u109/u110/u146/u155 列表查询 POST /users/page(UserPageParam: deptId/employmentStatus/loginFrom/loginTo) 缺入参:username、mobile、roleId、title;loginFrom/loginTo 原型无此筛选(代码多余项,可留)
4 职务下拉枚举值域(营销副总裁/维度管理总监/…) u156 缺口(挂账):值域来源待定(OA title 去重 or 字典)
5 表格列:姓名/手机号/部门/所属角色/状态/最后登录时间 u183-u188 UserListDTO 全字段齐
6 行内「分配角色」弹窗(在职/待分配) u197-u200/u362 保存该用户角色 POST /users/assign-roles(单用户全量替换)
7 弹窗角色清单带「影响 N 人」「启用中」 u266-u289 角色列表 依赖 A7-2-1 的角色 status/userCount 缺口(见三)
8 「批量配置角色」弹窗:多选员工+增量授予(「不会覆盖其已有角色」) u201/u254-u314/u296 批量分配 缺接口:POST /users/batch-assign-roles(userIds+roleIds,增量语义)
9 行内「移交数据」弹窗(已离职):接收人+待移交数量(线索/客户/商机/项目) u317-u338/u368 移交预览+执行 缺接口×2:移交预览(分域数量)、移交执行(userId+receiverId,跨域改 owner)
10 「导出数据」按钮(筛选区右侧) u108/u360 导出 缺接口:用户列表导出(同筛选入参,返文件流)

二、A7-1-2 同步任务(文本库 189 行)

# 原型要素 证据 应有接口 现状 差距
1 「立即同步」+确认弹窗+同步进度弹窗(任务编号/进度 60%) u76/u270-u314 发起同步(任务化) POST /sync/dingtalk(同步阻塞,返 DtSyncResultDTO 计数) 核心可用;缺出参块:任务编号、进度百分比(任务化改造,重接口——票 06 拍板本期边界)
2 同步记录列表:筛选(任务编号/开始时间/触发方式/执行状态)+列(任务编号 SYNC-MMDD-序号/开始时间/触发方式/执行状态/部门变更/人员变更/异常数/详情)+分页 u88-u135/u323 分页查询同步记录 缺接口:GET /sync/tasks/page(需新建任务记录表)
3 「详情」弹窗:执行结果/失败对象/接口错误/处理结果/进度/重新同步 u285-u306/u328 任务详情 缺接口:GET /sync/tasks/detail?id=;「重新同步」复用发起同步
4 同步设置区:自动同步启停/每日执行时间/重试规则(间隔≥1min、次数≥1)/并发规则/当前计划/下次执行/最近修改 u230-u260/u331 设置查询+保存 缺接口×2:GET/POST /sync/settings;需定时调度支持(重接口——票 06 拍板)

三、A7-2-1 角色管理(文本库 195 行)

# 原型要素 证据 应有接口 现状 差距
1 顶部统计:角色总数/启用中/已停用/零使用人员角色数 u23-u33/u204 角色统计 缺接口:GET /roles/stats(或 page 附带统计块)
2 筛选:角色名称(keyword)/角色类型/状态 u35/u207/u204 分页查询 POST /roles/page(RoleParam 仅继承 BaseParam:keyword 缺入参:roleType(系统级/管理级/业务级/功能级)、status
3 列表列:角色名称/角色类型/角色说明/在职使用人数/状态/最后更新 u39-u58/u204 RoleDTO(roleName/remark/updateTime 缺出参块:roleType、status、userCount(在职使用人数,离职不计——u204 定义)
4 新建角色弹窗:名称(2-30 唯一)/类型(必填单选)/说明 u137-u146/u204 保存 POST /roles/saveOrUpdate(roleName remark 缺入参:roleType;校验差距:名称长度/唯一性服务端校验
5 复制角色:来源角色+新名称,复制类型/说明/功能权限/数据范围/敏感权限,不复制人员,生成停用草稿 u149-u160/u204 复制 缺接口:POST /roles/copy(sourceRoleId+roleName)
6 停用/启用角色(确认弹窗;启用校验:≥1 有效业务菜单权限+四域数据范围有效) u163-u186/u204 状态切换 缺接口:POST /roles/enable、/roles/disable(status 概念现缺)
7 删除角色(仅在职使用人数=0;二次校验) u189-u199/u204 删除 POST /roles/delete(级联清理 校验差距:使用人数=0 才可删的服务端校验
8 「处理使用人员」→ 跳组织与人员页按角色筛选 u80/u204 用户列表按角色筛 同一(3)缺 roleId 入参(见一#3)
9 处理使用人员弹窗:选择/姓名/所属部门/职位/当前参与商机数 u281-u314 用户列表 POST /users/page 部分覆盖;「当前参与商机数」列为域内统计(挂账,低优先)

四、A7-2-2 编辑角色(基本信息)(文本库 83 行)

# 原型要素 证据 应有接口 现状 差距
1 页头:角色编号/状态/在职使用人数/创建时间/最后更新 u19-u54/u69 详情 GET /roles/detail(RoleDTO:roleCode/createTime/updateTime 缺出参块:status、userCount(同三#3)
2 权限摘要(功能模块+数据范围只读) u56-u63/u69 详情 detail 返 resourceIds+moduleScopes 前端可自算;资源名称需 resources/list 配合(可接受,不强求新端点)
3 编辑基本信息(启用角色仅名称/说明可改;草稿可改类型) u69 保存 POST /roles/saveOrUpdate 校验差距:启用角色字段可改性校验(roleType 落地后)
4 「保存为停用」按钮 u266 保存 saveOrUpdate 依赖 status 概念(同三#6)

五、A7-2-3 编辑角色(功能权限)(文本库 110 行)

# 原型要素 证据 应有接口 现状 差距
1 第二栏菜单树(按业务模块+已选数量) u98-u125/u74 资源树 GET /resources/list
2 第三栏权限点分组(搜索/仅看已选;「当前有效」=启用且上级启用) u155/u74 资源树 listAll 返全量含 status (前端过滤+派生「上级已停用」可接受)
3 保存功能权限:一次提交全部菜单+权限点;服务端补齐祖先+校验菜单↔权限点依赖 u74(3.2/3.6) 保存授权 POST /roles/assign-resources(祖先补全 ADR-0005) 校验差距:选权限点必须选所属菜单的依赖校验
4 取消模块权限二次确认+「当前影响:18 名使用人员」 u23-u36/u74 影响人数 依赖三#3 userCount 出参
5 权限合并规则(多角色并集;仅启用角色计入) u74(3.5) 计算侧 PermissionResolver(现有鉴权行为,不在本票深核) 挂账:核对仅启用角色计入

六、A7-2-4 编辑角色(数据范围)(文本库 58 行)

# 原型要素 证据 应有接口 现状 差距
1 四域(线索/客户/商机/项目)×四档(仅本人/本部门/本部门及下属部门/全部数据);联系人跟随客户不单独配 u27-u48/u54 模块清单+档位保存 GET /api/data-scope/modules + detail.moduleScopes + saveOrUpdate.moduleScopesJson(档位 1-4 校验 (模块清单不含联系人即合规)
2 缩小范围保存确认+影响人数 u19/u54 影响人数 依赖三#3 userCount 出参

七、A7-2-2 权限点管理(文本库 490 行)

# 原型要素 证据 应有接口 现状 差距
1 筛选:名称模糊/编码模糊/状态(全部/启用/停用)+分页+命中补父级(父级不计入总数) u25-u29/u197(3.1) 树查询 GET /resources/list(无参全量) 缺入参:name、code、status、current、size;补父级行为(服务端或前端实现待定)
2 列表列:名称/类型/编码/路由路径/API URL/描述/状态/操作 u235-u247/u197(3.2) ResourceNodeDTO 字段全齐
3 新增一级菜单:菜单形态(目录/页面)/名称/图标必填/编码/描述/路由(页面必填)/排序 u379-u397/u200(4.2) 保存 POST /resources/saveOrUpdate(type=CATALOG/MENU、icon、perms、route、sort;perms 三类必填+全局唯一已实现——ResourceServiceImpl 注释引 v29 u200/u206) 校验差距:图标必填、路由页面必填校验;新增默认停用(u197 3.3-6,待核 service 现状)
4 新增二级菜单(所属上级只读)/新增权限点(API URL 必填) u427-u499/u200(4.3-4.4) 保存 saveOrUpdate(parentId、apiUrl (apiUrl 必填校验待核)
5 编辑:类型/编码只读;页面型一级有直挂权限点禁改目录 u203 保存 saveOrUpdate(编辑模式 perms 只读已实现) 核心;「禁改目录」校验待核
6 独立「启用/停用」操作(确认弹窗带编码+角色引用数;被引用禁停用;停用菜单整棵下级暂时退出) u118-u185/u208-u211 状态切换 缺接口:POST /resources/enable、/resources/disable(含引用校验);现无独立端点
7 删除校验:仅停用可删;无下级;有角色引用禁止删除(展示引用角色清单:名称/状态/在职人数/前往配置) u64-u101/u218-u219 删除 POST /resources/delete(子节点检查级联清理引用——与原型「禁止删除」语义相反) 校验差距(语义相反):改为引用即阻止;「仅停用可删」校验
8 角色引用查询(删除/启停弹窗数据源) u85-u98 引用清单 缺接口:GET /resources/references?id=(返回引用角色列表)
9 图标上传 u626-u641 上传 POST /resources/icon/upload
10 页面仅平台超管可访问 u818/u191(2) ResourceController 类级 hasRole('ADMIN')

八、深 tag 对账(拍板④:核对存量端点挂「A7 后台管理/…」完整路径)

端点 现挂 tag 正式树路径 判定
/users/* 4 端点 A7 后台管理/用户管理 A7 后台管理>A7-1 用户管理>A7-1-1 用户列表 (页面粒度:可细化 /用户管理/用户列表)
/depts/tree、save、delete A7 后台管理/部门管理 正式树无「部门管理」页(部门树仅作 A7-1-1 左栏) tag 待修+挂账:save/delete 原型无入口(对应未画的「组织架构」页 u67)
/sync/dingtalk、/users/admin-role A7 后台管理/运维 A7 后台管理>A7-1 用户管理>A7-1-2 同步任务 tag 待修:sync 应挂「用户管理/同步任务」;admin-role 原型无对应页(挂账)
/roles/* 5 端点、/data-scope/modules A7 后台管理/权限管理/角色管理 A7 后台管理>A7-2 权限管理>A7-2-1 角色管理
/resources/* 4 端点 A7 后台管理/权限点管理 A7 后台管理>A7-2 权限管理>A7-2-2 权限点管理 tag 待修:缺一级「权限管理」→「A7 后台管理/权限管理/权限点管理」

九、缺口汇总(本分区)

缺接口(9)

  1. POST /users/batch-assign-roles —— 批量增量分配角色(A7-1-1)
  2. 移交数据预览 + 移交执行(2 端点,跨域改 owner)(A7-1-1)
  3. 用户列表导出(A7-1-1)
  4. GET/POST /sync/settings + /sync/tasks/page + /sync/tasks/detail(3 端点,依赖任务化+调度,重接口)(A7-1-2)
  5. GET /roles/stats(A7-2-1)
  6. POST /roles/copy(A7-2-1)
  7. POST /roles/enable + /roles/disable(A7-2-1)
  8. POST /resources/enable + /resources/disable(A7-2-2 权限点)
  9. GET /resources/references?id=(A7-2-2 权限点)

缺入参(3 项)

  • UserPageParam:+username、mobile、roleId、title(A7-1-1 筛选 6 项对齐)
  • RoleParam:+roleType、status(A7-2-1 筛选)
  • (RoleDTO 表单)+roleType(新建角色必填单选)

缺出参块(2 项)

  • UserStatsDTO:+lastSyncTime×2、lastTransferTime(统计卡片时间戳)
  • RoleDTO/RoleParam 出参:+status、userCount、roleType(角色列表三列+A7-2 各弹窗「影响 N 人」数据源)

校验差距(4 项)

  • 角色名称 2-30 唯一;角色删除前使用人数=0;启用校验(≥1 业务菜单权限+四域数据范围);功能权限保存的菜单↔权限点依赖校验
  • 资源删除语义改写:有引用禁止(现级联清理,语义相反)+仅停用可删;启停带引用校验
  • 资源新增默认停用、图标/路由/apiUrl 必填校验(待核现状后补)

tag 待修(2 处)

  • /resources/* 补一级「权限管理」;/sync/* 改挂「用户管理/同步任务」(+dept/save、delete 挂账待拍板)

幻影/挂账(3 项)

  • /depts/save、/depts/delete:原型无入口(未画的「组织架构」页)
  • /users/admin-role:原型无对应页
  • 职务下拉值域来源、处理使用人员弹窗「当前参与商机数」列