Files
junhong_cmp_fiber/openspec/changes/asset-realname-policy/specs/device-import/spec.md
huang 505b30aa8f
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m44s
feat: 实现资产实名认证策略功能 (asset-realname-policy)
- 新增 realname_policy 字段到 tb_iot_card、tb_device、tb_iot_card_import_task、tb_device_import_task 四张表
- 策略枚举:none(无需实名)、before_order(先实名后充值/购买)、after_order(先充值/购买后实名)
- C端充值拦截:before_order 策略下未实名用户禁止充值
- C端订单拦截:before_order 策略下未实名用户禁止购买套餐
- C端实名链接拦截:after_order 策略下无充值/订单用户禁止实名认证
- Admin API:PATCH /api/admin/assets/:identifier/realname-mode
- 新增错误码 CodeRealnameNotAvailable=1189
2026-04-17 17:03:41 +08:00

1.4 KiB
Raw Blame History

ADDED Requirements

Requirement: 设备导入批次支持实名策略配置

系统 SHALL 在设备导入请求(ImportDeviceRequest)中支持 realname_policy 参数,以批次为单位指定导入设备的实名策略,默认为 none

请求字段新增

  • realname_policy:实名认证策略(枚举:none / before_order / after_order,可选,默认 none

任务字段新增

  • DeviceImportTask 新增 realname_policy 字段VARCHAR(20) NOT NULL DEFAULT 'none'

导入行为

  • 该批次导入的所有设备统一使用 realname_policy 的值写入 Device.realname_policy,不支持同一批次混用
  • 导入任务记录该字段用于审计

Scenario: 不传 realname_policy 时默认为 none

  • WHEN 设备导入请求未包含 realname_policy 字段
  • THEN 导入的所有设备 realname_policynone

Scenario: 指定 before_order 导入设备

  • WHEN 设备导入请求中 realname_policy = before_order
  • THEN 该批次导入的所有设备 realname_policy 均为 before_order

Scenario: 传入无效 realname_policy 被拒绝

  • WHEN 设备导入请求中 realname_policy = unknown
  • THEN 系统返回参数校验错误,提示实名策略值无效

Scenario: 设备导入任务响应返回 realname_policy

  • WHEN 管理员查询设备导入任务列表或详情
  • THEN 响应中包含 realname_policy 字段