feat: 实现一次性佣金功能
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m41s

- 新增佣金计算服务,支持一次性佣金和返佣计算
- 新增 ShopSeriesOneTimeCommissionTier 模型和存储层
- 新增两个数据库迁移:一次性佣金表和订单佣金字段
- 更新 Commission 模型,新增佣金来源和关联字段
- 更新 CommissionRecord 存储层,支持一次性佣金查询
- 更新 MyCommission 服务,集成一次性佣金计算逻辑
- 更新 ShopCommission 服务,支持一次性佣金统计
- 新增佣金计算异步任务处理器
- 更新 API 路由,新增一次性佣金相关端点
- 归档 OpenSpec 变更文档,同步规范到主规范库
This commit is contained in:
2026-01-29 09:36:12 +08:00
parent dfcf16f548
commit e87513541b
33 changed files with 1668 additions and 270 deletions

View File

@@ -0,0 +1,67 @@
## ADDED Requirements
### Requirement: 查询佣金记录列表
系统 SHALL 提供佣金记录列表查询,支持按店铺、佣金来源、时间范围、状态筛选。
#### Scenario: 代理查询自己店铺的佣金
- **WHEN** 代理查询佣金记录列表
- **THEN** 系统返回该店铺的所有佣金记录
#### Scenario: 按佣金来源筛选
- **WHEN** 指定 commission_source 为 cost_diff
- **THEN** 系统只返回成本价差类型的佣金记录
#### Scenario: 按时间范围筛选
- **WHEN** 指定开始时间和结束时间
- **THEN** 系统只返回该时间范围内的佣金记录
#### Scenario: 响应包含关联信息
- **WHEN** 查询佣金记录列表
- **THEN** 每条记录包含:订单号、卡/设备信息、套餐名称
---
### Requirement: 查询佣金记录详情
系统 SHALL 允许查询单条佣金记录的详细信息。
#### Scenario: 查询佣金详情
- **WHEN** 代理查询指定佣金记录详情
- **THEN** 系统返回完整的佣金信息和关联的订单、卡/设备信息
#### Scenario: 查询他人佣金
- **WHEN** 代理尝试查询其他店铺的佣金记录
- **THEN** 系统返回 "记录不存在" 错误
---
### Requirement: 佣金统计
系统 SHALL 提供佣金统计功能,包含总收入和各来源占比。
#### Scenario: 查询总收入
- **WHEN** 代理查询佣金统计
- **THEN** 系统返回总收入金额(所有已入账佣金之和)
#### Scenario: 各来源占比
- **WHEN** 代理查询佣金统计
- **THEN** 系统返回各佣金来源的金额和占比cost_diff、one_time、tier_bonus
#### Scenario: 按时间范围统计
- **WHEN** 指定时间范围查询统计
- **THEN** 系统只统计该时间范围内的佣金
---
### Requirement: 每日佣金统计
系统 SHALL 提供每日佣金统计查询。
#### Scenario: 查询每日统计
- **WHEN** 代理查询指定日期范围的每日统计
- **THEN** 系统返回每天的佣金总额和笔数
#### Scenario: 默认最近30天
- **WHEN** 代理查询每日统计不指定日期范围
- **THEN** 系统返回最近 30 天的数据