修正数据
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m55s

This commit is contained in:
2026-04-27 18:10:08 +08:00
parent bb33232b1b
commit fe4c545308
57 changed files with 4477 additions and 226 deletions

View File

@@ -0,0 +1,4 @@
ALTER TABLE tb_package_usage
DROP COLUMN IF EXISTS enable_virtual_data_snapshot,
DROP COLUMN IF EXISTS display_gain_ratio_snapshot,
DROP COLUMN IF EXISTS virtual_total_mb_snapshot;

View File

@@ -0,0 +1,27 @@
-- 为 tb_package_usage 增加流量语义快照字段,并按当前套餐模板回填历史数据。
ALTER TABLE tb_package_usage
ADD COLUMN virtual_total_mb_snapshot BIGINT NOT NULL DEFAULT 0,
ADD COLUMN display_gain_ratio_snapshot DECIMAL(18,6) NOT NULL DEFAULT 1.0,
ADD COLUMN enable_virtual_data_snapshot BOOLEAN NOT NULL DEFAULT FALSE;
COMMENT ON COLUMN tb_package_usage.virtual_total_mb_snapshot IS '虚总量快照(业务停机阈值)';
COMMENT ON COLUMN tb_package_usage.display_gain_ratio_snapshot IS '展示倍率快照real_total_mb / virtual_total_mb';
COMMENT ON COLUMN tb_package_usage.enable_virtual_data_snapshot IS '是否启用虚流量快照';
UPDATE tb_package_usage pu
SET
virtual_total_mb_snapshot = CASE
WHEN p.enable_virtual_data = TRUE AND p.virtual_data_mb > 0 THEN p.virtual_data_mb
ELSE pu.data_limit_mb
END,
display_gain_ratio_snapshot = CASE
WHEN p.enable_virtual_data = TRUE AND p.virtual_data_mb > 0 THEN ROUND((pu.data_limit_mb::NUMERIC / p.virtual_data_mb::NUMERIC), 6)
ELSE 1.0
END,
enable_virtual_data_snapshot = CASE
WHEN p.enable_virtual_data = TRUE AND p.virtual_data_mb > 0 THEN TRUE
ELSE FALSE
END
FROM tb_package p
WHERE p.id = pu.package_id;

View File

@@ -0,0 +1,15 @@
ALTER TABLE tb_package_usage
ADD COLUMN real_data_usage_mb BIGINT NOT NULL DEFAULT 0,
ADD COLUMN virtual_data_usage_mb BIGINT NOT NULL DEFAULT 0;
COMMENT ON COLUMN tb_package_usage.real_data_usage_mb IS '历史遗留字段:真流量使用(MB)';
COMMENT ON COLUMN tb_package_usage.virtual_data_usage_mb IS '历史遗留字段:虚流量使用(MB)';
UPDATE tb_package_usage
SET
real_data_usage_mb = data_usage_mb,
virtual_data_usage_mb = CASE
WHEN enable_virtual_data_snapshot = TRUE AND virtual_total_mb_snapshot > 0
THEN LEAST(ROUND(data_usage_mb * display_gain_ratio_snapshot), data_limit_mb)::BIGINT
ELSE data_usage_mb
END;

View File

@@ -0,0 +1,5 @@
-- 删除 tb_package_usage 中已退出主链路的历史遗留流量字段。
ALTER TABLE tb_package_usage
DROP COLUMN IF EXISTS real_data_usage_mb,
DROP COLUMN IF EXISTS virtual_data_usage_mb;