Files
junhong_cmp_fiber/openspec/changes/archive/2026-09-21-add-agent-registration-management/tasks.md
break 4a16eb0b1e
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m41s
新增代理注册申请管理
2026-09-21 16:51:37 +08:00

4.5 KiB
Raw Blame History

1. 注册申请查询模型

  • 1.1 新增代理注册列表、详情、分页与筛选 DTO字段覆盖注册业务状态、完整联系资料、直接上级店铺、审批状态、提交状态、失败摘要、可恢复标记和最近恢复时间明确排除密码哈希及内部集成字段。
  • 1.2 在 distributionwithdrawal Query 中实现注册列表:支持状态、申请与决定时间闭区间、手机号精确值、资料关键字、上级店铺和提交异常筛选,默认按 created_at DESC, id DESC 分页。
  • 1.3 实现注册详情并与列表复用同一数据范围和投影口径;按页批量读取上级店铺、审批实例和企微上下文,避免 N+1。
  • 1.4 明确三层状态投影:注册业务状态、通用审批状态和企微提交状态;由服务端计算安全失败摘要及可恢复标记。

2. 权限、范围与隐私

  • 2.1 超级管理员和平台用户查询全部申请;代理强制 parent_shop_id = 当前店铺 ID,不使用 SubordinateShopIDs,无有效店铺时列表为空、详情不可见;企业账号拒绝。
  • 2.2 上级店铺筛选只对超级管理员和平台用户开放;代理请求不得通过筛选参数扩大直属范围,越权与不存在保持不可区分。
  • 2.3 平台和有权代理返回完整手机号与完整注册地址;响应、日志和业务审计不得包含密码哈希、验证码、企微原文、内部事件键或租约字段,审计中的手机号必须脱敏。

3. 原审批恢复用例

  • 3.1 在通用审批 Application/Infrastructure 边界提供原实例查询同步、结果未知确认和稳定提交事件恢复接缝,复用 approval:{instance_id}:submission,活动事件幂等返回。
  • 3.2 实现代理注册恢复用例:锁定注册记录,校验仍待审批、审批实例非空、业务类型与业务 ID 一致、调用方范围正确且上级店铺仍启用。
  • 3.3 按固定优先级处理已有 sp_no、结果未知、明确未受理失败、正常重试和审批中;恢复不修改注册资料或密码哈希,不创建注册记录、审批实例、店铺、账号、钱包或层级。
  • 3.4 保证平台与代理重复或并发恢复至多一次改变原提交事实;终态申请、停用上级店铺和实例关联异常返回稳定冲突。
  • 3.5 为人工恢复写脱敏审计,记录注册申请、审批实例、操作者及店铺、前置提交状态、恢复动作与结果。

4. HTTP 入口与文档

  • 4.1 新增后台注册申请 Handler接入列表、详情和恢复用例边界只做参数绑定与统一响应权限和状态规则留在 Query/Application。
  • 4.2 注册 GET /api/admin/agent-distribution-registrationsGET /api/admin/agent-distribution-registrations/{id}POST /api/admin/agent-distribution-registrations/{id}/recover-approval RouteSpec。
  • 4.3 同步 internal/bootstrap 装配、cmd/api/docs.gocmd/gendocs/main.go 与 OpenAPI 描述,标明接口包含授权业务处理所需的完整手机号和地址。验证:pkg/openapi/handlers.gocmd/api/docs.gocmd/gendocs/main.go 已装配 AgentDistributionRegistrationHandler;重新生成的 docs/admin-openapi.yaml 包含列表、详情和恢复接口及完整资料说明。

5. 验证与规格同步

  • 5.1 在维护者指定测试环境验证平台全量、代理直属、非直属与更深层不可见、无店铺代理空列表及企业账号拒绝。
  • 5.2 验证状态、时间、手机号、关键字、上级店铺和提交异常筛选,核对完整联系资料可见且密码哈希、验证码与内部集成字段不泄露。
  • 5.3 验证明失败、结果未知、已有 sp_no、正常重试、重复和并发恢复;核对注册记录数、审批实例数及店铺、账号、钱包数量不因恢复增加。
  • 5.4 验证上级店铺停用后历史仍可查询但不能恢复,终态申请不可恢复,列表状态投影批量读取无 N+1。
  • 5.5 运行 gofmt -wgo build ./cmd/api ./cmd/workergo run cmd/gendocs/main.go,同步主 Spec 可达操作索引和证据矩阵。验证gofmt/build/gendocs 成功;主 Spec 与 entry-capability-requirement-matrix.jsonrequirement-evidence.json 已加入三条后台入口。
  • 5.6 运行 openspec validate add-agent-registration-management --strictopenspec doctor --jsonopenspec validate --all./scripts/context-health.sh。验证:目标 Change strict、doctor、context-health 通过;全量校验在主 Spec 场景修复后重跑。