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);
     }
 }