feat: 新增套餐使用记录实付金额快照字段 paid_amount
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m19s

- 新增迁移 000129:tb_package_usage 添加 paid_amount BIGINT 字段,存量数据通过 JOIN tb_order 回填
- PackageUsage Model 新增 PaidAmount *int64 字段
- 4 个写入点(order service 主套餐/加油包、auto_purchase 主套餐/加油包)赋值 order.ActualPaidAmount
- AssetPackageResponse DTO 新增 paid_amount 字段
- GetCurrentPackage / GetPackages 填充 paid_amount,接口直接返回购买价格无需 JOIN 订单表
This commit is contained in:
2026-04-18 10:19:21 +08:00
parent 4b8784d5e7
commit 2b3a9cb33f
15 changed files with 391 additions and 5 deletions

View File

@@ -0,0 +1 @@
ALTER TABLE tb_package_usage DROP COLUMN IF EXISTS paid_amount;

View File

@@ -0,0 +1,15 @@
-- 为 tb_package_usage 新增购买实付金额快照字段
-- paid_amount: 购买时从订单复制的实付金额nullable
-- 线下支付或企业无订单分配时为 null
ALTER TABLE tb_package_usage ADD COLUMN IF NOT EXISTS paid_amount BIGINT;
COMMENT ON COLUMN tb_package_usage.paid_amount IS '购买实付金额快照从订单复制无订单或线下支付时为null';
-- 存量数据回填:通过 order_id 关联 tb_order 回填 actual_paid_amount
-- order_id = 0 的记录(企业无订单分配)保持 null语义正确
UPDATE tb_package_usage pu
SET paid_amount = o.actual_paid_amount
FROM tb_order o
WHERE pu.order_id = o.id
AND pu.order_id != 0
AND pu.paid_amount IS NULL;