WIN-2308041133\Administrator 4 тижнів тому
батько
коміт
0f17bb4783
1 змінених файлів з 24 додано та 2 видалено
  1. 24 2
      app/services/order/StoreOrderSuccessServices.php

+ 24 - 2
app/services/order/StoreOrderSuccessServices.php

@@ -102,9 +102,13 @@ class StoreOrderSuccessServices extends BaseServices
         }
         $orderInfo['send_name'] = $orderInfo['real_name'];
         $spread_id = User::where('uid',$orderInfo['uid'])->value('spread_uid');
+        @file_put_contents("quanju.txt", json_encode(['buyerUid'=>$orderInfo['uid'],'spread_id'=>$spread_id,'order_type'=>$orderInfo['order_type']??0,'total_price'=>$orderInfo['total_price']??0])."-paySuccess入口\r\n", 8);
         if ($spread_id>0){  //上级分销奖励
 //            self::spreadReward($spread_id,$orderInfo);
+            @file_put_contents("quanju.txt", json_encode(['call'=>'issueServiceFee','uid'=>$orderInfo['uid'],'spread_id'=>$spread_id])."-paySuccess调用issueServiceFee\r\n", 8);
             self::issueServiceFee($orderInfo['uid'],$orderInfo);
+        } else {
+            @file_put_contents("quanju.txt", json_encode(['buyerUid'=>$orderInfo['uid'],'spread_id'=>$spread_id])."-paySuccess无推荐人跳过\r\n", 8);
         }
         //订单支付成功后置事件
         event('OrderPaySuccessListener', [$orderInfo]);
@@ -132,6 +136,7 @@ class StoreOrderSuccessServices extends BaseServices
             }
         }
         if ($spread_id>0){  //上级分销奖励
+            @file_put_contents("quanju.txt", json_encode(['spread_id'=>$spread_id,'order_type'=>$orderInfo['order_type']??0])."-paySuccess调用spreadReward\r\n", 8);
             self::spreadReward($spread_id,$orderInfo);
 //            self::issueServiceFee($orderInfo['uid'],$orderInfo);
         }
@@ -163,15 +168,26 @@ class StoreOrderSuccessServices extends BaseServices
     public function spreadReward($spread_uid, $orderInfo){
         try {
             $uid = $spread_uid;
+            @file_put_contents("quanju.txt", json_encode(['start_spread_uid'=>$spread_uid,'order_type'=>$orderInfo['order_type']??0])."-spreadReward开始\r\n", 8);
             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);
+                $gradeValue = $agentLevel['grade'] ?? 0;
+                $freeIssue = $agentLevel['free_issue'] ?? 0;
+                @file_put_contents("quanju.txt", json_encode(['uid'=>$uid,'levelId'=>$levelId,'grade'=>$gradeValue,'free_issue'=>$freeIssue,'order_type'=>$orderInfo['order_type']??0])."-spreadReward逐级检查\r\n", 8);
+                if ($agentLevel && $gradeValue >= 2 && $freeIssue > 0) {
+                    @file_put_contents("quanju.txt", json_encode(['uid'=>$uid,'grade'=>$gradeValue,'free_issue'=>$freeIssue])."-spreadReward命中发放优惠券\r\n", 8);
+                    $orderInfo['order_type'] == 1 && $this->grantUser($freeIssue, $uid);
                     break;
                 }
+                if (!$agentLevel) {
+                    @file_put_contents("quanju.txt", json_encode(['uid'=>$uid,'levelId'=>$levelId])."-spreadReward无分销等级跳过\r\n", 8);
+                } else {
+                    @file_put_contents("quanju.txt", json_encode(['uid'=>$uid,'grade'=>$gradeValue,'reason'=>($gradeValue<2?'grade<2':'free_issue<=0')])."-spreadReward不满足条件跳过\r\n", 8);
+                }
                 $uid = User::where('uid', $uid)->value('spread_uid');
             }
+            @file_put_contents("quanju.txt", json_encode(['final_uid'=>$uid])."-spreadReward结束未找到\r\n", 8);
             return true;
         } catch (\Exception $e) {
             @file_put_contents("quanju.txt", json_encode($e->getMessage())."-spreadReward报错内容\r\n", 8);
@@ -199,6 +215,7 @@ class StoreOrderSuccessServices extends BaseServices
             if ($orderType === 1) {
                 // 礼包订单:使用系统配置的服务费金额
                 $serviceAmount = floatval(sys_config('service_gift', 0));
+                @file_put_contents("quanju.txt", json_encode(['orderType'=>1,'service_gift_config'=>sys_config('service_gift'),'serviceAmount'=>$serviceAmount])."-礼包服务费金额\r\n", 8);
             } elseif ($orderType == 2) {
                 // 复购订单:根据订单金额计算服务费(订单金额 ÷ 50)
                 $orderPrice = isset($orderInfo['total_price']) ? floatval($orderInfo['total_price']) : 0;
@@ -211,6 +228,7 @@ class StoreOrderSuccessServices extends BaseServices
             }
 
             if ($serviceAmount <= 0) {
+                @file_put_contents("quanju.txt", json_encode(['serviceAmount'=>$serviceAmount,'orderType'=>$orderType])."-issueServiceFee金额为0跳过\r\n", 8);
                 return false;
             }
 
@@ -220,6 +238,7 @@ class StoreOrderSuccessServices extends BaseServices
             if ($orderType === 1) {
                 // 礼包订单:向上查找第一个V2或以上等级的用户
                 $spreadUid = $this->findFirstV2User($uid);
+                @file_put_contents("quanju.txt", json_encode(['findFirstV2User结果'=>$spreadUid,'buyerUid'=>$uid])."-issueServiceFee查找V2上级结果\r\n", 8);
             } elseif ($orderType == 2) {
                 // 复购订单:查找该用户之前礼包服务费的接收者
                 // 1. 在store_order表查找该用户 paid=1 且 order_type=1 且 is_del=0 的订单id
@@ -278,6 +297,7 @@ class StoreOrderSuccessServices extends BaseServices
      * @return int 找到的上级用户UID,未找到返回0
      */
     private function findFirstV2User($uid) {
+        @file_put_contents("quanju.txt", json_encode(['start_uid'=>$uid])."-findFirstV2User开始\r\n", 8);
         // 获取分销等级表中grade >= 3的等级ID(V2及以上)
         $qualifiedLevels = \app\model\agent\AgentLevel::where('grade', '>=', 3)
             ->where('is_del', 0)
@@ -311,12 +331,14 @@ class StoreOrderSuccessServices extends BaseServices
             // 检查上级的分销等级是否在V2及以上
             if (in_array($spreadAgentLevelId, $qualifiedLevels)) {
                 // 找到了,返回该用户UID
+                @file_put_contents("quanju.txt", json_encode(['foundUid'=>$spreadUid,'agent_level'=>$spreadAgentLevelId])."-findFirstV2User找到了\r\n", 8);
                 return $spreadUid;
             }
 
             $currentUid = $spreadUid;
         }
 
+        @file_put_contents("quanju.txt", json_encode(['result'=>0])."-findFirstV2User未找到返回0\r\n", 8);
         return 0;
     }