Procházet zdrojové kódy

'添加oppo附加推广链接上的参数'

zhuchengjie před 2 roky
rodič
revize
5ab77541fc

+ 29 - 0
app/Http/Controllers/QuickApp/WelcomeController.php

@@ -2,8 +2,11 @@
 
 namespace App\Http\Controllers\QuickApp;
 
+use App\Consts\PushConst;
+use App\Libs\Push\OPPOPush\OPPOPushCommon;
 use App\Modules\AdPosition\Services\AdPositionService;
 use App\Modules\SendOrder\Models\QappSendOrder;
+use App\Modules\User\Models\QappCallbackParams;
 use App\Modules\User\Models\QappChannelAccount;
 use App\Modules\User\Models\User;
 use App\Modules\User\Services\QappPackageService;
@@ -28,6 +31,8 @@ class WelcomeController extends BaseController
             $distribution_channel_id = $send_order->distribution_channel_id;
             $qappPackage             = QappPackageService::getPackage($distribution_channel_id);
 
+            $this->getCallbackParams($request);
+
             $showGzh     = 0;
             $sendOrderId = $this->send_order_id;
             if ($sendOrderId && in_array($sendOrderId, explode(',', env('SHOW_GZH_SEND_ORDER_IDS')))) {
@@ -46,6 +51,30 @@ class WelcomeController extends BaseController
         }
     }
 
+    /**
+     * 平台附加在推广链接后的参数存储
+     * @param $request
+     */
+    private function getCallbackParams($request)
+    {
+        $tid = $request->get('tid','');
+        $pageId = $request->get('pageId','');
+        if(!empty($tid) && !empty($pageId)){
+            $qapp_send_order = QappSendOrder::getSendOrderById($this->send_order_id);
+            \Log::info('$qapp_send_order:'.json_encode($qapp_send_order).'$this->send_order_id:'.$this->send_order_id);
+            if($qapp_send_order && !empty($qapp_send_order)){
+                if(isset($qapp_send_order['platform']) && $qapp_send_order['platform'] == PushConst::PROVIDER_OPPO){
+                    //用户ip
+                    $ip = _getIp();
+                    $provider = $qapp_send_order['platform'];
+                    $send_order_id = $this->send_order_id;
+                    $params = json_encode(compact('tid','pageId'));
+                    QappCallbackParams::firstOrcreate(compact('ip','send_order_id','provider','params'));
+                }
+            }
+        }
+    }
+
     private function sendOrderStatistic($send_order)
     {
         $key             = date('Y-m-d');

+ 0 - 21
app/Http/Middleware/QuickAppGetUserFromToken.php

@@ -3,11 +3,9 @@
 namespace App\Http\Middleware;
 
 use App\Cache\Push\PushCache;
-use App\Consts\PushConst;
 use App\Modules\Push\Services\PushService;
 use App\Modules\Report\Services\ReportService;
 use App\Modules\SendOrder\Services\SendOrderService;
-use App\Modules\User\Models\QappCallbackParams;
 use App\Modules\User\Services\QappUserService;
 use App\Modules\User\Services\UserService;
 use Closure;
@@ -76,25 +74,6 @@ class QuickAppGetUserFromToken extends BaseMiddleware
         // 头条次留回传
         ReportService::reportActive($uid);
 
-        if(PushConst::PROVIDER_OPPO == strtolower($provider)){
-            try {
-                $path = $request->path();
-                $requests = $request->all();
-                \Log::info('oppo_request:'.json_encode($requests).' uid:'.$uid.' send_order_id:'.$sendOrderId);
-                if(isset($requests['tid'])  && isset($requests['pageId'])){
-                    $provider = strtolower($provider);
-                    if(!QappCallbackParams::where('uid',$uid)->where('provider',$provider)->first()){
-                        //获取oppo回传需要的参数
-                        $params = json_encode(['tid' => $requests['tid'], 'pageId' => $requests['pageId']]);
-                        QappCallbackParams::create(compact('uid','path','provider','params'));
-                    }
-                }
-            } catch (\Exception $e) {
-                \Log::info('oppo_error:'.$e->getMessage());
-            }
-
-        }
-
         return $next($request);
     }
 }

+ 1 - 1
app/Modules/User/Models/QappCallbackParams.php

@@ -7,5 +7,5 @@ use Illuminate\Database\Eloquent\Model;
 class QappCallbackParams extends Model
 {
     protected $table = 'qapp_callback_params';
-    protected $fillable = ['uid','provider','path','params','created_at','updated_at'];
+    protected $fillable = ['uid','provider','ip','send_order_id','params','created_at','updated_at'];
 }