fix(partner): 创客协同第1代按下级实得进阶奖计算

同级第1代不再用等级标准基数,改为下级本单实际拿到的创客进阶奖乘比例。

Co-authored-by: Cursor <cursoragent@cursor.com>
这个提交包含在:
chen
2026-10-22 08:58:26 +08:00
父节点 092155c645
当前提交 ecdee1f53a
共有 2 个文件被更改,包括 53 次插入 和 8 次删除

查看文件

@@ -3,15 +3,13 @@
namespace addons\shopro\service\partner;
/**
* 创客协同(逐代 10% 递减级联,最低发放不能少于 0.10 元截断)/ 创客卓越 5%(只一层)
* 创客协同:第 1 代按下级本单实得进阶奖 × 比例,之后每代按上一笔协同奖 × 比例,低于 0.10 元截断。
* 创客卓越 5% 只发一层。
*/
class MakerPeerReward
{
public function run($order, $buyerId, $chain, $diffResult, ActiveService $active, $rules = null)
{
$bonus = (!empty($rules['maker_bonus']) && is_array($rules['maker_bonus']))
? $rules['maker_bonus']
: PartnerConfig::makerBonus();
$peerRate = (isset($rules['maker_peer_rate']) && is_numeric($rules['maker_peer_rate']))
? (float) $rules['maker_peer_rate']
: (float) PartnerConfig::get('partner_maker_peer_rate', 0.10);
@@ -38,9 +36,13 @@ class MakerPeerReward
continue;
}
$levelBonus = (float) ($bonus[$item['level']] ?? 0);
$itemAmount = (float) ($item['amount'] ?? 0);
if ($itemAmount <= 0) {
continue;
}
$currentFrom = $from;
$currentBase = $levelBonus;
$currentBase = $itemAmount;
$sourceUserId = $item['user_id'];
for ($gen = 1; $gen <= $maxPeerGenerations; $gen++) {