# 一次性佣金修复 - 实现任务 ## 1. 配置落库(ShopSeriesAllocation) - [x] 1.1 更新 `internal/service/shop_series_allocation/service.go`:在创建分配时处理 `EnableOneTimeCommission/OneTimeCommissionConfig` 并落库 - [x] 1.2 更新 `internal/service/shop_series_allocation/service.go`:在更新分配时支持更新一次性佣金配置并落库 - [x] 1.3 梯度配置:使用 `ShopSeriesOneTimeCommissionTierStore` 在创建/更新时写入 tiers(更新时先清理再重建) - [x] 1.4 参数校验:启用一次性佣金时必须提供配置;fixed 必须有 mode/value;tiered 必须有 tiers ## 2. 累计触发逻辑修复 - [x] 2.1 更新 `internal/service/commission_calculation/service.go`:累计触发场景每次支付成功都写回累计金额 - [x] 2.2 达到阈值时仅发放一次,发放后标记 `FirstCommissionPaid=true` ## 3. 测试修复与补充 - [x] 3.1 修复 `tests/unit/my_commission_service_test.go`:将 `CommissionType` 调整为 `CommissionSource` - [x] 3.2 新增测试:一次性佣金配置落库(含 tiered tiers 落库) - [x] 3.3 新增测试:累计触发多次支付后达到阈值触发一次性佣金且不重复 - [x] 3.4 确保 Service 层测试覆盖率 ≥ 90%(核心业务逻辑) - [x] 3.5 新增集成测试:完整的配置→支付→分佣发放流程(端到端验证) ## 4. 文档更新 - [x] 4.1 更新 API 文档:`ShopSeriesAllocation` 创建/更新接口的一次性佣金参数说明 - [x] 4.2 更新业务流程文档:累计触发逻辑流程图(如适用) - [x] 4.3 同步更新 `docs/` 目录下的相关说明(如有专门的分佣文档) ## 5. 验证 - [x] 5.1 运行 `go test ./...` 确保通过