fix: 修复卡类型资产绑定键错误导致归属校验永远失败
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m48s
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m48s
resolveAssetBindingKey 对卡类型错误地返回 card.ICCID 作为绑定键, 但归属校验 isCustomerOwnAsset 使用 card.VirtualNo 比对,二者不一致 导致所有卡资产的 C 端接口返回 403 无权限。 修复:卡类型绑定键改为 card.VirtualNo,与设计文档一致。 附带数据迁移修正已有的错误绑定记录。
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
-- 回滚:将已修复的 VirtualNo 还原为 ICCID
|
||||
-- 注意:只还原那些 virtual_no 能匹配到 iot_card.virtual_no 的记录
|
||||
UPDATE tb_personal_customer_device pcd
|
||||
SET virtual_no = ic.iccid
|
||||
FROM tb_iot_card ic
|
||||
WHERE pcd.virtual_no = ic.virtual_no
|
||||
AND pcd.deleted_at IS NULL
|
||||
AND ic.virtual_no != ic.iccid;
|
||||
@@ -0,0 +1,9 @@
|
||||
-- 修复个人客户设备绑定表中卡类型资产的绑定键
|
||||
-- 问题:resolveAssetBindingKey 对卡类型错误地使用了 card.ICCID,应使用 card.VirtualNo
|
||||
-- 影响:所有通过卡 ICCID 登录的个人客户绑定记录的 virtual_no 字段存的是 ICCID 而非资产虚拟号
|
||||
-- 导致:归属校验 isCustomerOwnAsset 比对 VirtualNo 时永远不匹配,返回 403
|
||||
UPDATE tb_personal_customer_device pcd
|
||||
SET virtual_no = ic.virtual_no
|
||||
FROM tb_iot_card ic
|
||||
WHERE pcd.virtual_no = ic.iccid
|
||||
AND pcd.deleted_at IS NULL;
|
||||
Reference in New Issue
Block a user