fix(partner): 全网平级奖截断阈值修正为不能少于0.10元(1角钱)
这个提交包含在:
@@ -3,7 +3,7 @@
|
||||
namespace addons\shopro\service\partner;
|
||||
|
||||
/**
|
||||
* 创客平级(逐代 10% 递减级联,最低发放 0.01 元后截断)/ 被超越 5%(只一层)
|
||||
* 创客平级(逐代 10% 递减级联,最低发放不能少于 0.10 元截断)/ 被超越 5%(只一层)
|
||||
*/
|
||||
class MakerPeerReward
|
||||
{
|
||||
@@ -12,6 +12,10 @@ class MakerPeerReward
|
||||
$bonus = PartnerConfig::makerBonus();
|
||||
$peerRate = (float) PartnerConfig::get('partner_maker_peer_rate', 0.10);
|
||||
$overRate = (float) PartnerConfig::get('partner_maker_overtaken_rate', 0.05);
|
||||
$minAmount = (float) PartnerConfig::get('partner_peer_min_amount', 0.10);
|
||||
if ($minAmount <= 0) {
|
||||
$minAmount = 0.10;
|
||||
}
|
||||
$maxPeerGenerations = (int) PartnerConfig::get('partner_maker_peer_max_generations', 50);
|
||||
if ($maxPeerGenerations <= 0) {
|
||||
$maxPeerGenerations = 50;
|
||||
@@ -43,8 +47,8 @@ class MakerPeerReward
|
||||
|
||||
$peer = $chain[$peerIdx];
|
||||
$amount = round($currentBase * $peerRate, 2);
|
||||
if ($amount < 0.01) {
|
||||
break;
|
||||
if ($amount < $minAmount) {
|
||||
break; // 收益少于 0.10 元,上级平级不再拿,严格截断
|
||||
}
|
||||
|
||||
if (!$active->isActive($peer['agent'] ?? $peer)) {
|
||||
@@ -80,7 +84,7 @@ class MakerPeerReward
|
||||
$currentBase = $amount;
|
||||
$sourceUserId = $peer['user_id'];
|
||||
|
||||
if ($currentBase < 0.01) {
|
||||
if ($currentBase < $minAmount) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -102,7 +106,7 @@ class MakerPeerReward
|
||||
PartnerRewardService::writeSkip($order, $buyerId, $lower['user_id'], 'maker_overtaken', 'maker', 'inactive_30d', '被超越创客 30 日无自购');
|
||||
return;
|
||||
}
|
||||
if ($amount < 0.01) {
|
||||
if ($amount < $minAmount) {
|
||||
return;
|
||||
}
|
||||
PartnerRewardService::account($order, $buyerId, $lower['user_id'], 'maker_overtaken', 'maker', $amount, $highest['cap'], [
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
namespace addons\shopro\service\partner;
|
||||
|
||||
/**
|
||||
* 酒道馆 / 区县平级 10% 逐代递减级联,最低发放 0.01 元截断
|
||||
* 酒道馆 / 区县平级 10% 逐代递减级联,最低发放不能少于 0.10 元截断
|
||||
*/
|
||||
class PeerShareReward
|
||||
{
|
||||
@@ -22,6 +22,11 @@ class PeerShareReward
|
||||
|
||||
protected function peer($order, $buyerId, $chain, $from, $flag, $type, $role, $rate, ActiveService $active, $label)
|
||||
{
|
||||
$minAmount = (float) PartnerConfig::get('partner_peer_min_amount', 0.10);
|
||||
if ($minAmount <= 0) {
|
||||
$minAmount = 0.10;
|
||||
}
|
||||
|
||||
$maxGenerations = intval(PartnerConfig::get("partner_{$role}_peer_max_generations", 50));
|
||||
if ($maxGenerations <= 0) {
|
||||
$maxGenerations = 50;
|
||||
@@ -45,8 +50,8 @@ class PeerShareReward
|
||||
|
||||
$peer = $chain[$peerIdx];
|
||||
$amount = round($currentBase * $rate, 2);
|
||||
if ($amount < 0.01) {
|
||||
break;
|
||||
if ($amount < $minAmount) {
|
||||
break; // 收益少于 0.10 元,上级平级不再拿,严格截断
|
||||
}
|
||||
|
||||
if (!$active->isActive($peer['agent'] ?? $peer)) {
|
||||
@@ -80,7 +85,7 @@ class PeerShareReward
|
||||
$currentBase = $amount;
|
||||
$sourceUserId = $peer['user_id'];
|
||||
|
||||
if ($currentBase < 0.01) {
|
||||
if ($currentBase < $minAmount) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
在新工单中引用
屏蔽一个用户