# 店铺佣金梯度变更

## MODIFIED Requirements

### Requirement: 梯度统计范围开关

系统 SHALL 支持配置梯度佣金的统计范围：仅自己（self）或自己+下级（self_and_sub）。

**变更说明**：新增 `stat_scope` 字段，允许配置统计是否包含下级代理的销量/销售额。

#### Scenario: 配置统计范围-仅自己
- **WHEN** 配置梯度规则时设置 `stat_scope = self`
- **THEN** 系统保存该配置
- **AND** 计算梯度时只统计该代理直接产生的销量/销售额

#### Scenario: 配置统计范围-自己+下级
- **WHEN** 配置梯度规则时设置 `stat_scope = self_and_sub`
- **THEN** 系统保存该配置
- **AND** 计算梯度时统计该代理及所有下级代理的销量/销售额之和

---

### Requirement: 梯度统计周期

梯度佣金的统计周期 SHALL 与一次性佣金时效一致。时效结束后统计归零。

**变更说明**：统计周期从独立配置改为与一次性佣金时效绑定。

#### Scenario: 时效内统计
- **WHEN** 一次性佣金时效为3个月（relative = 3）
- **THEN** 销量/销售额统计只计算这3个月内的数据

#### Scenario: 时效结束统计重置
- **WHEN** 一次性佣金时效到期
- **AND** 配置了新的时效周期
- **THEN** 销量/销售额统计从零开始

#### Scenario: 永久时效
- **WHEN** 一次性佣金时效为永久（permanent）
- **THEN** 销量/销售额永久累计，不会重置

---

### Requirement: ShopSeriesOneTimeCommissionTier 模型新增字段

系统 MUST 在 ShopSeriesOneTimeCommissionTier 模型中新增统计范围字段：

**新增字段**：
- `stat_scope`：统计范围，varchar(20)，可选值 `self`/`self_and_sub`，默认 `self`

#### Scenario: 查询梯度配置包含统计范围
- **WHEN** 查询梯度配置详情
- **THEN** 返回包含 `stat_scope` 字段
