All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m46s
- 移除 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") 替代
4.8 KiB
4.8 KiB
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中的TierCommissionConfig和TierEntry类型 - 删除
CreateShopSeriesAllocationRequest和UpdateShopSeriesAllocationRequest中的EnableTierCommission和TierConfig字段 - 删除
ShopSeriesAllocationResponse中的EnableTierCommission字段
- 删除
-
删除 Store 层
- 删除
internal/store/postgres/shop_series_commission_tier_store.go及其接口定义
- 删除
-
删除常量和枚举
- 删除
internal/model/commission.go中的CommissionSourceTierBonus常量 - 更新佣金来源说明(从三种改为两种:
cost_diff、one_time)
- 删除
-
更新统计和查询逻辑
- 删除佣金统计中的
TierBonusAmount、TierBonusCount、TierBonusPercent字段 - 更新
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表
- 创建 down migration 删除
-
更新 API 文档
- 更新 OpenAPI 规范,删除
TierCommissionConfig相关的 schema 定义
- 更新 OpenAPI 规范,删除
Capabilities
New Capabilities
无新增 capability。
Modified Capabilities
shop-series-allocation: 删除梯度返佣配置要求,简化为只支持基础返佣和一次性佣金两种机制shop-commission-tier: 整个 capability 将被废弃,因为梯度返佣功能完全移除commission-calculation: 删除tier_bonus佣金来源,明确只支持cost_diff和one_time两种佣金来源commission-record-query: 删除梯度奖励相关的统计字段(tier_bonus_amount、tier_bonus_count、tier_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_commission和tier_config字段PUT /api/shop-series-allocations/:id- 请求体删除enable_tier_commission和tier_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_amount、tier_bonus_count、tier_bonus_percent字段
数据库迁移:
- 需要创建新的 migration 删除
tb_shop_series_commission_tier表 - 需要删除
tb_shop_series_allocation和tb_shop_series_allocation_config表中的enable_tier_commission字段
依赖关系:
- 删除
ShopSeriesCommissionTierStore的依赖注入
破坏性变更:
- BREAKING: API 请求/响应结构变更(删除字段)
- BREAKING: 数据库表结构变更
- 注: 由于系统尚未上线,无历史数据兼容性问题
测试影响:
- 需要更新集成测试用例,删除
enable_tier_commission相关的测试场景 - 需要验证佣金计算逻辑仍然正常工作(只计算 cost_diff 和 one_time)
性能影响:
- 正面影响:简化数据模型,减少无用的表 JOIN 和查询
- 佣金统计查询性能提升(减少一个条件分支)