Files
one-pipe-system/openspec/changes/update-package-management-api/proposal.md
sexygoat d97dc5f007
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 4m40s
fetch(modify):修改套餐接口
2026-02-04 18:14:52 +08:00

83 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Change: 更新套餐管理API以支持新的佣金配置模型
## Why
根据最新的API文档`docs/修改原来的套餐管理.md`后端API规范发生了重大变更主要涉及:
1. **套餐系列** - 新增一次性佣金配置支持(包括固定/梯度佣金、强制充值、时效类型等复杂配置)
2. **系列分配** - 佣金配置模型完全重构从简单的base_commission改为更细粒度的配置
3. **单套餐分配** - 新增系列关联字段和分配者信息字段
当前前端实现的类型定义(`src/types/api/packageManagement.ts`和API服务与新规范不匹配需要更新以支持新的数据结构。
## What Changes
### 1. 类型定义重构
**修改**: `src/types/api/packageManagement.ts`
**套餐系列相关类型**:
- `PackageSeriesResponse` - 新增 `enable_one_time_commission``one_time_commission_config`
- `CreatePackageSeriesRequest` - 新增一次性佣金配置字段
- `UpdatePackageSeriesRequest` - 新增一次性佣金配置字段
- 新增 `SeriesOneTimeCommissionConfig` - 一次性佣金配置(支持固定/梯度模式)
- 新增 `OneTimeCommissionTier` - 梯度佣金档位配置
**系列分配相关类型**:
- **BREAKING**: `ShopSeriesAllocationResponse` - 完全重构字段结构
- 移除: `base_commission` (BaseCommissionConfig)
- 新增: `series_code`, `enable_force_recharge`, `enable_one_time_commission`, `force_recharge_amount`, `force_recharge_trigger_type`, `one_time_commission_amount`, `one_time_commission_threshold`, `one_time_commission_trigger`
- **BREAKING**: `CreateShopSeriesAllocationRequest` - 重构请求字段
- **BREAKING**: `UpdateShopSeriesAllocationRequest` - 重构请求字段
- 移除不再使用的类型: `BaseCommissionConfig`, `TierEntry`, `TierCommissionConfig`, `OneTimeCommissionTierEntry`, `OneTimeCommissionConfig`(旧版)
**单套餐分配相关类型**:
- `ShopPackageAllocationResponse` - 字段调整
- 新增: `series_id`, `series_name`, `series_allocation_id`, `allocator_shop_id`, `allocator_shop_name`
- 移除: `allocation_id` (重命名为 `series_allocation_id`), `calculated_cost_price`
- `ShopPackageAllocationQueryParams` - 新增 `series_allocation_id`, `allocator_shop_id` 筛选参数
### 2. API服务层无需修改
现有的API服务类`PackageSeriesService`, `ShopSeriesAllocationService`, `ShopPackageAllocationService`)的方法签名保持不变,只是底层数据类型发生变化。
### 3. 页面/组件适配(实施阶段处理)
以下文件需要适配新的数据结构(本提案阶段不编写代码):
- 套餐系列管理页面 - 需支持一次性佣金配置表单
- 系列分配页面 - 需重构佣金配置表单UI
- 单套餐分配页面 - 需展示新增的关联字段
## Impact
### 受影响的规范
- `package-series-management` - MODIFIED (新增一次性佣金配置能力)
- `shop-series-allocation` - MODIFIED (佣金配置模型重构)
- `shop-package-allocation` - MODIFIED (新增系列关联和分配者字段)
### 受影响的代码
- `src/types/api/packageManagement.ts` - **BREAKING CHANGE** 类型定义重构
- 所有使用 `ShopSeriesAllocationResponse` 的页面/组件 - 需适配新字段结构
- 所有使用 `PackageSeriesResponse` 的页面/组件 - 需处理新增的一次性佣金配置
### 依赖关系
- 后端API已按新规范实现`docs/修改原来的套餐管理.md`
- 前端需要先完成类型定义更新再更新UI组件
### 风险评估
- **高风险**: 这是一个BREAKING CHANGE会影响所有使用系列分配的功能
- **兼容性**: 需要确保后端API已更新否则会导致运行时错误
- **迁移成本**: 现有页面中的表单组件需要重写以支持新的数据结构
- **测试需求**: 需要全面测试套餐系列、系列分配、单套餐分配的所有CRUD操作
### 建议迁移策略
1. 先更新类型定义确保TypeScript编译通过
2. 逐个页面/组件适配新数据结构
3. 与后端联调确认新API规范工作正常
4. 完成后删除旧的、不再使用的类型定义