Browse Source

orange监测

tgz 2 years ago
parent
commit
571dccddc1
1 changed files with 68 additions and 0 deletions
  1. 68 0
      app/services/TrackService.php

+ 68 - 0
app/services/TrackService.php

@@ -34,6 +34,10 @@ class TrackService
                 //     self::TiktokRedisDeal();
                 // }
                 break;
+            case 22:
+                Redis::lpush('orange_track',$track_data);
+                break;
+
             default:
                 // code...
                 break;
@@ -46,6 +50,7 @@ class TrackService
     public static function cronDeal (){
         // 处理巨量平台的
         self::TiktokRedisDeal();
+        self::OrangeRedisDeal();
     }
     
     /**
@@ -124,5 +129,68 @@ class TrackService
        }
        
     }
+
+    /**
+     *  批量任务处理 橙子回传的监测连接
+     */
+    public static function OrangeRedisDeal ($data= []){
+        if (!$data) {
+            $len = Redis::llen('orange_track');
+            if($len > 4000){
+                $len= 4000;
+            }
+            for ($i = 1; $i <= $len; $i++) {
+                 $data[] = Redis::rpop('orange_track');
+            }
+        }
+        if(empty($data)){
+            return false;
+        }
+        $inster = [] ;
+        $model =  DouyinTrack::model();
+        foreach ($data as $val){
+           $params = json_decode($val,true);
+           if(!getProp($params,'channel_id','')){
+               continue;
+           }
+           $ua =mb_substr( getProp($params,'ua',''),0,250);
+           $link = getProp($params,'link','');
+           $other = explode('?', $link);
+           if (is_array($other)) {
+               $otherarr = explode('&', $link);
+               $callback = explode('=',$otherarr[0]);
+               $callback = $callback[1];
+           }else{
+               $callback = '';
+           }
+           
+            //整理数据+
+           $inster[] = [
+                'link' => getProp($params,'link',''),
+                'link_source' => 'orange',
+                'ip' => getProp($params,'ip',''),
+                'ua' => $ua,
+                'source' => 'zsy',
+                'ip_ua' => md5(getProp($params,'ip','') . getProp($params,'ua','')),
+                'distribution_channel_id' => getProp($params,'channel_id',''),
+                'log_time' => getProp($params,'log_time',''),
+                'created_at' => date('Y-m-d H:i:s',time()),
+                'adid' => getProp($params,'adid',''),
+                'callback' => $callback,
+                //新添加
+                'advertiser_id' => getProp($params,'advertiser_id',''),
+                'campaign_id' => getProp($params,'campaign_id',''),
+                'creativeid' => getProp($params,'creativeid',''),
+                
+            ];
+            if(count($inster) >= 2000){
+                $model->insert($inster);
+                $inster = [];
+            }
+        }
+        if ($inster) {
+            $model->insert($inster);
+        }
+    }
     
 }