This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
## MODIFIED Requirements
|
||||
|
||||
### Requirement: 创建代理系列授权时提交初始套餐
|
||||
|
||||
系统 SHALL 在创建代理系列授权时要求提交 `packages`,且 `packages` 必须包含 1~100 个套餐项;套餐 ID 不得重复。创建成功响应 SHALL 保持完整授权详情结构不变。
|
||||
|
||||
#### Scenario: 创建授权并提交有效初始套餐
|
||||
|
||||
- **WHEN** 用户提交 `shop_id`、`series_id` 和包含 1~100 个不重复套餐项的 `packages`
|
||||
- **THEN** 前端提交 `POST /api/admin/shop-series-grants`
|
||||
- **AND** 每个套餐项携带必要的 `package_id`,新增或调价时携带 `cost_price`
|
||||
- **AND** 页面按接口返回的完整授权详情刷新授权信息
|
||||
|
||||
#### Scenario: 创建授权未选择套餐
|
||||
|
||||
- **WHEN** 用户未选择任何初始套餐
|
||||
- **THEN** 前端阻止提交并提示至少选择 1 个套餐
|
||||
|
||||
#### Scenario: 创建授权超过套餐数量上限或包含重复套餐
|
||||
|
||||
- **WHEN** 用户选择超过 100 个套餐或同一 `package_id` 重复出现
|
||||
- **THEN** 前端阻止提交并提示套餐数量或重复项错误
|
||||
|
||||
### Requirement: 合并套餐候选与授权状态
|
||||
|
||||
系统 SHALL 在套餐列表和授权详情相关页面以 `package_id` 为唯一键合并套餐候选数据与授权详情中的 `packages[]`。已授权套餐即使不在当前候选搜索结果中,也 SHALL 保留并标记为已授权。
|
||||
|
||||
#### Scenario: 候选套餐与已授权套餐合并
|
||||
|
||||
- **WHEN** 套餐候选列表和授权详情均加载成功
|
||||
- **THEN** 页面按 `package_id` 合并两者
|
||||
- **AND** 详情中的套餐显示为已授权并保留其成本价、生效条件和状态字段
|
||||
- **AND** 仅出现在候选列表中的套餐显示为未授权候选
|
||||
|
||||
#### Scenario: 候选搜索结果不包含已授权套餐
|
||||
|
||||
- **WHEN** 当前候选搜索结果缺少某个已授权套餐
|
||||
- **THEN** 页面仍从授权详情保留该套餐
|
||||
- **AND** 不将其误判为未授权或从当前编辑状态中删除
|
||||
|
||||
### Requirement: 后续套餐管理使用批量操作删除
|
||||
|
||||
系统 SHALL 使用 `PUT /api/admin/shop-series-grants/{id}/packages` 管理既有授权套餐。新增和调价提交套餐项,删除套餐授权 SHALL 提交对应套餐项的 `remove: true`;操作成功后 SHALL 按接口返回的完整授权详情刷新页面。
|
||||
|
||||
#### Scenario: 新增或调整授权套餐
|
||||
|
||||
- **WHEN** 用户在已有授权中新增套餐或调整成本价
|
||||
- **THEN** 前端提交 `packages[]` 中对应的套餐项及成本价
|
||||
- **AND** 不调用独立删除接口
|
||||
|
||||
#### Scenario: 删除授权套餐
|
||||
|
||||
- **WHEN** 用户删除已有授权套餐
|
||||
- **THEN** 前端提交 `{ package_id, remove: true }`
|
||||
- **AND** 页面使用接口返回的完整授权详情刷新套餐列表
|
||||
|
||||
#### Scenario: 套餐管理响应结构保持不变
|
||||
|
||||
- **WHEN** 套餐批量管理接口成功
|
||||
- **THEN** 前端按详情响应读取授权基本信息、佣金配置、强充配置、`packages[]`、状态和时间字段
|
||||
- **AND** 不要求后端返回新的响应包装结构
|
||||
Reference in New Issue
Block a user