清理冗余的梯度返佣(TierCommission)配置
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") 替代
This commit is contained in:
2026-01-30 14:57:24 +08:00
parent 409a68d60b
commit 1cf17e8f14
39 changed files with 978 additions and 407 deletions

View File

@@ -94,7 +94,11 @@
#### Scenario: 佣金来源类型
- **WHEN** 创建佣金记录
- **THEN** commission_source 为以下之一cost_diff成本价差、one_time一次性佣金、tier_bonus梯度奖励
- **THEN** commission_source 为以下之一cost_diff成本价差、one_time一次性佣金
#### Scenario: 不再支持梯度奖励来源
- **WHEN** 尝试创建 commission_source = "tier_bonus" 的佣金记录
- **THEN** 系统拒绝并返回错误 "不支持的佣金来源类型"
---

View File

@@ -8,10 +8,18 @@
- **WHEN** 代理查询佣金记录列表
- **THEN** 系统返回该店铺的所有佣金记录
#### Scenario: 按佣金来源筛选
#### Scenario: 按成本价差筛选
- **WHEN** 指定 commission_source 为 cost_diff
- **THEN** 系统只返回成本价差类型的佣金记录
#### Scenario: 按一次性佣金筛选
- **WHEN** 指定 commission_source 为 one_time
- **THEN** 系统只返回一次性佣金类型的佣金记录
#### Scenario: 使用已废弃的佣金来源筛选
- **WHEN** 指定 commission_source 为 tier_bonus
- **THEN** 系统返回空列表或返回错误 "不支持的佣金来源类型"
#### Scenario: 按时间范围筛选
- **WHEN** 指定开始时间和结束时间
- **THEN** 系统只返回该时间范围内的佣金记录
@@ -46,7 +54,11 @@
#### Scenario: 各来源占比
- **WHEN** 代理查询佣金统计
- **THEN** 系统返回各佣金来源的金额和占比cost_diff、one_time、tier_bonus
- **THEN** 系统返回各佣金来源的金额和占比cost_diff、one_time
#### Scenario: 统计响应不包含梯度奖励字段
- **WHEN** 代理查询佣金统计
- **THEN** 响应中不包含 tier_bonus_amount、tier_bonus_count、tier_bonus_percent 字段
#### Scenario: 按时间范围统计
- **WHEN** 指定时间范围查询统计

View File

@@ -1,13 +1,31 @@
# Capability: 店铺返佣梯度管理
**❌ CAPABILITY REMOVED** - 此 capability 已完全废弃
## Purpose
本 capability 定义代理如何为套餐系列分配配置和管理梯度返佣,包括添加、查询、更新和删除梯度配置。
## Requirements
**废弃原因**: 整个店铺返佣梯度管理 capability 被废弃。梯度返佣功能与一次性梯度佣金功能重复,且梯度返佣从未实现实际的佣金计算逻辑。系统简化为只支持基础返佣(成本价差)和一次性佣金两种机制。
**迁移指引**:
- 使用一次性佣金的梯度模式 (OneTimeCommissionConfig.type = "tiered") 替代
- 一次性佣金支持按销售数量 (tier_type = "sales_count") 或销售金额 (tier_type = "sales_amount") 设置梯度
- 一次性佣金每张卡/设备只触发一次,达到阈值后自动发放
- 删除所有梯度佣金配置相关的 API 端点:
- `POST /api/shop-series-allocations/:id/tiers` (添加梯度配置)
- `GET /api/shop-series-allocations/:id/tiers` (查询梯度配置)
- `PUT /api/shop-series-commission-tiers/:id` (更新梯度配置)
- `DELETE /api/shop-series-commission-tiers/:id` (删除梯度配置)
---
## REMOVED Requirements
### Requirement: 配置梯度佣金
**❌ REMOVED**
系统 SHALL 允许代理为套餐系列分配配置梯度佣金。每个梯度包含:梯度类型(销量/销售额)、周期类型(月度/季度/年度)、阈值、达标后的返佣配置(返佣模式和返佣值)。
#### Scenario: 添加销量梯度佣金
@@ -26,6 +44,8 @@
### Requirement: 查询梯度佣金配置
**❌ REMOVED**
系统 SHALL 提供梯度佣金配置的查询功能,按分配 ID 查询,返回结果按阈值升序排列。
#### Scenario: 查询分配的梯度配置
@@ -40,6 +60,8 @@
### Requirement: 更新梯度佣金配置
**❌ REMOVED**
系统 SHALL 允许代理更新梯度配置的阈值和返佣配置。
#### Scenario: 更新梯度阈值
@@ -54,6 +76,8 @@
### Requirement: 删除梯度佣金配置
**❌ REMOVED**
系统 SHALL 允许代理删除梯度配置。
#### Scenario: 删除梯度配置

View File

@@ -8,7 +8,7 @@
### Requirement: 为下级店铺分配套餐系列
系统 SHALL 允许代理为其直属下级店铺分配套餐系列。分配时 MUST 指定基础返佣配置返佣模式和返佣值MAY 启用梯度返佣。分配者只能分配自己已被分配的套餐系列。
系统 SHALL 允许代理为其直属下级店铺分配套餐系列。分配时 MUST 指定基础返佣配置返佣模式和返佣值MAY 启用一次性佣金。分配者只能分配自己已被分配的套餐系列。
#### Scenario: 成功分配套餐系列
- **WHEN** 代理为直属下级店铺分配一个自己拥有的套餐系列设置基础返佣为百分比20020%
@@ -44,7 +44,7 @@
### Requirement: 更新套餐系列分配
系统 SHALL 允许代理更新分配的基础返佣配置和梯度返佣开关。更新返佣配置时 MUST 创建新的配置版本。
系统 SHALL 允许代理更新分配的基础返佣配置和一次性佣金配置。更新返佣配置时 MUST 创建新的配置版本。
#### Scenario: 更新基础返佣配置时创建新版本
- **WHEN** 代理将基础返佣从20%改为25%
@@ -91,3 +91,21 @@
#### Scenario: 平台为一级代理分配
- **WHEN** 平台管理员为一级代理分配套餐系列
- **THEN** 系统创建分配记录
---
## REMOVED Requirements
### Requirement: 梯度返佣配置
**❌ REMOVED** - 此 requirement 已废弃
**原内容**: 分配时 MAY 启用梯度返佣
**Reason**: 梯度返佣 (TierCommission) 功能与一次性梯度佣金 (OneTimeCommission.tiered) 功能重复,且梯度返佣未实现实际计算逻辑,仅保留基础返佣和一次性佣金两种机制。
**Migration**:
- 如果需要根据销售业绩给予额外奖励,请使用一次性佣金的梯度模式 (OneTimeCommissionConfig.type = "tiered")
- 一次性佣金支持按销售数量或销售金额设置多个梯度档位
- API 请求中删除 `enable_tier_commission``tier_config` 字段
- API 响应中不再包含 `enable_tier_commission` 字段