Files
junhong_cmp_fiber/openspec/changes/package-price-fallback-and-platform-gift-policy/tasks.md
huang 37b4483183
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m55s
赠送套餐逻辑
2026-04-28 17:40:06 +08:00

3.0 KiB
Raw Blame History

1. 验证准备

  • 1.1 梳理现有价格读取、赠送发放和分配链路整理一份手工验证清单覆盖后台配置、C 端列表、下单、自动购包和授权发放。
  • 1.2 记录当前会受影响的接口与数据表,确认回滚点和历史数据来源,避免后续迁移时把未配置价格、赠送 0 价和旧的模糊 0 数据混在一起。
  • 1.3 对涉及的现有实现文件先跑一次 lsp_diagnostics,保留基线结果,作为改动前对比。

2. 数据模型与迁移

  • 2.1 为套餐及相关价格快照补充价格状态、赠送语义和平台专属标记的迁移设计,保持原始价格字段不变,并明确普通可售套餐不能显式配置 0。
  • 2.2 编写 golang-migrate 迁移文件,先加字段,再回填存量数据,确保历史记录能区分未配置价格、可明确识别的赠送 0 价和需要人工复核的旧 0 数据。
  • 2.3 补齐历史回填逻辑和回滚脚本,完成后用数据库核验确认字段状态、默认值、人工复核清单和历史记录数量一致。
  • 2.4 对迁移相关文件和模型定义运行 lsp_diagnostics,确认没有语法或引用错误。

3. 价格回退与展示链路

  • 3.1 提炼统一的生效价解析方法,确保普通可售套餐在建议零售价未配置时回退到成本价,同时保留原始值供配置页使用。
  • 3.2 更新后台套餐配置、编辑和详情返回值,只展示原始价格与价格状态,不把生效价写回配置字段。
  • 3.3 更新 C 端可购套餐列表、订单创建和自动购包链路,统一使用生效价累加、展示和落单。
  • 3.4 对价格回退链路做接口回放和手工验收,确认未配置价格回退正确、普通可售套餐显式 0 被拒绝、赠送 0 保持赠送语义。
  • 3.5 对改动后的价格相关服务、处理器和任务文件运行 lsp_diagnostics

4. 赠送套餐政策与授权发放

  • 4.1 在套餐授权与分配链路加入赠送语义校验,禁止代理拿到、转发或分配赠送套餐。
  • 4.2 在 C 端可购列表和购买校验里隐藏并拦截赠送套餐,确保用户无法通过自购路径获取。
  • 4.3 保留后台发放入口的赠送套餐授予能力,确保赠送加油包只能通过后台 grant 进入资产,同时在后台创建、编辑时拒绝非赠送套餐的显式 0。
  • 4.4 对赠送政策相关的服务、接口和任务文件运行 lsp_diagnostics,并用正反例手工核验平台专属与不可自购规则。

5. 文档与最终验收

  • 5.1 更新接口文档、字段说明和变更说明,明确原始值、生效值、未配置价格、赠送 0 价和普通套餐显式 0 被拒绝的区别。
  • 5.2 重新整理一份最终验收清单,覆盖价格回退、赠送拦截、平台发放和历史迁移四类核心场景。
  • 5.3 对所有改动文件做最终 lsp_diagnostics,再执行一次完整手工回归,确认没有遗漏的旧口径入口。