Files
junhong_cmp_fiber/openspec/changes/archive/2026-01-30-remove-tier-commission-redundancy/proposal.md
huang 1cf17e8f14
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m46s
清理冗余的梯度返佣(TierCommission)配置
- 移除 Model 层:删除 ShopSeriesCommissionTier 模型及相关字段
- 更新 DTO:删除 TierCommissionConfig、TierEntry 类型及相关请求/响应字段
- 删除 Store 层:移除 ShopSeriesCommissionTierStore 及相关查询逻辑
- 简化 Service 层:删除梯度返佣处理逻辑,统计查询移除 tier_bonus 字段
- 数据库迁移:创建 000034_remove_tier_commission 移除相关表和字段
- 更新测试:移除梯度返佣相关测试用例,更新集成测试
- OpenAPI 文档:删除梯度返佣相关 schema 和枚举值
- 归档变更:归档 remove-tier-commission-redundancy 到 archive/2026-01-30-
- 同步规范:更新 4 个主 specs,标记废弃功能并添加迁移指引

原因:梯度返佣功能与一次性梯度佣金功能重复,且从未实现实际计算逻辑
迁移:使用一次性佣金的梯度模式 (OneTimeCommissionConfig.type = "tiered") 替代
2026-01-30 14:57:24 +08:00

4.8 KiB
Raw Blame History

Why

当前套餐系列分配中存在两套梯度佣金配置:一个是 TierCommission(梯度返佣),另一个是 OneTimeCommission.tiered(一次性梯度佣金)。这两者功能高度重复,导致概念混淆。经过探索发现,TierCommission 仅有数据库表和 DTO 定义,但没有实际的计算逻辑实现,而系统实际需要的佣金机制是:基础返佣(成本价差)+ 一次性佣金(固定或梯度)。因此需要删除冗余的 TierCommission 相关代码,简化佣金配置模型。

What Changes

  • 删除数据库表和字段

    • 删除 tb_shop_series_commission_tier 表(梯度返佣配置表)
    • 删除 tb_shop_series_allocation.enable_tier_commission 字段
    • 删除 tb_shop_series_allocation_config.enable_tier_commission 字段(配置快照表)
  • 删除 Model 和 DTO

    • 删除 internal/model/shop_series_commission_tier.go 模型
    • 删除 internal/model/dto/shop_series_allocation.go 中的 TierCommissionConfigTierEntry 类型
    • 删除 CreateShopSeriesAllocationRequestUpdateShopSeriesAllocationRequest 中的 EnableTierCommissionTierConfig 字段
    • 删除 ShopSeriesAllocationResponse 中的 EnableTierCommission 字段
  • 删除 Store 层

    • 删除 internal/store/postgres/shop_series_commission_tier_store.go 及其接口定义
  • 删除常量和枚举

    • 删除 internal/model/commission.go 中的 CommissionSourceTierBonus 常量
    • 更新佣金来源说明(从三种改为两种:cost_diffone_time
  • 更新统计和查询逻辑

    • 删除佣金统计中的 TierBonusAmountTierBonusCountTierBonusPercent 字段
    • 更新 internal/model/dto/commission.go 中的 CommissionStatsResponse
    • 更新 internal/store/postgres/commission_record_store.go 中的统计查询 SQL
  • 删除相关测试

    • 删除 tests/integration/shop_series_allocation_test.go 中与 enable_tier_commission 相关的测试用例
  • 创建数据库迁移

    • 创建 down migration 删除 enable_tier_commission 字段和 tb_shop_series_commission_tier
  • 更新 API 文档

    • 更新 OpenAPI 规范,删除 TierCommissionConfig 相关的 schema 定义

Capabilities

New Capabilities

无新增 capability。

Modified Capabilities

  • shop-series-allocation: 删除梯度返佣配置要求,简化为只支持基础返佣和一次性佣金两种机制
  • shop-commission-tier: 整个 capability 将被废弃,因为梯度返佣功能完全移除
  • commission-calculation: 删除 tier_bonus 佣金来源,明确只支持 cost_diffone_time 两种佣金来源
  • commission-record-query: 删除梯度奖励相关的统计字段(tier_bonus_amounttier_bonus_counttier_bonus_percent

Impact

受影响的代码模块

  • Handler: internal/handler/shop_series_allocation_handler.go(删除 tier_config 参数处理)
  • Service: internal/service/shop_series_allocation/service.go(删除 tier 相关业务逻辑)
  • Store: internal/store/postgres/shop_series_commission_tier_store.go(整个文件删除)
  • Store: internal/store/postgres/commission_record_store.go(删除 tier_bonus 统计)
  • Model: internal/model/shop_series_commission_tier.go(整个文件删除)
  • DTO: internal/model/dto/shop_series_allocation.go(删除 TierCommissionConfig
  • DTO: internal/model/dto/commission.go(删除 tier_bonus 统计字段)

受影响的 API 端点

  • POST /api/shop-series-allocations - 请求体删除 enable_tier_commissiontier_config 字段
  • PUT /api/shop-series-allocations/:id - 请求体删除 enable_tier_commissiontier_config 字段
  • GET /api/shop-series-allocations - 响应删除 enable_tier_commission 字段
  • GET /api/shop-series-allocations/:id - 响应删除 enable_tier_commission 字段
  • GET /api/my-commission/stats - 响应删除 tier_bonus_amounttier_bonus_counttier_bonus_percent 字段

数据库迁移

  • 需要创建新的 migration 删除 tb_shop_series_commission_tier
  • 需要删除 tb_shop_series_allocationtb_shop_series_allocation_config 表中的 enable_tier_commission 字段

依赖关系

  • 删除 ShopSeriesCommissionTierStore 的依赖注入

破坏性变更

  • BREAKING: API 请求/响应结构变更(删除字段)
  • BREAKING: 数据库表结构变更
  • : 由于系统尚未上线,无历史数据兼容性问题

测试影响

  • 需要更新集成测试用例,删除 enable_tier_commission 相关的测试场景
  • 需要验证佣金计算逻辑仍然正常工作(只计算 cost_diff 和 one_time

性能影响

  • 正面影响:简化数据模型,减少无用的表 JOIN 和查询
  • 佣金统计查询性能提升(减少一个条件分支)