## MODIFIED Requirements ### Requirement: 套餐系列一次性佣金规则配置 系统 SHALL 在套餐系列层面配置一次性佣金的完整规则,包括触发条件、阈值、金额/梯度、时效、强充配置。梯度配置(`commission_type=tiered`)中每个档位 MUST 支持通过 `operator` 字段设置阈值比较运算符(`>`、`>=`、`<`、`<=`),默认值为 `>=`。 **变更说明**:梯度档位 `OneTimeCommissionTierDTO` 新增 `operator` 字段,创建/更新套餐系列时可传入并持久化,查询时返回。 #### Scenario: 配置首充规则 - **WHEN** 创建或更新套餐系列 - **AND** 设置一次性佣金规则:`trigger_type = first_recharge`,`threshold = 10000`(100元),`commission_amount = 2000`(20元) - **THEN** 系统保存该规则配置 #### Scenario: 配置累计充值规则 - **WHEN** 创建或更新套餐系列 - **AND** 设置一次性佣金规则:`trigger_type = accumulated_recharge`,`threshold = 20000`(200元),`commission_amount = 4000`(40元) - **THEN** 系统保存该规则配置 #### Scenario: 配置梯度规则(含 operator) - **WHEN** 创建或更新套餐系列,`commission_type = tiered` - **AND** 梯度配置包含 `operator` 字段:`[{operator: ">=", dimension: "sales_count", stat_scope: "self", threshold: 100, amount: 1000}, {operator: "<", dimension: "sales_count", stat_scope: "self", threshold: 50, amount: 500}]` - **THEN** 系统保存完整梯度配置(含 operator) - **AND** 查询详情时响应中 `tiers` 包含 `operator` 字段 #### Scenario: 配置梯度规则(不传 operator,向后兼容) - **WHEN** 创建或更新套餐系列,`commission_type = tiered` - **AND** 梯度配置未提供 `operator` 字段:`[{dimension: "sales_count", stat_scope: "self", threshold: 100, amount: 1000}]` - **THEN** 系统保存梯度配置,`operator` 存储为空值(计算引擎 fallback 到 `>=`) - **AND** 查询详情时响应中 `tiers` 的 `operator` 字段不出现(omitempty) #### Scenario: 查询系列详情包含规则 - **WHEN** 查询套餐系列详情 - **THEN** 返回完整的一次性佣金规则配置,梯度档位包含 `operator`、`dimension`、`stat_scope`、`threshold`、`amount`