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