feat: 给 PackageUsage 添加 package_name 快照字段,修复企业卡列表 carrier_name/package_name 为空问题
- 迁移 000099:tb_package_usage 新增 package_name 列,回填历史数据 - PackageUsage model 添加 PackageName 字段(与 DataResetCycle 保持一致的快照设计) - 4 处 PackageUsage 创建点补充 PackageName 快照(order/service.go + auto_purchase.go) - EnterpriseCard ListCards:carrier_name 直接取 card.CarrierName,package_name 通过 DISTINCT ON 批量查当前生效主套餐,单次查询覆盖整页,无 N+1
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE tb_package_usage
|
||||
DROP COLUMN IF EXISTS package_name;
|
||||
15
migrations/000099_add_package_name_to_package_usage.up.sql
Normal file
15
migrations/000099_add_package_name_to_package_usage.up.sql
Normal file
@@ -0,0 +1,15 @@
|
||||
-- 给 tb_package_usage 添加 package_name 快照字段
|
||||
-- 用于展示套餐名称,避免每次展示时都需要 JOIN tb_package 表
|
||||
-- 与 data_reset_cycle 字段保持一致的快照设计
|
||||
|
||||
ALTER TABLE tb_package_usage
|
||||
ADD COLUMN IF NOT EXISTS package_name VARCHAR(255) NOT NULL DEFAULT '';
|
||||
|
||||
COMMENT ON COLUMN tb_package_usage.package_name IS '套餐名称快照(创建时从 tb_package 复制,用于历史记录展示)';
|
||||
|
||||
-- 回填历史数据:从 tb_package 表取套餐名称
|
||||
UPDATE tb_package_usage pu
|
||||
SET package_name = COALESCE(p.package_name, '')
|
||||
FROM tb_package p
|
||||
WHERE pu.package_id = p.id
|
||||
AND pu.package_name = '';
|
||||
Reference in New Issue
Block a user