Files
break 5424751993
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled
修复停复机忽略免实名策略并归档变更
2026-09-07 10:06:17 +08:00

1.7 KiB
Raw Permalink Blame History

Context

统一停复机实名判断已有五处调用,行业卡和已实名卡当前直接放行。资产侧既有策略优先级为设备策略优先、无设备时使用卡策略。

Goals / Non-Goals

Goals: 将相同优先级用于停复机实名门槛,避免免实名资产被错误停机或阻止复机。

Non-Goals: 不修改实名事实、卡分类、套餐激活流程、轮询调度、重试策略或生产数据;不将免实名当成免套餐或免风控。

Decisions

  • 保留 isRealnameOK 单一入口,改为接收 context 并返回错误;行业卡或已实名卡直接返回,无额外数据库查询。
  • 其他卡通过既有有效绑定查询确定载体。独立卡和无有效绑定卡使用自身策略;有效绑定设备使用设备策略,通过 GORM 仅查询策略列。绑定或设备读取错误上抛,禁止回退放行。
  • 五处调用全部接收错误;设备批量复机保留逐卡继续及错误聚合,手动命令保留失败审计。
  • Audit Event、Integration Log、Outbox 继续使用现有命令路径查询失败不执行外部命令。Domain Ledger 为 N/A无金额变化。
  • 用可删除的本地 Go smoke 程序执行真实停复机服务GORM 查询回调提供合成卡、绑定、设备和套餐,不连接数据库或网关;验证前后行为差异,再构建 API/worker。不新增永久测试。

Risks / Trade-offs

  • 未实名普通设备卡会新增设备策略读取;行业卡、已实名卡和独立卡不增加此读取。
  • 设备策略读取失败会中止该卡本次操作,这是避免错误停机或错误放行的保守选择。
  • 无需迁移。发布由维护者完成;主 Specs 暂不同步,保留独立 Change 供发布审阅与归档。