## 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 供发布审阅与归档。