Files
sexygoat 31440b2904
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 4m53s
fetch(modify):修改原来的bug
2026-01-31 11:18:37 +08:00

7.4 KiB

Package Series Allocation Spec Delta

MODIFIED Requirements

Requirement: 套餐系列分配列表查询

系统 SHALL 提供套餐系列分配列表查询功能,支持按店铺、系列和状态筛选,返回包含新佣金配置的分配信息。

Scenario: 成功获取分配列表

  • WHEN 用户请求套餐系列分配列表
  • THEN 系统返回分配列表,每项包含:
    • 基本信息: id, series_id, series_name, shop_id, shop_name
    • 分配者信息: allocator_shop_id, allocator_shop_name
    • 佣金配置: base_commission (mode, value), enable_tier_commission
    • 状态和时间: status, created_at, updated_at
  • AND 响应结构为: { list, page, page_size, total, total_pages }

Scenario: 按条件筛选分配列表

  • WHEN 用户提供筛选条件 (shop_id, series_id, status)
  • THEN 系统返回符合条件的分配列表
  • AND 支持分页参数 (page, page_size)

Requirement: 创建套餐系列分配

系统 SHALL 允许用户创建套餐系列分配,配置基础返佣和可选的梯度返佣规则。

Scenario: 创建基础返佣分配

  • WHEN 用户提交创建请求,包含:
    • series_id: 套餐系列ID
    • shop_id: 被分配的店铺ID
    • base_commission: { mode: "fixed"/"percent", value: number }
  • THEN 系统创建分配记录
  • AND 返回完整的分配信息包含 allocator_shop_id 和 allocator_shop_name

Scenario: 创建带梯度返佣的分配

  • WHEN 用户提交创建请求,包含:
    • series_id, shop_id, base_commission (同上)
    • enable_tier_commission: true
    • tier_config: { period_type, tier_type, tiers[] }
      • period_type: "monthly"/"quarterly"/"yearly"
      • tier_type: "sales_count"/"sales_amount"
      • tiers: [{ threshold, mode, value }]
  • THEN 系统创建分配记录并保存梯度配置
  • AND 梯度档位按阈值升序存储

Scenario: 验证梯度档位阈值递增

  • WHEN 用户提交的梯度档位阈值不是递增的
  • THEN 系统返回400错误
  • AND 错误消息说明阈值必须递增

Requirement: 更新套餐系列分配

系统 SHALL 允许用户更新现有分配的佣金配置,包括基础返佣和梯度返佣。

Scenario: 更新基础返佣配置

  • WHEN 用户提交更新请求,包含新的 base_commission
  • THEN 系统更新分配记录
  • AND 返回更新后的完整信息

Scenario: 启用或禁用梯度返佣

  • WHEN 用户更新 enable_tier_commission 标志
  • THEN 系统更新配置
  • AND 如果启用,必须提供有效的 tier_config
  • AND 如果禁用,tier_config 可以为空

Scenario: 更新梯度返佣配置

  • WHEN 用户提交包含新 tier_config 的更新请求
  • THEN 系统替换整个梯度配置
  • AND 验证新档位阈值递增
  • AND 返回更新后的信息

Requirement: 删除套餐系列分配

系统 SHALL 允许用户删除套餐系列分配记录。

Scenario: 成功删除分配

  • WHEN 用户请求删除指定ID的分配
  • THEN 系统删除该分配记录
  • AND 返回成功响应 (200)

Scenario: 删除不存在的分配

  • WHEN 用户请求删除不存在的分配ID
  • THEN 系统返回404错误
  • AND 错误消息说明分配不存在

Requirement: 获取套餐系列分配详情

系统 SHALL 提供单个分配记录的详细信息查询。

Scenario: 成功获取详情

  • WHEN 用户请求指定ID的分配详情
  • THEN 系统返回完整的分配信息,包括:
    • 所有基本字段
    • base_commission 对象
    • enable_tier_commission 标志
    • tier_config (如果启用了梯度返佣)

Requirement: 更新套餐系列分配状态

系统 SHALL 允许用户启用或禁用套餐系列分配。

Scenario: 切换分配状态

  • WHEN 用户提交状态更新请求 (status: 1启用/2禁用)
  • THEN 系统更新分配状态
  • AND 返回成功响应

Scenario: 禁用分配后的行为

  • WHEN 分配被禁用 (status: 2)
  • THEN 该分配不再参与佣金计算 (由后端业务逻辑保证)
  • AND 前端列表中状态显示为"禁用"

REMOVED Requirements

Requirement: 定价模式配置

Reason: 旧的定价模式 (pricing_mode, pricing_value) 已被新的佣金模型替代

Migration: 旧数据通过后端迁移脚本转换为基础返佣配置:

  • pricing_mode="fixed" → base_commission.mode="fixed"
  • pricing_mode="percentage" → base_commission.mode="percent"
  • pricing_value → base_commission.value (需要单位转换)

Requirement: 一次性佣金配置

Reason: 一次性佣金配置 (onetime_commission*) 已被梯度返佣系统替代

Migration: 旧的一次性佣金通过以下方式迁移:

  • 如果设置了一次性佣金,转换为单档位的梯度返佣
  • trigger → tier_type mapping (first_activation → sales_count, cumulative_recharge → sales_amount)
  • threshold → tiers[0].threshold
  • amount → tiers[0].value (mode设为fixed)

Requirement: 计算成本价字段

Reason: calculated_cost_price 字段在新模型中不再使用

Migration: 该字段不再返回,成本计算由后端业务逻辑内部处理

ADDED Requirements

Requirement: 基础返佣配置

系统 SHALL 为每个分配提供基础返佣配置,包含返佣模式和返佣值。

Scenario: 固定金额返佣

  • WHEN base_commission.mode = "fixed"
  • THEN base_commission.value 表示固定返佣金额(单位:分)
  • AND 每笔交易返佣该固定金额

Scenario: 百分比返佣

  • WHEN base_commission.mode = "percent"
  • THEN base_commission.value 表示返佣百分比的千分比 (如200表示20%)
  • AND 每笔交易返佣 = 交易金额 * (value / 1000)

Requirement: 梯度返佣配置

系统 SHALL 支持可选的梯度返佣配置,根据周期内的销量或销售额分档返佣。

Scenario: 按销量分档返佣

  • WHEN tier_config.tier_type = "sales_count"
  • THEN 系统根据周期内的销售数量匹配档位
  • AND 达到档位阈值后,该档位的返佣规则生效

Scenario: 按销售额分档返佣

  • WHEN tier_config.tier_type = "sales_amount"
  • THEN 系统根据周期内的销售金额(分)匹配档位
  • AND 达到档位阈值后,该档位的返佣规则生效

Scenario: 月度返佣周期

  • WHEN tier_config.period_type = "monthly"
  • THEN 系统按自然月统计销量或销售额
  • AND 每月初重置计数

Scenario: 季度返佣周期

  • WHEN tier_config.period_type = "quarterly"
  • THEN 系统按季度统计销量或销售额
  • AND 每季度初重置计数

Scenario: 年度返佣周期

  • WHEN tier_config.period_type = "yearly"
  • THEN 系统按年度统计销量或销售额
  • AND 每年初重置计数

Requirement: 梯度档位管理

系统 SHALL 支持多个返佣档位,每个档位有独立的阈值和返佣规则。

Scenario: 多档位返佣

  • WHEN 配置了多个档位 (tiers数组)
  • THEN 系统按阈值从低到高排列档位
  • AND 当销量/销售额超过某档位阈值时,使用该档位的返佣规则

Scenario: 档位阈值唯一性

  • WHEN 用户提交包含重复阈值的档位
  • THEN 系统返回400错误
  • AND 错误消息说明阈值必须唯一

Scenario: 档位返佣模式

  • WHEN 档位的 mode = "fixed"
  • THEN value 表示固定返佣金额(分)
  • WHEN 档位的 mode = "percent"
  • THEN value 表示返佣百分比的千分比