feat: 实现资产实名认证策略功能 (asset-realname-policy)
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m44s

- 新增 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
This commit is contained in:
2026-04-17 17:03:41 +08:00
parent e0a37f4a11
commit 505b30aa8f
12 changed files with 623 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
-- 回滚:删除 realname_policy 字段
ALTER TABLE tb_device_import_task DROP COLUMN IF EXISTS realname_policy;
ALTER TABLE tb_iot_card_import_task DROP COLUMN IF EXISTS realname_policy;
ALTER TABLE tb_device DROP COLUMN IF EXISTS realname_policy;
ALTER TABLE tb_iot_card DROP COLUMN IF EXISTS realname_policy;

View File

@@ -0,0 +1,19 @@
-- 新增 realname_policy 字段到四张表
-- 实名认证策略:(none=无需实名, before_order=先实名后充值/购买, after_order=先充值/购买后实名)
-- 默认值为 none存量数据不受影响
-- tb_iot_card 新增 realname_policy 字段
ALTER TABLE tb_iot_card ADD COLUMN IF NOT EXISTS realname_policy VARCHAR(20) NOT NULL DEFAULT 'none';
COMMENT ON COLUMN tb_iot_card.realname_policy IS '实名认证策略(none=无需实名,before_order=先实名后充值/购买,after_order=先充值/购买后实名)';
-- tb_device 新增 realname_policy 字段
ALTER TABLE tb_device ADD COLUMN IF NOT EXISTS realname_policy VARCHAR(20) NOT NULL DEFAULT 'none';
COMMENT ON COLUMN tb_device.realname_policy IS '实名认证策略(none=无需实名,before_order=先实名后充值/购买,after_order=先充值/购买后实名)';
-- tb_iot_card_import_task 新增 realname_policy 字段
ALTER TABLE tb_iot_card_import_task ADD COLUMN IF NOT EXISTS realname_policy VARCHAR(20) NOT NULL DEFAULT 'none';
COMMENT ON COLUMN tb_iot_card_import_task.realname_policy IS '导入批次实名策略(none=无需实名,before_order=先实名后充值/购买,after_order=先充值/购买后实名)';
-- tb_device_import_task 新增 realname_policy 字段
ALTER TABLE tb_device_import_task ADD COLUMN IF NOT EXISTS realname_policy VARCHAR(20) NOT NULL DEFAULT 'none';
COMMENT ON COLUMN tb_device_import_task.realname_policy IS '导入批次实名策略(none=无需实名,before_order=先实名后充值/购买,after_order=先充值/购买后实名)';