Selaa lähdekoodia

Merge branch 'kuaiyingyong' into quickqapp_ylf

fly 4 vuotta sitten
vanhempi
commit
7f49edd613

+ 60 - 11
app/Modules/Report/Services/ReportService.php

@@ -53,7 +53,13 @@ class ReportService
         // 判断是否是次留回传
         if ($registerYmd === $activeYmd && $todayYmd === $registerNextYmd) {
             myLog('reportSActive')->info('', compact('uid', 'registerYmd'));
-            self::report($userCache);
+            self::report('/api/reportSActive', [
+                'uid'           => getProp($userCache, 'uid'),
+                'channel_id'    => getProp($userCache, 'channel_id'),
+                'register_time' => getProp($userCache, 'register_time'),
+                'active_time'   => getProp($userCache, 'active_time'),
+                'platform'      => 'zhuishuyun',
+            ]);
         }
 
         // 更新用户活跃时间
@@ -61,26 +67,69 @@ class ReportService
     }
 
     /**
+     * @param $user
+     * @return ResponseInterface
+     */
+    public static function reportRegister($user)
+    {
+        return self::report('/api/reportRegister', [
+            'platform' => 'zhuishuyun',
+            'register' => [
+                'uid'           => $user->id,
+                'channel_id'    => $user->channel_id,
+                'register_time' => $user->created_at->format('Y-m-d H:i:s'),
+                'register_ip'   => $user->register_ip,
+            ]
+        ]);
+    }
+
+    /**
+     * @param $order
+     * @return false|ResponseInterface
+     */
+    public static function reportRecharge($order)
+    {
+        $channelId = getProp($order, 'distribution_channel_id');
+        if (empty($channelId)) {
+            return false;
+        }
+
+        return self::report('/api/reportOrder', [
+            'platform' => 'zhuishuyun',
+            'order'    => [
+                'uid'              => getProp($order, 'uid'),
+                'order_no'         => getProp($order, 'trade_no'),
+                'price'            => getProp($order, 'price'),
+                'channel_id'       => $channelId,
+                'pay_time'         => getProp($order, 'pay_end_at'),
+                'order_created_at' => $order->created_at->format('Y-m-d H:i:s')
+            ]
+        ]);
+    }
+
+    /**
      * 上报
-     * @param $userCache
+     * @param $uri
+     * @param $data
      * @return ResponseInterface
      */
-    private static function report($userCache)
+    private static function report($uri, $data)
     {
         $client = new Client(['timeout' => 3, 'verify' => false]);
 
         // 执行上报
-        return $client->post(env('REPORT_URI') . '/api/reportSActive', [
+        $url         = env('REPORT_URI') . $uri;
+        $result      = $client->post($url, [
             'headers' => [
                 'x-code' => 'Mvnx1Yr3O8i!TS5u'
             ],
-            'json'    => [
-                'uid'           => getProp($userCache, 'uid'),
-                'channel_id'    => getProp($userCache, 'channel_id'),
-                'register_time' => getProp($userCache, 'register_time'),
-                'active_time'   => getProp($userCache, 'active_time'),
-                'platform'      => 'zhuishuyun',
-            ]
+            'json'    => $data
         ]);
+        $statusCode  = $result->getStatusCode();
+        $contentJson = $result->getBody()->getContents();
+        $contentArr  = json_decode($contentJson, true);
+        myLog('report')->info($uri, compact('data', 'statusCode', 'contentArr'));
+
+        return $contentArr;
     }
 }

+ 6 - 1
app/Modules/Trade/Pay/PaySuccessAbstract.php

@@ -6,6 +6,7 @@ use App\Jobs\QappTikTok\NewQappTikTokUserCharge;
 use App\Jobs\QappTikTok\QappTikTokUserChargeRequest;
 use App\Jobs\QappTikTok\QappTikTokUserCharge;
 use App\Modules\Book\Models\BookConfig;
+use App\Modules\Report\Services\ReportService;
 use App\Modules\SendOrder\Models\QappSendOrder;
 use App\Modules\Subscribe\Models\Order;
 use App\Modules\User\Models\User;
@@ -100,7 +101,7 @@ abstract class PaySuccessAbstract
         $tikTokChargeRequest                = new QappTikTokUserChargeRequest();
         $tikTokChargeRequest->uid           = $this->order->uid;
         $tikTokChargeRequest->amount        = $this->order->price;
-        $tikTokChargeRequest->order_no        = $this->order->trade_no;
+        $tikTokChargeRequest->order_no      = $this->order->trade_no;
         $tikTokChargeRequest->pay_time      = $this->order->created_at;
         $tikTokChargeRequest->book_id       = $book_id;
         $tikTokChargeRequest->book_name     = $book_name;
@@ -110,5 +111,9 @@ abstract class PaySuccessAbstract
         myLog('qapp_user_charge')->info('addQueue', compact('tikTokChargeRequest'));
         $job = new NewQappTikTokUserCharge($tikTokChargeRequest);
         dispatch($job->onConnection('rabbitmq')->onQueue('qapp_tiktok_user_charge_queue'));
+
+        // 同步数据
+        $this->order->distribution_channel_id = getProp($quickSendOrder, 'distribution_channel_id');
+        ReportService::reportRecharge($this->order);
     }
 }

+ 5 - 0
app/Modules/User/Services/QappUserService.php

@@ -10,6 +10,7 @@ use App\Jobs\Push\NewUserPushMsgDelay;
 use App\Jobs\QappTikTok\QappTikTokUserRequest;
 use App\Jobs\QappTikTok\QappTikTokUser;
 use App\Libs\Utils;
+use App\Modules\Report\Services\ReportService;
 use App\Modules\User\Models\QappPackage;
 use App\Modules\User\Models\QappUser;
 use App\Modules\User\Models\User;
@@ -226,6 +227,10 @@ class QappUserService
 
         new NewUserPushMsgDelay($user->id);
         dispatch($job->onConnection('rabbitmq')->onQueue('new_user_push_msg'));
+
+        // 同步数据
+        $user->channel_id = $user->distribution_channel_id;
+        ReportService::reportRegister($user);
     }
 
     private function findChannelId(string $package)