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

36 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 1. 成员与候选查询
- [x] 1.1 新增成员列表、候选列表、分页筛选与响应 DTO包含账号状态、删除标记、关系时间、当前组信息、操作提示和可添加标记。
- [x] 1.2 在业务用户组 Query 中实现当前成员分页:以成员关系为主表,`Unscoped` 批量读取启用、禁用和软删除平台账号,支持用户名/手机号与账号状态筛选。
- [x] 1.3 实现成员候选分页:仅启用未删除平台用户,批量关联当前成员关系和用户组,支持全部、未分组、当前组、其他组筛选并计算 `add``already_member``move`
- [x] 1.4 为用户组列表和详情批量投影实时成员数,计数包含禁用或已删除账号的未删除成员关系,避免逐组查询。
## 2. 增量增加成员
- [x] 2.1 将成员增加请求与结果 DTO 调整为增量语义,响应返回请求数、新增数、迁移数、未变化数和账号集合。
- [x] 2.2 实现 `POST /business-user-groups/{id}/members` 用例:要求目标组启用且全部账号为启用未删除平台用户,按账号 ID 升序锁定并读取锁后归属。
- [x] 2.3 未分组账号新增关系、其他组账号更新到目标组、当前组账号幂等不写;请求外成员不修改,任一无效账号整批回滚。
- [x] 2.4 只为实际新增和迁移账号记录逐账号审计,审计包含原组与目标组;幂等未变化账号不写虚假变更事件。
## 3. 增量移除成员
- [x] 3.1 新增组作用域移除请求与结果 DTO允许目标组启用或停用并支持禁用或软删除账号关系清理。
- [x] 3.2 实现 `DELETE /business-user-groups/{id}/members` 用例:按账号 ID 升序锁账号,要求全部请求账号锁后仍属于目标组,任一不匹配整批返回状态冲突。
- [x] 3.3 Store 新增带目标组和账号集合谓词的软删除操作,要求影响行数等于请求账号数,禁止清除其他组归属。
- [x] 3.4 为每个实际移除账号记录原组、空目标组与操作者审计,账号禁用或删除状态保持不变。
## 4. 路由干净切换与装配
- [x] 4.1 新增 `GET /business-user-groups/{id}/members``GET /business-user-groups/{id}/member-candidates` Handler 和 RouteSpec仅放行超级管理员与平台用户。
- [x] 4.2 将现有 `PUT /business-user-groups/{id}/members` 改为 POST并新增同路径 DELETE删除全局 `DELETE /business-user-groups/members`、旧 Handler 方法及专用 DTO不保留别名。
- [x] 4.3 同步 `internal/bootstrap``cmd/api/docs.go``cmd/gendocs/main.go` 与 OpenAPI 描述,明确停用组只可移除、其他组成员增加时直接迁入。
## 5. 验证与规格同步
- [ ] 5.1 在维护者指定测试环境验证成员分页、关键字、启停与软删除展示,候选归属筛选和三类操作提示。(阻塞:未提供维护者指定测试环境、账号和数据集)
- [ ] 5.2 验证未分组新增、跨启用/停用组迁移、当前组幂等、无效账号整批回滚及请求外成员不变。(阻塞:未提供维护者指定测试环境、账号和数据集)
- [ ] 5.3 验证启用/停用组移除、禁用/删除账号关系清理、其他组或无归属账号导致整批拒绝、重复移除冲突。(阻塞:未提供维护者指定测试环境、账号和数据集)
- [ ] 5.4 验证并发迁移与移除同一账号的锁后裁决、逐账号审计、成员数实时变化和店铺所属组实时推导。(阻塞:未提供维护者指定测试环境、账号和数据集)
- [x] 5.5 验证旧 PUT 与全局 DELETE 路由不可达,新 GET/POST/DELETE 路由和生成文档一致;运行 `gofmt -w``go build ./cmd/api ./cmd/worker``go run cmd/gendocs/main.go`
- [x] 5.6 同步主 Spec 可达操作索引和证据矩阵,运行 `openspec validate add-business-user-group-member-management --strict``openspec doctor --json``openspec validate --all``./scripts/context-health.sh`