Files
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

89 lines
4.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 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 和查询
- 佣金统计查询性能提升(减少一个条件分支)