Files
break 22c3e7cc1a
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m42s
实施业务用户组成员管理
2026-09-21 21:20:38 +08:00

3.9 KiB
Raw Blame History

1. 成员与候选查询

  • 1.1 新增成员列表、候选列表、分页筛选与响应 DTO包含账号状态、删除标记、关系时间、当前组信息、操作提示和可添加标记。
  • 1.2 在业务用户组 Query 中实现当前成员分页:以成员关系为主表,Unscoped 批量读取启用、禁用和软删除平台账号,支持用户名/手机号与账号状态筛选。
  • 1.3 实现成员候选分页:仅启用未删除平台用户,批量关联当前成员关系和用户组,支持全部、未分组、当前组、其他组筛选并计算 addalready_membermove
  • 1.4 为用户组列表和详情批量投影实时成员数,计数包含禁用或已删除账号的未删除成员关系,避免逐组查询。

2. 增量增加成员

  • 2.1 将成员增加请求与结果 DTO 调整为增量语义,响应返回请求数、新增数、迁移数、未变化数和账号集合。
  • 2.2 实现 POST /business-user-groups/{id}/members 用例:要求目标组启用且全部账号为启用未删除平台用户,按账号 ID 升序锁定并读取锁后归属。
  • 2.3 未分组账号新增关系、其他组账号更新到目标组、当前组账号幂等不写;请求外成员不修改,任一无效账号整批回滚。
  • 2.4 只为实际新增和迁移账号记录逐账号审计,审计包含原组与目标组;幂等未变化账号不写虚假变更事件。

3. 增量移除成员

  • 3.1 新增组作用域移除请求与结果 DTO允许目标组启用或停用并支持禁用或软删除账号关系清理。
  • 3.2 实现 DELETE /business-user-groups/{id}/members 用例:按账号 ID 升序锁账号,要求全部请求账号锁后仍属于目标组,任一不匹配整批返回状态冲突。
  • 3.3 Store 新增带目标组和账号集合谓词的软删除操作,要求影响行数等于请求账号数,禁止清除其他组归属。
  • 3.4 为每个实际移除账号记录原组、空目标组与操作者审计,账号禁用或删除状态保持不变。

4. 路由干净切换与装配

  • 4.1 新增 GET /business-user-groups/{id}/membersGET /business-user-groups/{id}/member-candidates Handler 和 RouteSpec仅放行超级管理员与平台用户。
  • 4.2 将现有 PUT /business-user-groups/{id}/members 改为 POST并新增同路径 DELETE删除全局 DELETE /business-user-groups/members、旧 Handler 方法及专用 DTO不保留别名。
  • 4.3 同步 internal/bootstrapcmd/api/docs.gocmd/gendocs/main.go 与 OpenAPI 描述,明确停用组只可移除、其他组成员增加时直接迁入。

5. 验证与规格同步

  • 5.1 在维护者指定测试环境验证成员分页、关键字、启停与软删除展示,候选归属筛选和三类操作提示。(阻塞:未提供维护者指定测试环境、账号和数据集)
  • 5.2 验证未分组新增、跨启用/停用组迁移、当前组幂等、无效账号整批回滚及请求外成员不变。(阻塞:未提供维护者指定测试环境、账号和数据集)
  • 5.3 验证启用/停用组移除、禁用/删除账号关系清理、其他组或无归属账号导致整批拒绝、重复移除冲突。(阻塞:未提供维护者指定测试环境、账号和数据集)
  • 5.4 验证并发迁移与移除同一账号的锁后裁决、逐账号审计、成员数实时变化和店铺所属组实时推导。(阻塞:未提供维护者指定测试环境、账号和数据集)
  • 5.5 验证旧 PUT 与全局 DELETE 路由不可达,新 GET/POST/DELETE 路由和生成文档一致;运行 gofmt -wgo build ./cmd/api ./cmd/workergo run cmd/gendocs/main.go
  • 5.6 同步主 Spec 可达操作索引和证据矩阵,运行 openspec validate add-business-user-group-member-management --strictopenspec doctor --jsonopenspec validate --all./scripts/context-health.sh