Files
junhong_cmp_fiber/.scratch/ur96-shop-business-owner/issues/05-query-shop-business-owner.md
2026-07-22 16:12:28 +09:00

2.2 KiB
Raw Blame History

05 — 查询店铺业务员归属与候选账号

What to build: 有权用户可以在店铺列表和详情中看到相同的业务员归属摘要,按保存的业务员 ID 与其他条件组合筛选;超级管理员和平台账号还可以通过最小披露的候选接口搜索当前可人工绑定的平台业务员。停用或删除账号仍展示历史摘要及不可用状态,但不再进入候选结果。

Blocked by: 01 — 建立店铺业务员归属持久化基线

Status: ready-for-agent

架构通道: Query。

完整业务边界: 本票收口店铺列表、店铺详情和业务员候选三个读取用例及其 API 契约。明确不通过聚合根读取,不执行写操作,不把候选查询结果当作写侧最终校验,不扩大任何账号的数据权限。

  • 店铺列表支持按保存的业务员 ID 精确筛选,并与店铺名、编号、联系电话、上级、层级、状态等既有条件按 AND 组合,分页和排序契约保持不变。
  • 列表和详情统一返回可空业务员 ID、账号名、固定前三后四手机号摘要及可用状态空归属返回空摘要停用或软删除账号尽可能返回历史摘要并标记不可用。
  • 当前页业务员账号通过一次批量查询完成投影,包含必要的软删除只读数据,不发生逐店铺 N+1 查询。
  • 若当前没有独立店铺详情接口,则提供受既有数据权限保护的详情接口,并确保候选、级联、资金概况等静态路由不会被动态 ID 路由吞掉。
  • 候选接口只允许超级管理员和平台账号调用,仅返回启用、未删除的普通平台账号,并提供用户名或手机号受控搜索、默认 20 和最大 100 的分页。
  • 代理和企业不能调用候选接口;候选仅返回 ID、账号名和手机号摘要不复用披露范围更大的账号列表响应。
  • PostgreSQL 与 HTTP 集成测试覆盖索引筛选、AND 条件、分页总数、历史投影、手机号脱敏、无 N+1、权限和静态路由顺序。
  • RouteSpec 和 OpenAPI 契约同步更新;若实现过程中新增 Handler 类型,则同步两个文档生成器,否则不得为此无谓新增 Handler。