Files
junhong_cmp_fiber/.scratch/ur37-wecom-approval-foundation/issues/03-approval-scene-first-template-publish.md
2026-07-22 16:58:26 +09:00

2.3 KiB
Raw Blame History

03 — 发布审批场景与首个模板版本

What to build: 超级管理员可以按稳定场景查看退款和线下充值审批配置,读取企微模板并通过可视化字段映射发布首个不可变模板版本;发布前由后端重新核对模板、控件类型和必填映射,业务代码不再依赖易变的模板 ID 或控件 ID。

Blocked by:

  • 01 — 交付企微连接状态与安全 Adapter 闭环
  • .scratch/tech-public-foundation/issues/01-public-migration-ownership-and-gates.md — 01 — 建立公共迁移所有权与检查门禁
  • .scratch/tech-global-audit/issues/01-audit-event-write-loop.md — 01 — 交付不可变 Audit Event 写入闭环

Status: ready-for-agent

架构通道: 复杂写,采用 Application + Domain + Repository/WeCom Adapter场景与版本列表为辅助 Query。

完整业务边界: 本票收口稳定场景、不可变模板版本、模板读取、字段映射校验和首次发布。明确不实现运行中安全换版,不创建业务审批实例,不接入退款或充值创建。

  • 初始化稳定场景 refund_approvaloffline_recharge_approval,场景状态固定为 0=已暂停、1=启用、2=暂停中,模板版本状态固定为 0=已停用、1=启用、2=失效
  • 模板版本保存递增版本号、企微模板标识、名称、控件映射、模板快照、指纹、验证结果和发布快照;历史版本不可修改,每个场景至多一个启用版本。
  • 模板读取接口只接受稳定场景和企微模板标识,向前端返回可映射控件事实;前端不能把控件名称、类型或原始映射 JSON 作为可信发布依据。
  • 发布前重新从企微读取模板,验证可访问性、控件存在、类型匹配及全部必填业务字段映射;退款和线下充值字段集合符合 PRD金额字段只用于展示。
  • 首次发布在单一事务内写不可变版本、设置当前版本并启用场景;失败时不留下半发布版本或错误的当前版本引用。
  • 模板读取、验证和发布写 Integration Log/Audit Event真实 PostgreSQL 与可编程 Adapter 测试覆盖唯一约束、映射缺失、类型错误、指纹和事务回滚;新增 Handler 同步路由、RouteSpec 和两个 OpenAPI 文档生成器。