Files
邹进 6298a9061f fix: 第1批 M8、M13、M14 审批提交失败终态与退款关闭类终态定位
- 审批核心在实例进入提交失败的同一事务内写 submission_failed 决策投递与终态事件,消费入口单独放行
- 核销(4)、退款(7)、扫码注册(3)、资料资格(4)、线下充值(7)、佣金提现(5)新增“审批提交失败”终态并释放预占/冻结
- 三处恢复入口不再重放提交失败;退款关闭类终态按审批尝试定位退款单(M13)
- 核销列表与详情批量返回审批提交状态;筛选、字段说明、状态名称、退款导出加入新状态
- 迁移 000239 放宽五张业务表状态约束与决策投递取值约束(测试库已执行 up/down/up)
- OpenSpec Change fix-approval-submission-failure-terminal:18/26,测试部署后端到端验证与存量补数据待完成
2026-10-12 00:03:46 +09:00

3.9 KiB
Raw Blame History

MODIFIED Requirements

Requirement: 代理注册原审批可受控恢复

系统 SHALL 提供 POST /api/admin/agent-distribution-registrations/{id}/recover-approval,允许有权平台账号及申请直接上级代理恢复仍待审批的注册申请。恢复 MUST 校验原审批实例及业务关联、上级店铺启用状态和调用方范围,复用原实例与稳定提交事实;不得新建注册记录、审批实例、企业微信审批单、店铺、账号或钱包。结果未知时 MUST 优先确认原提交,已有审批单号时 MUST 同步原审批;审批实例为提交失败时 MUST 返回“审批提交失败为终态,请重新发起”,MUST NOT 重放原提交事件。终态申请(含审批提交失败)或停用上级 MUST 返回稳定冲突;恢复 MUST 写入脱敏审计。

Scenario: 提交失败不可恢复

  • WHEN 注册申请的原审批实例已提交失败时请求恢复
  • THEN 系统返回“审批提交失败为终态,请重新发起”,不重放提交事件、不新建注册记录或业务实体

Scenario: 结果未知优先确认

  • WHEN 待审批申请的原提交结果未知
  • THEN 系统进入原实例确认流程,不直接创建新的企业微信审批

Scenario: 终态或停用上级拒绝恢复

  • WHEN 注册申请已终态或其直接上级店铺已停用时请求恢复
  • THEN 系统返回稳定冲突且不改变注册、审批或实体事实

ADDED Requirements

Requirement: 扫码注册代理审批提交失败

审批核心对注册申请的审批实例发出 submission_failed 决策时,系统 SHALL 确认审批实例仍为提交失败,将注册记录从待审批(0)条件更新为审批提交失败(3),记录脱敏失败原因并写审计,按事件幂等;MUST NOT 创建店铺、账号、钱包或层级。审批提交失败为终态,MUST NOT 阻止同一手机号、用户名或店铺编号再次提交;客户重新扫码提交形成新的注册记录与新的审批实例。

Scenario: 注册审批提交失败

  • WHEN 待审批注册申请的审批实例提交企微失败
  • THEN 注册记录变为审批提交失败,不创建任何业务实体,同一手机号可重新扫码提交

Requirement: 佣金提现审批提交失败

审批核心对提现申请最新审批尝试发出 submission_failed 决策时,系统 SHALL 确认审批实例仍为提交失败,在同一事务内仅一次释放该次尝试的冻结余额并记录释放时间,将提现申请从待审核条件更新为审批提交失败(5),记录脱敏失败原因并写审计,按事件幂等。审批提交失败的申请 MUST 允许代理修改金额、收款信息和本次发票后重新发起,重新发起时按新金额重新冻结、新增审批尝试与审批实例,资料资格保持有效。

Scenario: 提现审批提交失败释放冻结

  • WHEN 待审核提现申请的审批实例提交企微失败
  • THEN 申请变为审批提交失败,冻结金额仅一次释放,钱包余额与流水一致

Scenario: 提交失败后重新发起

  • WHEN 代理对审批提交失败的提现申请修改后重新发起
  • THEN 系统按新金额重新冻结并创建新的审批尝试与审批实例,历史尝试不被覆盖

Requirement: 提现资料资格审批提交失败

审批核心对资料版本审批实例发出 submission_failed 决策时,系统 SHALL 确认审批实例仍为提交失败,将资料版本从等待终审(0)条件更新为审批提交失败(4),记录脱敏失败原因并写审计,按事件幂等。审批提交失败为终态,MUST NOT 阻止代理提交新的资料版本,MUST NOT 影响已通过的有效版本。

Scenario: 资料资格审批提交失败

  • WHEN 等待终审的资料版本审批实例提交企微失败
  • THEN 该版本变为审批提交失败,代理可提交新的资料版本,已通过的有效版本不受影响