Files
junhong_cmp_fiber/openspec/specs/allocation-price-history/spec.md
huang 1da680a790
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m18s
重构: 店铺套餐分配系统从加价模式改为返佣模式
主要变更:
- 重构分配模型:从加价模式(pricing_mode/pricing_value)改为返佣模式(base_commission + tier_commission)
- 删除独立的 my_package 接口,统一到 /api/admin/packages(通过数据权限自动过滤)
- 新增批量分配和批量调价功能,支持事务和性能优化
- 新增配置版本管理,订单创建时锁定返佣配置
- 新增成本价历史记录,支持审计和纠纷处理
- 新增统计缓存系统(Redis + 异步任务),优化梯度返佣计算性能
- 删除冗余的梯度佣金独立 CRUD 接口(合并到分配配置中)
- 归档 3 个已完成的 OpenSpec changes 并同步 8 个新 capabilities 到 main specs

技术细节:
- 数据库迁移:000026_refactor_shop_package_allocation
- 新增 Store:AllocationConfigStore, PriceHistoryStore, CommissionStatsStore
- 新增 Service:BatchAllocationService, BatchPricingService, CommissionStatsService
- 新增异步任务:统计更新、定时同步、周期归档
- 测试覆盖:批量操作集成测试、梯度佣金 CRUD 清理验证

影响:
- API 变更:删除 4 个梯度 CRUD 接口(POST/GET/PUT/DELETE /:id/tiers)
- API 新增:批量分配、批量调价接口
- 数据模型:重构 shop_series_allocation 表结构
- 性能优化:批量操作使用 CreateInBatches,统计使用 Redis 缓存

相关文档:
- openspec/changes/archive/2026-01-28-refactor-shop-package-allocation/
- openspec/specs/agent-available-packages/
- openspec/specs/allocation-config-versioning/
- 等 8 个新 capability specs
2026-01-28 17:11:55 +08:00

60 lines
2.3 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.
# Capability: 分配成本价历史管理
## Purpose
本 capability 定义如何记录和查询套餐分配的成本价变更历史,支持审计和纠纷处理,确保历史记录不可篡改。
## Requirements
### Requirement: 成本价调整时记录历史
系统 SHALL 在代理调整套餐分配的成本价时,创建成本价变更历史记录。历史记录 MUST 包含:旧成本价、新成本价、变更原因、变更人、生效时间。
#### Scenario: 单个调整时创建历史记录
- **WHEN** 代理将套餐A的成本价从10000分调整为11000分原因为"市场调价"
- **THEN** 系统创建历史记录old = 10000, new = 11000, reason = "市场调价"
#### Scenario: 批量调整时批量创建历史记录
- **WHEN** 代理批量调整100个套餐的成本价
- **THEN** 系统创建100条历史记录
#### Scenario: 历史记录包含变更人信息
- **WHEN** 用户ID为456的代理调整成本价
- **THEN** 历史记录的 changed_by = 456
#### Scenario: 历史记录记录生效时间
- **WHEN** 代理在2026-01-28 10:00:00调整成本价
- **THEN** 历史记录的 effective_from = 2026-01-28 10:00:00
---
### Requirement: 查询成本价变更历史
系统 SHALL 允许代理查询指定套餐分配的成本价变更历史,按生效时间倒序排列。
#### Scenario: 查询套餐分配的成本价历史
- **WHEN** 代理查询分配ID为123的成本价历史
- **THEN** 系统返回该分配的所有成本价变更记录,最新变更在最前
#### Scenario: 历史记录包含完整变更信息
- **WHEN** 查询成本价历史
- **THEN** 每条记录包含:旧成本价、新成本价、变更原因、变更人、生效时间
#### Scenario: 支持按时间范围筛选历史
- **WHEN** 代理查询2026年1月的成本价变更
- **THEN** 系统返回effective_from在2026-01-01至2026-01-31之间的记录
---
### Requirement: 支持审计和纠纷处理
成本价历史记录 SHALL 支持审计和纠纷处理,系统 MUST 保证历史记录不可篡改(只能创建,不能修改或删除)。
#### Scenario: 历史记录不可修改
- **WHEN** 尝试修改已创建的历史记录
- **THEN** 系统拒绝操作
#### Scenario: 历史记录不可删除
- **WHEN** 尝试删除已创建的历史记录
- **THEN** 系统拒绝操作