|
|
@@ -403,6 +403,9 @@ class StoreOrderSuccessServices extends BaseServices
|
|
|
// 获取佣金服务(一次性创建,复用)
|
|
|
/** @var UserBrokerageServices $userBrokerageServices */
|
|
|
$userBrokerageServices = app()->make(UserBrokerageServices::class);
|
|
|
+ //获取额度服务(一次性创建,复用)
|
|
|
+ /** @var \app\services\user\UserGiftQuotaServices $userGiftQuotaServices */
|
|
|
+ $userGiftQuotaServices = app()->make(\app\services\user\UserGiftQuotaServices::class);
|
|
|
//冻结时间
|
|
|
$frozenTime = time() + intval(sys_config('extract_time')) * 86400;
|
|
|
|
|
|
@@ -414,7 +417,17 @@ class StoreOrderSuccessServices extends BaseServices
|
|
|
$pid_brokerage = $userServices->getOne(['uid' => $userRelation['pid']]);
|
|
|
$userServices->bcInc($userRelation['pid'], 'brokerage_price', $directBrokerage, 'uid');
|
|
|
@file_put_contents('quanju4.txt', $directBrokerage . "-直推奖励\r\n", 8);
|
|
|
-
|
|
|
+
|
|
|
+ // 扣除直推上级的额度
|
|
|
+ $userServices->bcInc($userRelation['pid'], 'quota', -$directBrokerage, 'uid');
|
|
|
+ $quotaBalance = bcadd($pid_brokerage['quota'] ?? 0, -$directBrokerage, 2);
|
|
|
+ $userGiftQuotaServices->income('use_direct_referral_quota', $userRelation['pid'], [
|
|
|
+ 'nickname' => $userInfo['nickname'],
|
|
|
+ 'pay_price' => floatval($order['pay_price']),
|
|
|
+ 'number' => $directBrokerage
|
|
|
+ ], $quotaBalance, $order['id']);
|
|
|
+ @file_put_contents('quanju4.txt', '扣除直推上级额度: uid=' . $userRelation['pid'] . ', 金额=' . $directBrokerage . "\r\n", 8);
|
|
|
+
|
|
|
$balance = bcadd($pid_brokerage['brokerage_price'], $directBrokerage, 2);
|
|
|
$userBrokerageServices->income('get_direct_referral_brokerage', $userRelation['pid'], [
|
|
|
'nickname' => $userInfo['nickname'],
|
|
|
@@ -501,6 +514,16 @@ class StoreOrderSuccessServices extends BaseServices
|
|
|
], $balance, $order['id']);
|
|
|
@file_put_contents('quanju4.txt', '向上发放见点奖给真直推上级: uid=' . $splitTargetPid . ', 金额=' . $splitAmount . "\r\n", 8);
|
|
|
|
|
|
+ // 扣除真直推上级的额度
|
|
|
+ $userServices->bcInc($splitTargetPid, 'quota', -$splitAmount, 'uid');
|
|
|
+ $quotaBalance = bcadd($pidBrokerage['quota'] ?? 0, -$splitAmount, 2);
|
|
|
+ $userGiftQuotaServices->income('use_spot_quota', $splitTargetPid, [
|
|
|
+ 'nickname' => $userInfo['nickname'],
|
|
|
+ 'pay_price' => floatval($order['pay_price']),
|
|
|
+ 'number' => $splitAmount
|
|
|
+ ], $quotaBalance, $order['id']);
|
|
|
+ @file_put_contents('quanju4.txt', '扣除真直推上级额度: uid=' . $splitTargetPid . ', 金额=' . $splitAmount . "\r\n", 8);
|
|
|
+
|
|
|
// 给假直推上级发放
|
|
|
$currentBrokerage = $userServices->getOne(['uid' => $nextUid]);
|
|
|
$userServices->bcInc($nextUid, 'brokerage_price', $remainderAmount, 'uid');
|
|
|
@@ -512,6 +535,16 @@ class StoreOrderSuccessServices extends BaseServices
|
|
|
'frozen_time' => $frozenTime
|
|
|
], $balance, $order['id']);
|
|
|
@file_put_contents('quanju4.txt', '向上发放见点奖给假直推上级: uid=' . $nextUid . ', 金额=' . $remainderAmount . "\r\n", 8);
|
|
|
+
|
|
|
+ // 扣除假直推上级的额度
|
|
|
+ $userServices->bcInc($nextUid, 'quota', -$remainderAmount, 'uid');
|
|
|
+ $quotaBalance = bcadd($currentBrokerage['quota'] ?? 0, -$remainderAmount, 2);
|
|
|
+ $userGiftQuotaServices->income('use_spot_quota', $nextUid, [
|
|
|
+ 'nickname' => $userInfo['nickname'],
|
|
|
+ 'pay_price' => floatval($order['pay_price']),
|
|
|
+ 'number' => $remainderAmount
|
|
|
+ ], $quotaBalance, $order['id']);
|
|
|
+ @file_put_contents('quanju4.txt', '扣除假直推上级额度: uid=' . $nextUid . ', 金额=' . $remainderAmount . "\r\n", 8);
|
|
|
} else {
|
|
|
// 不需要分成:全部给上级
|
|
|
$currentBrokerage = $userServices->getOne(['uid' => $nextUid]);
|
|
|
@@ -524,6 +557,16 @@ class StoreOrderSuccessServices extends BaseServices
|
|
|
'frozen_time' => $frozenTime
|
|
|
], $balance, $order['id']);
|
|
|
@file_put_contents('quanju4.txt', '向上发放见点奖: uid=' . $nextUid . ', 金额=' . $spotBrokerage . "\r\n", 8);
|
|
|
+
|
|
|
+ // 扣除上级的额度
|
|
|
+ $userServices->bcInc($nextUid, 'quota', -$spotBrokerage, 'uid');
|
|
|
+ $quotaBalance = bcadd($currentBrokerage['quota'] ?? 0, -$spotBrokerage, 2);
|
|
|
+ $userGiftQuotaServices->income('use_spot_quota', $nextUid, [
|
|
|
+ 'nickname' => $userInfo['nickname'],
|
|
|
+ 'pay_price' => floatval($order['pay_price']),
|
|
|
+ 'number' => $spotBrokerage
|
|
|
+ ], $quotaBalance, $order['id']);
|
|
|
+ @file_put_contents('quanju4.txt', '扣除上级额度: uid=' . $nextUid . ', 金额=' . $spotBrokerage . "\r\n", 8);
|
|
|
}
|
|
|
|
|
|
// 更新当前用户ID,用于下一次循环的判断
|
|
|
@@ -560,6 +603,17 @@ class StoreOrderSuccessServices extends BaseServices
|
|
|
'frozen_time' => $frozenTime
|
|
|
], $balance, $order['id']);
|
|
|
@file_put_contents('quanju4.txt', '向下发放见点奖给直推下级: uid=' . $subordinate['uid'] . ', 金额=' . $spotBrokerage . "\r\n", 8);
|
|
|
+
|
|
|
+ // 扣除直推下级的额度
|
|
|
+ $userServices->bcInc($subordinate['uid'], 'quota', -$spotBrokerage, 'uid');
|
|
|
+ $quotaBalance = bcadd($subBrokerage['quota'] ?? 0, -$spotBrokerage, 2);
|
|
|
+ $userGiftQuotaServices->income('use_spot_quota', $subordinate['uid'], [
|
|
|
+ 'nickname' => $userInfo['nickname'],
|
|
|
+ 'pay_price' => floatval($order['pay_price']),
|
|
|
+ 'number' => $spotBrokerage
|
|
|
+ ], $quotaBalance, $order['id']);
|
|
|
+ @file_put_contents('quanju4.txt', '扣除直推下级额度: uid=' . $subordinate['uid'] . ', 金额=' . $spotBrokerage . "\r\n", 8);
|
|
|
+
|
|
|
$totalDownSpots++;
|
|
|
}
|
|
|
|
|
|
@@ -599,6 +653,17 @@ class StoreOrderSuccessServices extends BaseServices
|
|
|
'frozen_time' => $frozenTime
|
|
|
], $balance, $order['id']);
|
|
|
@file_put_contents('quanju4.txt', '向下发放见点奖给同组下级: uid=' . $member['uid'] . ', 金额=' . $spotBrokerage . "\r\n", 8);
|
|
|
+
|
|
|
+ // 扣除同组下级的额度
|
|
|
+ $userServices->bcInc($member['uid'], 'quota', -$spotBrokerage, 'uid');
|
|
|
+ $quotaBalance = bcadd($memberBrokerage['quota'] ?? 0, -$spotBrokerage, 2);
|
|
|
+ $userGiftQuotaServices->income('use_spot_quota', $member['uid'], [
|
|
|
+ 'nickname' => $userInfo['nickname'],
|
|
|
+ 'pay_price' => floatval($order['pay_price']),
|
|
|
+ 'number' => $spotBrokerage
|
|
|
+ ], $quotaBalance, $order['id']);
|
|
|
+ @file_put_contents('quanju4.txt', '扣除同组下级额度: uid=' . $member['uid'] . ', 金额=' . $spotBrokerage . "\r\n", 8);
|
|
|
+
|
|
|
$totalDownSpots++;
|
|
|
}
|
|
|
}
|