4000){ $len= 4000; } for ($i = 1; $i <= $len; $i++) { $data[] = Redis::rpop('tiktok_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; } $callback = getProp($params,'clickid',''); $link = getProp($params,'link',''); $other = explode('?', $link); if (is_array($other) && strpos($link, 'callback=')) { $otherarr = explode('&', $link); $callback = explode('=',$otherarr[0]); $callback = $callback[1]; }else{ $callback = ''; } $ua =mb_substr( getProp($params,'ua',''),0,250); //整理数据+ $inster[] = [ 'link' => getProp($params,'link',''), 'link_source' => 'tiktok', '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',''), 'promotion_id' => getProp($params,'promotionid',''), 'project_id' => getProp($params,'projectid',''), ]; if(count($inster) >= 2000){ $model->insert($inster); $inster = []; } } if ($inster) { $model->insert($inster); } } /** * 二次确认处理, 不让继续添加到表里处理;就返回FALSE */ public static function confirm ($params){ $dycallback = getProp($params,'dycallback'); $channel_id = getProp($params,'channel_id'); $ip = getProp($params,'ip'); // if ($dycallback == 1) { // $clickid = getProp($params,'clickid'); // if (!$clickid) { // return false; // } // $model = DouyinTrack::model(); // $id =$model->where('ip',$ip)->where('distribution_channel_id',$channel_id)->where('callback',$clickid)->value('id'); // if(empty($id)){ // return false; // } // return $id; // } return 1; } /** * 批量任务处理 橙子回传的监测连接 */ 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) && strpos($link, 'callback=')) { $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',''), 'promotion_id' => getProp($params,'promotionid',''), 'project_id' => getProp($params,'projectid',''), ]; if(count($inster) >= 2000){ $model->insert($inster); $inster = []; } } if ($inster) { $model->insert($inster); } } }