All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m45s
- 归档 fix-one-time-commission-config-and-accumulation 到 archive/2026-01-29-* - 同步 delta specs 到主规范(one-time-commission-trigger、commission-calculation) - 新增累计触发逻辑文档和测试用例 - 修复一次性佣金配置落库和累计充值更新逻辑
31 lines
1.6 KiB
Markdown
31 lines
1.6 KiB
Markdown
# 一次性佣金修复:配置可落库 + 累计触发可累加 + 单测修复
|
||
|
||
## 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` 及新增用例
|
||
|