public function add_audience_file(Request $request) { $user_name = Auth::user(); $domen_id = null; $current_domen_cookie = $request->cookie('current_domen'); if (isset($current_domen_cookie)) { foreach ($current_domen_cookie as $current_site) { $domen_id = $current_site->id; } } else { $default_domen = Users_site::where('user_id', '=', $user_name['id'])->first(); if (isset($default_domen)) { $domen_id = $default_domen->id; } } $new_file_tmp = $request->files; //получаем прикрепленный файл из запроса $new_file; foreach ($new_file_tmp as $key => $value) { $new_file = $value; } if (isset($new_file)) { if (pathinfo($new_file->getClientOriginalName())['extension'] == 'csv') { //проверка если это csv или это txt try { $error_message_save = null; //сообщение об ошибке $csv = new CSV($new_file); //Открываем наш csv /** * Чтение из CSV (и вывод на экран в красивом виде) */ $get_csv = $csv->getCSV(); $exists_segment = Segment::where('domen_id', '=', $domen_id)->where('segment_name', 'LIKE', $request->name)->first(); if (!$exists_segment['segment_name']) { //проверка на существование сегмента для этого сайта $segment = new Segment(); $segment->segment_name = $request->name; $segment->domen_id = $domen_id; $segment->save(); } $segment_id = Segment::where('domen_id', '=', $domen_id)->where('segment_name', 'LIKE', $request->name)->first()->id; // else if(){} $count_str = 1; //добавить проверку на емаил если уже есть такой то пропустить строку, для этого надо сделать запрос и добавить сегмент foreach ($get_csv as $value) { //Проходим по строкам и загружаем в модель, подсчитваем брак и пишем в лог // dd($value); if (count($value) == 6) { $exists_email = Subscribers::where('segment_id', '=', $segment_id)->where('email', '=', $value[0])->first(); if (!$exists_email) { //существует ли в сегменте такой e-mail и есть ли у подписчика email, если да то пропускаем и к следующему элементу $subscriber = new Subscribers(); $subscriber->email = $value[0]; //email $subscriber->name = $value[1]; //имя $subscriber->surname = $value[2]; //фамилия $subscriber->sex = $value[3]; //пол $subscriber->age = $value[4]; //возраст $subscriber->city = $value[5]; //город $subscriber->status_id = 1; // статус 1 - Исходный пользователь $subscriber->segment_id = $segment_id; $subscriber->save(); $count_str++; } else { continue; } } else { return redirect()->back()->with('error_message_save', 'Операция завершена с ошибками на ' . $count_str . ' строке. Столбцов должно быть 6'); } } } catch (Exception $e) { //Если csv файл не существует, выводим сообщение echo "Ошибка: " . $e->getMessage(); } } else { if (pathinfo($new_file->getClientOriginalName())['extension'] == 'txt') { } } } //и редирект на главную = аудиторию /*=============================================================*/ $content_category = Content_category::all(); $content_type = Content_type::all(); $current_domen = Users_site::where('id', '=', $domen_id)->get(); $domen_list = Users_site::where('user_id', '=', $user_name['id'])->get(); $domen_clear_list = null; $ready_site_name = null; if (isset($domen_list)) { //очищаем данные, чтобы уменьшить размер куки, берем только имя + id foreach ($current_domen as $current_site_name) { $ready_site_name = $current_site_name->domen; } foreach ($domen_list as $site_name) { if ($ready_site_name != $site_name->domen) { $domen_clear_list[$site_name->id] = $site_name->domen; } } } // $segment = Segment::where('domen_id', '=', $domen_id)->get(); /*=============================================================*/ return view('dashboard', array('current_domen' => isset($current_domen) ? $current_domen : null, 'domen_clear_list' => isset($domen_clear_list) ? $domen_clear_list : null, 'content_category' => isset($content_category) ? $content_category : null, 'content_type' => isset($content_type) ? $content_type : null, 'user_name' => isset($user_name) ? $user_name : null, 'errors_after_load' => isset($error_message_save) ? $error_message_save : null)); }