fix(hjf): 级差下限仅在节点有资格直推奖时更新

创客在 depth>0 被跳过时不应把其直推额并入 nextLower,
否则上级级差被多扣(问题4:云店 uid=2 应得 800 却只得 300)。
文档:问题3 标记已修复,补充问题4 记录。

Made-with: Cursor
This commit is contained in:
apple
2026-04-06 01:22:39 +08:00
parent d94fea8215
commit fb89fbbacb
2 changed files with 15 additions and 5 deletions

View File

@@ -17,12 +17,18 @@
## 分销员的**直推积分奖励**问题3
- **重大调整** **直推积分奖励**落库的时候,上级的分销等级是创客的时候检查必须是直推关系才发放积分奖励, 如果分销员级别大于创客则不需要是直推关系,只要是伞下关系就可以获得级差的**积分奖励**(级差的积分奖励同样更新到“直推积分奖励”的表字段中)。
- **已修复****重大调整** **直推积分奖励**落库的时候,上级的分销等级是创客的时候检查必须是直推关系才发放积分奖励, 如果分销员级别大于创客则不需要是直推关系,只要是伞下关系就可以获得级差的**积分奖励**(级差的积分奖励同样更新到“直推积分奖励”的表字段中)。
- 范氏国香mysql47.94.76.64用户推荐关系uid=1->uid=2->uid=54->uid=55->uid=56,
- **已修复**范氏国香mysql47.94.76.64用户推荐关系uid=1->uid=2->uid=54->uid=55->uid=56,
用户行为发生目前数据库中有订单和用户数据Uid=55和Uid=56有2笔最新的购买报单商品的订单记录后检查uid=1和Uid=2的直推积分奖励情况.
## 分销员的**直推积分奖励**问题4
- 用户推荐关系uid=1->uid=2->uid=65->uid=66->uid=67, U67购买报单商品的订单记录后, 发现一个NG项
1.Uid=66佣金OK
2.Uid=65没有直推积分奖励OK
3.Uid=2得800直推积分奖励NG
4.Uid=1得200直推积分奖励OK
uid=2应该拿全部的级差积分奖励800才对

View File

@@ -165,8 +165,12 @@ class PointsRewardServices extends BaseServices
}
}
// 级差下限始终更新(不论本节点是否获奖),保证上级只拿增量差额
$nextLower = max($directReward, $lowerDirectReward);
// 级差下限仅在本节点实际有资格获奖时才更新:
// 若节点被跳过(创客在 depth>0其 directReward 不应计入下限,
// 否则上级会被扣减一笔从未发出的积分fsgx 问题4
$nextLower = $isEligibleForDirect
? max($directReward, $lowerDirectReward)
: $lowerDirectReward;
if ($user['spread_uid']) {
$this->propagateReward(
(int)$user['spread_uid'],