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") 替代
89 lines
4.8 KiB
Markdown
89 lines
4.8 KiB
Markdown
## 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 和查询
|
||
- 佣金统计查询性能提升(减少一个条件分支)
|