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

24 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 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 供发布审阅与归档。