|
|
@@ -159,50 +159,19 @@ class StoreOrderSuccessServices extends BaseServices
|
|
|
$issueService->setCoupon($coupon, $user);
|
|
|
return true;
|
|
|
}
|
|
|
-// 发放分销奖励()
|
|
|
+// 发放分销奖励(向上查找grade>=2的上级发放优惠券)
|
|
|
public function spreadReward($spread_uid, $orderInfo){
|
|
|
try {
|
|
|
- // 获取上级的分销等级
|
|
|
- $agent_level = User::where('uid', $spread_uid)->value('agent_level');
|
|
|
- if (!$agent_level) {
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- // 获取分销等级详细信息
|
|
|
- $agentLevelInfo = \app\model\agent\AgentLevel::where('id', $agent_level)->find();
|
|
|
- if (!$agentLevelInfo) {
|
|
|
- return false;
|
|
|
- }
|
|
|
- $agentLevelInfo = $agentLevelInfo->toArray();
|
|
|
-
|
|
|
- // 如果是礼包商品才发放优惠券奖励
|
|
|
- if ($agentLevelInfo['free_issue'] > 0&&$orderInfo['order_type']==1) {
|
|
|
- $this->grantUser($agentLevelInfo['free_issue'], $spread_uid);
|
|
|
+ $uid = $spread_uid;
|
|
|
+ while ($uid > 0) {
|
|
|
+ $levelId = User::where('uid', $uid)->value('agent_level');
|
|
|
+ $agentLevel = $levelId ? \app\model\agent\AgentLevel::find($levelId) : null;
|
|
|
+ if ($agentLevel && ($agentLevel['grade'] ?? 0) >= 2 && $agentLevel['free_issue'] > 0) {
|
|
|
+ $orderInfo['order_type'] == 1 && $this->grantUser($agentLevel['free_issue'], $uid);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ $uid = User::where('uid', $uid)->value('spread_uid');
|
|
|
}
|
|
|
-
|
|
|
- // 发放佣金奖励
|
|
|
-// if ($agentLevelInfo['spread_brokerage'] > 0) {
|
|
|
-// // 计算佣金金额:订单价格 * spread_brokerage / 100
|
|
|
-// $brokerageAmount = bcmul((string)$orderInfo['total_price'], (string)($agentLevelInfo['spread_brokerage'] / 100), 2);
|
|
|
-// if ($brokerageAmount > 0) {
|
|
|
-// /** @var UserServices $userServices */
|
|
|
-// $userServices = app()->make(UserServices::class);
|
|
|
-// /** @var UserBrokerageServices $userBrokerageServices */
|
|
|
-// $userBrokerageServices = app()->make(UserBrokerageServices::class);
|
|
|
-// $balance = $userServices->value(['uid' => $spread_uid], 'brokerage_price');
|
|
|
-// $nickname = User::where('uid',$orderInfo['uid'])->value('nickname');
|
|
|
-// $userBrokerageServices->income('get_brokerage', $spread_uid, [
|
|
|
-// 'nickname' => $nickname,
|
|
|
-// 'pay_price' => $orderInfo['total_price'],
|
|
|
-// 'number' => $brokerageAmount,
|
|
|
-// ], bcadd((string)$balance, (string)$brokerageAmount, 2), $orderInfo['id'] ?? 0);
|
|
|
-// $userServices->bcInc($spread_uid, 'brokerage_price', $brokerageAmount, 'uid');
|
|
|
-//
|
|
|
-// // 发放平级奖励
|
|
|
-// $this->issueSameLevelReward($spread_uid, $brokerageAmount);
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
return true;
|
|
|
} catch (\Exception $e) {
|
|
|
@file_put_contents("quanju.txt", json_encode($e->getMessage())."-spreadReward报错内容\r\n", 8);
|