Status: done ## Parent `.scratch/iot-risk-import-voucher-remark/PRD.md` ## What to build 新增两个 gateway_extend 常量(`GatewayCardExtendRiskStop = "风险停机"`、`GatewayCardExtendCancelled = "已销户"`),然后在后台复机入口(`ManualStartCard`)和 Open API 复机入口(`ResumeCard`)中增加前置拦截: - 仅对 `is_standalone = true` 的独立卡生效 - 读取 DB 中已落库的 `gateway_extend` 字段(不实时查网关) - 若命中 `"风险停机"` 或 `"已销户"`,立即返回业务错误,不再继续调用网关 - 错误提示需明确说明被拒绝的原因(如"该卡已被运营商风险停机,不允许复机") 无 Schema 变更,不需要 Migration。 ## Acceptance criteria - [ ] `pkg/constants/iot.go` 新增 `GatewayCardExtendRiskStop`、`GatewayCardExtendCancelled` 两个常量 - [ ] 后台 `ManualStartCard` 在调用网关前检查独立卡 `gateway_extend`,命中风险值时返回业务错误 - [ ] Open API `ResumeCard` 在调用网关前检查独立卡 `gateway_extend`,命中风险值时返回业务错误 - [ ] 已绑定设备的卡(`is_standalone = false`)不受此限制,复机正常进行 - [ ] 返回的错误信息能区分"风险停机"和"已销户"两种情况 ## Blocked by None - can start immediately