Example #1
0
 public static function InsertRecord($data)
 {
     if ($data) {
         $array = [];
         foreach ($data as $k => $v) {
             $array[$v['idvisit']] = [$v['idvisit'], $v['idvisitor'], $v['user_id'], $v['custom_var_v2'], IP::binaryToStringIP($v['location_ip']), 0, $v['custom_var_v1']];
         }
         //            \yii::error(var_export($array,1));
         //查找所有已经存在的记录
         $batchInsert = [];
         if ($array) {
             $findAll = ApiVisitorDetail::find()->where(['in', 'idvisit', array_keys($array)])->asArray()->all();
             if ($findAll) {
                 $findAll = ArrayHelper::index($findAll, 'idvisit');
                 $batchInsert = array_diff_key($array, $findAll);
             } else {
                 $batchInsert = $array;
             }
             $idvisits = ArrayHelper::getColumn($batchInsert, 0, false);
             StatLogVisit::updateAll(['status' => 1], ['idvisit' => $idvisits]);
             ApiVisitorDetail::xBatchInsert($batchInsert);
         }
         return count($batchInsert);
     }
 }
Example #2
0
 public static function cronUpdateIptext($limit = 100)
 {
     $data = StatVisit::find()->where(['iptext' => NULL])->andWhere('ip IS NOT NULL')->orderBy('created_at desc')->limit($limit)->all();
     foreach ($data as $k => $model) {
         $iptext = IP::find($model->ip);
         //如果返回false 说明接口数据有问题
         $model->iptext = implode(' ', $iptext);
         $model->update();
     }
 }
Example #3
0
 public static function Columns6()
 {
     self::$columns[] = ['header' => 'ip归属地', 'value' => function ($data) {
         return isset($data['visitIp']) ? implode(" ", IP::find($data["visitIp"])) : '';
     }];
 }
Example #4
0
 public function getViewIpText()
 {
     return !empty($this->location_ip) ? implode(" ", \app\helpers\IP::find($this->location_ip)) : '';
 }