From fb89fbbacb33721bb62a74b543457f7bbb498e2a Mon Sep 17 00:00:00 2001 From: apple Date: Mon, 6 Apr 2026 01:22:39 +0800 Subject: [PATCH] =?UTF-8?q?fix(hjf):=20=E7=BA=A7=E5=B7=AE=E4=B8=8B?= =?UTF-8?q?=E9=99=90=E4=BB=85=E5=9C=A8=E8=8A=82=E7=82=B9=E6=9C=89=E8=B5=84?= =?UTF-8?q?=E6=A0=BC=E7=9B=B4=E6=8E=A8=E5=A5=96=E6=97=B6=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 创客在 depth>0 被跳过时不应把其直推额并入 nextLower, 否则上级级差被多扣(问题4:云店 uid=2 应得 800 却只得 300)。 文档:问题3 标记已修复,补充问题4 记录。 Made-with: Cursor --- docs/fsgx-issues-0330-1.md | 12 +++++++++--- pro_v3.5.1/app/services/hjf/PointsRewardServices.php | 8 ++++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/docs/fsgx-issues-0330-1.md b/docs/fsgx-issues-0330-1.md index 813df051..bece5956 100644 --- a/docs/fsgx-issues-0330-1.md +++ b/docs/fsgx-issues-0330-1.md @@ -17,12 +17,18 @@ ## 分销员的**直推积分奖励**问题3 -- **重大调整**: **直推积分奖励**落库的时候,上级的分销等级是创客的时候检查必须是直推关系才发放积分奖励, 如果分销员级别大于创客则不需要是直推关系,只要是伞下关系就可以获得级差的**积分奖励**(级差的积分奖励同样更新到“直推积分奖励”的表字段中)。 +- **已修复****重大调整**: **直推积分奖励**落库的时候,上级的分销等级是创客的时候检查必须是直推关系才发放积分奖励, 如果分销员级别大于创客则不需要是直推关系,只要是伞下关系就可以获得级差的**积分奖励**(级差的积分奖励同样更新到“直推积分奖励”的表字段中)。 -- 范氏国香(mysql:47.94.76.64),用户推荐关系:uid=1->uid=2->uid=54->uid=55->uid=56, +- **已修复**范氏国香(mysql:47.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才对 diff --git a/pro_v3.5.1/app/services/hjf/PointsRewardServices.php b/pro_v3.5.1/app/services/hjf/PointsRewardServices.php index ceb8b257..3ff0ad70 100644 --- a/pro_v3.5.1/app/services/hjf/PointsRewardServices.php +++ b/pro_v3.5.1/app/services/hjf/PointsRewardServices.php @@ -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'],