## 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` 表 - **更新 API 文档** - 更新 OpenAPI 规范,删除 `TierCommissionConfig` 相关的 schema 定义 ## 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 和查询 - 佣金统计查询性能提升(减少一个条件分支)