## ADDED Requirements ### Requirement: 新增提现配置 系统 SHALL 提供新增佣金提现配置的接口。 **接口**:`POST /api/admin/commission/withdrawal-settings` **请求参数**: - `daily_withdrawal_limit`:每日提现次数限制(必填) - `min_withdrawal_amount`:最低提现金额,分(必填) - `fee_rate`:手续费比率,基点(必填,100=1%) **响应字段**: - 配置详情(id, daily_withdrawal_limit, min_withdrawal_amount, fee_rate) - 状态(is_active) - 创建信息(creator_name, created_at) #### Scenario: 创建第一个配置 - **WHEN** 系统没有任何提现配置时创建新配置 - **THEN** 新配置的 `is_active` 设为 true - **AND** 记录创建人ID #### Scenario: 创建新配置替换旧配置 - **WHEN** 系统已有生效配置时创建新配置 - **THEN** 旧配置的 `is_active` 设为 false - **AND** 新配置的 `is_active` 设为 true - **AND** 使用事务确保原子性 #### Scenario: 仅平台用户可创建配置 - **WHEN** 非平台用户尝试创建配置 - **THEN** 返回权限错误 --- ### Requirement: 查询提现配置列表 系统 SHALL 提供查询提现配置历史记录的接口。 **接口**:`GET /api/admin/commission/withdrawal-settings` **请求参数**: - `page`:页码(默认1) - `page_size`:每页数量(默认20) **响应字段**: - 配置列表(id, daily_withdrawal_limit, min_withdrawal_amount, fee_rate, is_active) - 创建信息(creator_id, creator_name, created_at) - 分页信息(total, page, page_size) #### Scenario: 查询所有配置历史 - **WHEN** 请求配置列表 - **THEN** 返回所有配置记录(包括已失效的) - **AND** 按创建时间倒序排列 #### Scenario: 标识当前生效配置 - **WHEN** 返回配置列表 - **THEN** 当前生效的配置 `is_active=true` - **AND** 历史配置 `is_active=false` --- ### Requirement: 获取当前生效配置 系统 SHALL 提供获取当前生效提现配置的接口。 **接口**:`GET /api/admin/commission/withdrawal-settings/current` **响应字段**: - 配置详情(id, daily_withdrawal_limit, min_withdrawal_amount, fee_rate) - 状态(is_active=true) - 创建信息(creator_name, created_at) #### Scenario: 获取当前配置 - **WHEN** 请求当前生效配置 - **THEN** 返回 `is_active=true` 的配置 #### Scenario: 无生效配置时 - **WHEN** 系统没有任何提现配置 - **THEN** 返回空或默认配置提示 --- ### Requirement: 提现配置应用规则 系统 SHALL 在代理商发起提现时应用当前生效的配置。 #### Scenario: 应用每日提现次数限制 - **WHEN** 代理商今日提现次数达到限制 - **THEN** 拒绝新的提现申请 - **AND** 返回错误:今日提现次数已达上限 #### Scenario: 应用最低提现金额 - **WHEN** 提现金额低于最低限制 - **THEN** 拒绝提现申请 - **AND** 返回错误:提现金额不能低于 X 元 #### Scenario: 应用手续费比率 - **WHEN** 创建提现申请 - **THEN** 按当前费率计算手续费 - **AND** 将费率快照记录到申请记录中 #### Scenario: 费率快照不受后续修改影响 - **WHEN** 提现申请创建后费率配置变更 - **THEN** 已创建的申请仍使用申请时的费率