Files
junhong_cmp_fiber/openspec/changes/fix-package-usage-paid-amount-cost-snapshot/proposal.md
break cbadf77517
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m28s
修复价格不一致的问题
2026-08-13 17:43:14 +08:00

1.5 KiB
Raw Blame History

Why

平台/管理员查看资产套餐列表时,paid_amount(成本价)字段取值错误。该字段在创建套餐使用记录时从订单 actual_paid_amount实付金额复制个人客户C 端)下单时实付金额等于零售价而非店铺成本价 seller_cost_price,导致平台视角「成本价」与「零售价」显示成同一个值(如成本 109 元的套餐被显示为成本价 159 元)。

What Changes

  • 将 4 个 PackageUsage 创建点的 PaidAmount 快照来源从 order.ActualPaidAmount 改为 order.SellerCostPrice(销售成本价)。
  • 同步更新 model.PackageUsage.PaidAmount 字段注释,反映成本价语义(来源 seller_cost_price)。
  • 不做历史数据回填:已写入错误的存量 paid_amount 保持原样。

Capabilities

New Capabilities

Modified Capabilities

  • package-lifecycle: 套餐使用记录 paid_amount(成本价)快照的取值来源从订单实付金额修正为订单销售成本价。

Impact

  • internal/service/order/service.goactivateMainPackageactivateAddonPackage 两处 PaidAmount 赋值。
  • internal/task/auto_purchase.go:自动购包主套餐、加油包两处 PaidAmount 赋值。
  • internal/model/package.goPackageUsage.PaidAmount 字段注释。
  • API 形状不变(仍返回 paid_amount / retail_amount),仅 paid_amount 取值语义变化;不新增迁移、不新增外部依赖。