107 lines
2.8 KiB
Markdown
107 lines
2.8 KiB
Markdown
BEGIN;
|
||
|
||
CREATE TEMP TABLE tmp_del_device AS
|
||
SELECT id, virtual_no
|
||
FROM tb_device
|
||
WHERE virtual_no = '862639071883120'
|
||
AND deleted_at IS NULL;
|
||
|
||
CREATE TEMP TABLE tmp_del_cards AS
|
||
SELECT id, iccid
|
||
FROM tb_iot_card
|
||
WHERE iccid IN (
|
||
'89860885192590574651',
|
||
'89860625750010463442',
|
||
'8986112520903882441'
|
||
)
|
||
AND deleted_at IS NULL;
|
||
|
||
CREATE TEMP TABLE tmp_del_device_auth AS
|
||
SELECT id
|
||
FROM tb_enterprise_device_authorization
|
||
WHERE device_id IN (SELECT id FROM tmp_del_device)
|
||
AND deleted_at IS NULL;
|
||
|
||
-- 设备授权
|
||
UPDATE tb_enterprise_device_authorization
|
||
SET deleted_at = NOW(),
|
||
revoked_at = COALESCE(revoked_at, NOW()),
|
||
updated_at = NOW()
|
||
WHERE id IN (SELECT id FROM tmp_del_device_auth);
|
||
|
||
-- 卡授权:这里字段是 card_id,不是 iot_card_id
|
||
UPDATE tb_enterprise_card_authorization
|
||
SET deleted_at = NOW(),
|
||
revoked_at = COALESCE(revoked_at, NOW()),
|
||
updated_at = NOW()
|
||
WHERE deleted_at IS NULL
|
||
AND (
|
||
card_id IN (SELECT id FROM tmp_del_cards)
|
||
OR device_auth_id IN (SELECT id FROM tmp_del_device_auth)
|
||
);
|
||
|
||
-- 分配记录:按 asset_type 限定,避免不同表 ID 相同误删
|
||
UPDATE tb_asset_allocation_record
|
||
SET deleted_at = NOW(),
|
||
updated_at = NOW()
|
||
WHERE deleted_at IS NULL
|
||
AND (
|
||
(asset_type = 'device' AND asset_id IN (SELECT id FROM tmp_del_device))
|
||
OR (asset_type = 'iot_card' AND asset_id IN (SELECT id FROM tmp_del_cards))
|
||
OR asset_identifier IN (
|
||
'862639071883120',
|
||
'89860885192590574651',
|
||
'89860625750010463442',
|
||
'8986112520903882441'
|
||
)
|
||
);
|
||
|
||
-- 设备绑卡关系
|
||
UPDATE tb_device_sim_binding
|
||
SET deleted_at = NOW(),
|
||
bind_status = 2,
|
||
unbind_time = COALESCE(unbind_time, NOW()),
|
||
updated_at = NOW()
|
||
WHERE deleted_at IS NULL
|
||
AND (
|
||
device_id IN (SELECT id FROM tmp_del_device)
|
||
OR iot_card_id IN (SELECT id FROM tmp_del_cards)
|
||
);
|
||
|
||
-- 资产钱包:字段是 resource_type/resource_id
|
||
UPDATE tb_asset_wallet
|
||
SET deleted_at = NOW(),
|
||
updated_at = NOW()
|
||
WHERE deleted_at IS NULL
|
||
AND (
|
||
(resource_type = 'device' AND resource_id IN (SELECT id FROM tmp_del_device))
|
||
OR (resource_type = 'iot_card' AND resource_id IN (SELECT id FROM tmp_del_cards))
|
||
);
|
||
|
||
-- 释放全局唯一标识;这个表没有 deleted_at,物理删
|
||
DELETE FROM tb_asset_identifier
|
||
WHERE identifier IN (
|
||
'862639071883120',
|
||
'89860885192590574651',
|
||
'89860625750010463442',
|
||
'8986112520903882441'
|
||
)
|
||
OR (asset_type = 'device' AND asset_id IN (SELECT id FROM tmp_del_device))
|
||
OR (asset_type = 'iot_card' AND asset_id IN (SELECT id FROM tmp_del_cards));
|
||
|
||
-- 删除卡
|
||
UPDATE tb_iot_card
|
||
SET deleted_at = NOW(),
|
||
updated_at = NOW()
|
||
WHERE id IN (SELECT id FROM tmp_del_cards)
|
||
AND deleted_at IS NULL;
|
||
|
||
-- 删除设备
|
||
UPDATE tb_device
|
||
SET deleted_at = NOW(),
|
||
updated_at = NOW()
|
||
WHERE id IN (SELECT id FROM tmp_del_device)
|
||
AND deleted_at IS NULL;
|
||
|
||
COMMIT;
|