feat(收口): 补齐 8 月迭代缺口并同步 Spec 与证据链
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled

- 新增六对成对迁移 000232–000237:H5 弹窗类型、退款结算标识与申请人备注、优先轮询事实字段与两个新终态、通道阈值命中留痕、手机号最近解绑人、提现资格校验留痕
- 退款:原因必填与申请人备注、来源支付与渠道流水冻结、线下处理流水号补录审计、按订单查询可选退款方式、企微审批材料补齐且新增字段缺失映射即明确失败
- 优先轮询:人工关闭、有效期到期独立周期任务、失败与过期人工重触发、事实字段与异常重试查询、资产解析端点只读投影
- 通道阈值:命中事实同事务留痕与命中记录查询;员工账单:列表筛选与详情投影;商户池:列表投影与统计周期语义;H5:弹窗类型与类别排序
- 手机号:有效关联数量与最近解绑人、短信验证码失败次数限制;导出:佣金明细十五列与报表序号列
- 时间筛选:三处新增筛选纳入统一严格解析契约,员工账单产生时间参数改名
- 同步 12 份主 Spec 需求、两端点与异步任务证据链,门禁 context-health 与 OpenSpec 校验通过
This commit is contained in:
2026-09-18 15:34:29 +08:00
parent 5e78809b93
commit 5ed6b39deb
142 changed files with 7878 additions and 964 deletions

View File

@@ -276,6 +276,10 @@ func NewRegistry() *Registry {
pollingPriorityDequeued := pollingPriorityAction(constants.AuditActionPollingPriorityDequeued, "卡轮询优先项失败出队", constants.AuditRiskNormal, true)
// 人工优先入队的拒绝只可能来自后台账号入口,不登记 Worker 侧来源。
pollingPriorityManualDenied := pollingPriorityAction(constants.AuditActionPollingPriorityManualDenied, "拒绝人工优先入队", constants.AuditRiskNormal, false)
// 人工关闭与人工重触发只可能来自后台账号入口;超期处理只可能来自计划任务,两者都必须分别声明来源。
pollingPriorityClosed := pollingPriorityAction(constants.AuditActionPollingPriorityClosed, "人工关闭卡轮询优先项", constants.AuditRiskNormal, false)
pollingPriorityExpired := pollingPriorityAction(constants.AuditActionPollingPriorityExpired, "卡轮询优先项有效期到期出队", constants.AuditRiskNormal, true)
pollingPriorityRetriggered := pollingPriorityAction(constants.AuditActionPollingPriorityRetriggered, "人工重触发卡轮询优先项", constants.AuditRiskNormal, false)
wecomCredentialsRead := ActionDefinition{
Code: constants.AuditActionWeComCredentialsRead, Name: "读取企业微信应用明文凭据",
Category: constants.AuditCategorySecurity, Risk: constants.AuditRiskHigh,
@@ -359,6 +363,8 @@ func NewRegistry() *Registry {
// 渠道原路退款的调用与恢复都由 Worker 触发,与既有的退款系统动作入口一致。
refundChannelCalled := refundSystemAction(constants.AuditActionRefundChannelCalled, "发起渠道原路退款")
refundChannelRecovered := refundSystemAction(constants.AuditActionRefundChannelRecovered, "恢复渠道原路退款结果")
// 线下退款处理流水号补录与更正由后台授权账号发起,与既有退款后台动作入口一致。
refundOfflineSettled := refundAction(constants.AuditActionRefundOfflineSettled, "登记线下退款处理流水号", false)
approvalRequested := approvalAction(constants.AuditActionApprovalRequested, "提交通用审批申请", []ActionOrigin{
{Actor: constants.AuditActorAccount, Source: constants.AuditSourceAdminAPI},
})
@@ -659,6 +665,9 @@ func NewRegistry() *Registry {
constants.AuditActionPollingPriorityCompleted: pollingPriorityCompleted,
constants.AuditActionPollingPriorityDequeued: pollingPriorityDequeued,
constants.AuditActionPollingPriorityManualDenied: pollingPriorityManualDenied,
constants.AuditActionPollingPriorityClosed: pollingPriorityClosed,
constants.AuditActionPollingPriorityExpired: pollingPriorityExpired,
constants.AuditActionPollingPriorityRetriggered: pollingPriorityRetriggered,
constants.AuditActionWeComCredentialsRead: wecomCredentialsRead,
constants.AuditActionRoleCreated: roleCreated,
constants.AuditActionRoleUpdated: roleUpdated,
@@ -734,6 +743,7 @@ func NewRegistry() *Registry {
constants.AuditActionRefundAnomalyFlagged: refundAnomalyFlagged,
constants.AuditActionRefundChannelCalled: refundChannelCalled,
constants.AuditActionRefundChannelRecovered: refundChannelRecovered,
constants.AuditActionRefundOfflineSettled: refundOfflineSettled,
constants.AuditActionApprovalRequested: approvalRequested,
constants.AuditActionApprovalSubmissionSynced: approvalSubmissionSynced,
constants.AuditActionApprovalSubmissionRecovered: approvalSubmissionRecovered,