# 一次性佣金修复:配置可落库 + 累计触发可累加 + 单测修复 ## Why 一次性佣金能力已引入配置字段与计算逻辑,但目前存在两类关键问题: 1. **配置无法生效**:你确认希望通过 `ShopSeriesAllocation` 的创建/更新接口(B=1)直接配置一次性佣金并落库生效;否则会出现“接口看起来支持配置,但实际不生效”的问题。 2. **累计触发无法累加**:你确认累计规则为“每次购买都要累加,达到阈值就发放佣金”;如果不写回累计值,阈值永远达不到。 此外,相关单测目前编译失败,需要修复以保证回归可控。 ## What Changes - **一次性佣金配置落库**: - 在 `ShopSeriesAllocation` 创建/更新时写入一次性佣金相关字段 - 若类型为梯度(tiered),同步维护 `tb_shop_series_one_time_commission_tier` 档位数据(更新时先清理再重建或做差量更新) - **累计触发逻辑修复**: - 对“累计充值触发”场景,每次支付成功都写回累计金额 - 达到阈值的那次发放一次性佣金,并标记 `FirstCommissionPaid` 防止重复发放 - **测试修复与补充**: - 修复 `tests/unit/my_commission_service_test.go` 字段不匹配导致的编译失败 - 新增测试覆盖:配置落库与累计逻辑 ## Impact 涉及模块(预期): - 分配配置:`internal/service/shop_series_allocation/service.go`、`internal/store/postgres/shop_series_one_time_commission_tier_store.go` - 佣金计算:`internal/service/commission_calculation/service.go` - 测试:`tests/unit/my_commission_service_test.go` 及新增用例