refactor: 一次性佣金配置从套餐级别提升到系列级别
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m29s

主要变更:
- 新增 tb_shop_series_allocation 表,存储系列级别的一次性佣金配置
- ShopPackageAllocation 移除 one_time_commission_amount 字段
- PackageSeries 新增 enable_one_time_commission 字段控制是否启用一次性佣金
- 新增 /api/admin/shop-series-allocations CRUD 接口
- 佣金计算逻辑改为从 ShopSeriesAllocation 获取一次性佣金金额
- 删除废弃的 ShopSeriesOneTimeCommissionTier 模型
- OpenAPI Tag '系列分配' 和 '单套餐分配' 合并为 '套餐分配'

迁移脚本:
- 000042: 重构佣金套餐模型
- 000043: 简化佣金分配
- 000044: 一次性佣金分配重构
- 000045: PackageSeries 添加 enable_one_time_commission 字段

测试:
- 新增验收测试 (shop_series_allocation, commission_calculation)
- 新增流程测试 (one_time_commission_chain)
- 删除过时的单元测试(已被验收测试覆盖)
This commit is contained in:
2026-02-04 14:28:44 +08:00
parent fba8e9e76b
commit b18ecfeb55
106 changed files with 9899 additions and 6608 deletions

View File

@@ -14,7 +14,7 @@ func registerShopPackageAllocationRoutes(router fiber.Router, handler *admin.Sho
Register(allocations, doc, groupPath, "GET", "", handler.List, RouteSpec{
Summary: "单套餐分配列表",
Tags: []string{"套餐分配"},
Tags: []string{"套餐分配"},
Input: new(dto.ShopPackageAllocationListRequest),
Output: new(dto.ShopPackageAllocationPageResult),
Auth: true,
@@ -22,7 +22,7 @@ func registerShopPackageAllocationRoutes(router fiber.Router, handler *admin.Sho
Register(allocations, doc, groupPath, "POST", "", handler.Create, RouteSpec{
Summary: "创建单套餐分配",
Tags: []string{"套餐分配"},
Tags: []string{"套餐分配"},
Input: new(dto.CreateShopPackageAllocationRequest),
Output: new(dto.ShopPackageAllocationResponse),
Auth: true,
@@ -30,7 +30,7 @@ func registerShopPackageAllocationRoutes(router fiber.Router, handler *admin.Sho
Register(allocations, doc, groupPath, "GET", "/:id", handler.Get, RouteSpec{
Summary: "获取单套餐分配详情",
Tags: []string{"套餐分配"},
Tags: []string{"套餐分配"},
Input: new(dto.IDReq),
Output: new(dto.ShopPackageAllocationResponse),
Auth: true,
@@ -38,7 +38,7 @@ func registerShopPackageAllocationRoutes(router fiber.Router, handler *admin.Sho
Register(allocations, doc, groupPath, "PUT", "/:id", handler.Update, RouteSpec{
Summary: "更新单套餐分配",
Tags: []string{"套餐分配"},
Tags: []string{"套餐分配"},
Input: new(dto.UpdateShopPackageAllocationParams),
Output: new(dto.ShopPackageAllocationResponse),
Auth: true,
@@ -46,7 +46,7 @@ func registerShopPackageAllocationRoutes(router fiber.Router, handler *admin.Sho
Register(allocations, doc, groupPath, "DELETE", "/:id", handler.Delete, RouteSpec{
Summary: "删除单套餐分配",
Tags: []string{"套餐分配"},
Tags: []string{"套餐分配"},
Input: new(dto.IDReq),
Output: nil,
Auth: true,
@@ -54,7 +54,7 @@ func registerShopPackageAllocationRoutes(router fiber.Router, handler *admin.Sho
Register(allocations, doc, groupPath, "PUT", "/:id/status", handler.UpdateStatus, RouteSpec{
Summary: "更新单套餐分配状态",
Tags: []string{"套餐分配"},
Tags: []string{"套餐分配"},
Input: new(dto.UpdateStatusParams),
Output: nil,
Auth: true,
@@ -62,7 +62,7 @@ func registerShopPackageAllocationRoutes(router fiber.Router, handler *admin.Sho
Register(allocations, doc, groupPath, "PUT", "/:id/cost-price", handler.UpdateCostPrice, RouteSpec{
Summary: "更新单套餐分配成本价",
Tags: []string{"套餐分配"},
Tags: []string{"套餐分配"},
Input: new(dto.IDReq),
Output: new(dto.ShopPackageAllocationResponse),
Auth: true,