Blame view
app/Http/Controllers/Admin/EmployersController.php
8.71 KB
8de035475 Создание: Структу... |
1 2 3 4 5 |
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; |
e688e0d8a Статистика работн... |
6 |
use App\Models\Ad_employer; |
29350503f Расширение полей ... |
7 |
use App\Models\Answer; |
00652ea57 Оптимизация запро... |
8 |
use App\Models\CategoryEmp; |
c84db5243 Форма редактирова... |
9 |
use App\Models\Employer; |
e688e0d8a Статистика работн... |
10 |
use App\Models\Static_ad; |
8de035475 Создание: Структу... |
11 12 |
use App\Models\User; use Illuminate\Http\Request; |
622420a67 Расширение функци... |
13 |
use Illuminate\Support\Facades\DB; |
8c73c7b41 Категории ваканси... |
14 15 |
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Validator; |
8de035475 Создание: Структу... |
16 17 18 19 |
class EmployersController extends Controller { public function index(Request $request) { |
4452df326 Миграции Категори... |
20 |
//$all_employer = User::where('is_worker', '0')->count(); |
567d6161f Редакция работода... |
21 22 |
$all_public = -1; $all_status = -1; |
8de035475 Создание: Структу... |
23 24 25 26 27 |
if ($request->ajax()) { $user = User::find($request->id); $request->offsetUnset('id'); $user->update($request->all()); } |
567d6161f Редакция работода... |
28 |
$users = User::with('employers')->select(['users.*','users.id as usr_id', 'emp.id as emp_id', 'emp.code as code_id', 'emp.logo as emp_logo', 'emp.*']) |
eae6b80f5 Работодатель лого |
29 |
->join('employers as emp','emp.user_id','users.id') |
567d6161f Редакция работода... |
30 |
->where('users.is_worker', '0')->Realuser(); //->Notadmin(); |
4452df326 Миграции Категори... |
31 |
$all_employer = $users->count(); |
be3039cb9 Правки по работод... |
32 |
|
567d6161f Редакция работода... |
33 34 35 36 37 38 39 40 |
$all_public = Employer::where('status_hidden', '=', '0')-> count(); $all_status = Employer::where(function($query) { $query->Where('category', '=', 'Не оплачен') ->orWhere('category', '=', 'Не определен') ->orWhere('category', '=', 'Согласование'); })->count(); |
be3039cb9 Правки по работод... |
41 42 43 44 45 46 47 |
$find_cat = ""; if (isset($request->category)) { if ($request->category != 'Все категории') { $users = $users->where('category', '=', $request->category); $find_cat = $request->category; } } |
622420a67 Расширение функци... |
48 |
$find_key = ""; |
be3039cb9 Правки по работод... |
49 |
|
622420a67 Расширение функци... |
50 51 52 53 54 55 56 |
if (isset($request->find)) { $find_key = $request->find; $users = $users->where(function($query) use($find_key) { $query->Where('users.name', 'LIKE', "%$find_key%") ->orWhere('emp.email', 'LIKE', "%$find_key%") ->orWhere('emp.telephone', 'LIKE', "%$find_key%"); }); |
93a3f79f0 Поисковый движок ... |
57 |
} |
622420a67 Расширение функци... |
58 59 |
//DB::enableQueryLog(); |
93a3f79f0 Поисковый движок ... |
60 |
$users = $users->paginate(15); |
622420a67 Расширение функци... |
61 |
//dd(DB::getQueryLog()); |
93a3f79f0 Поисковый движок ... |
62 |
|
be3039cb9 Правки по работод... |
63 |
$select_category = CategoryEmp::query()->active()->get(); |
8de035475 Создание: Структу... |
64 65 66 |
if ($request->ajax()) { return view('admin.employer.index_ajax', compact('users')); } else { |
eb8596db6 Правки вакансии, ... |
67 68 69 70 |
return view('admin.employer.index', compact('users', 'find_key', 'find_cat', 'all_employer', |
567d6161f Редакция работода... |
71 72 |
'all_public', 'all_status', |
eb8596db6 Правки вакансии, ... |
73 |
'select_category')); |
8de035475 Создание: Структу... |
74 75 |
} } |
c84db5243 Форма редактирова... |
76 |
|
50aa60b60 Работодатели лого... |
77 78 79 |
public function comment_read(Employer $employer) { return view('admin.employer.comment', compact('employer')); } |
c84db5243 Форма редактирова... |
80 |
public function form_update_employer(Employer $employer) { |
00652ea57 Оптимизация запро... |
81 82 |
$select_category = CategoryEmp::query()->active()->get(); return view('admin.employer.edit', compact('employer', 'select_category')); |
c84db5243 Форма редактирова... |
83 |
} |
8c73c7b41 Категории ваканси... |
84 85 86 87 88 89 90 91 92 |
public function update_employer(Employer $employer, Request $request) { $params = $request->all(); unset($params['logo']); unset($params['telephone']); unset($params['email']); unset($params['address']); unset($params['site']); |
622420a67 Расширение функци... |
93 94 95 96 |
unset($params['status_hidden']); unset($params['oficial_status']); unset($params['social_is']); unset($params['sending_is']); |
00652ea57 Оптимизация запро... |
97 98 |
unset($params['category']); unset($params['comment_admin']); |
8c73c7b41 Категории ваканси... |
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
$rules = [ 'name' => 'required|string|max:255', ]; $messages = [ 'required' => 'Укажите обязательное поле «:attribute»', 'confirmed' => 'Пароли не совпадают', 'email' => 'Введите корректный email', 'min' => [ 'string' => 'Поле «:attribute» должно быть не меньше :min символов', 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' ], 'max' => [ 'string' => 'Поле «:attribute» должно быть не больше :max символов', 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' ], ]; $validator = Validator::make($params, $rules, $messages); if ($validator->fails()) { return back()->withErrors($validator)->withInput(); //->route('admin.register') } else { //$user = User::find($employer->user_id); $user_id = $employer->user_id; $employer->telephone = $request->telephone; $employer->email = $request->email; $employer->address = $request->address; $employer->site = $request->site; $employer->text = $request->text; |
622420a67 Расширение функци... |
132 133 134 135 |
$employer->status_hidden = $request->status_hidden; $employer->oficial_status = $request->oficial_status; $employer->social_is = $request->social_is; $employer->sending_is = $request->sending_is; |
00652ea57 Оптимизация запро... |
136 137 |
$employer->category = $request->category; $employer->comment_admin = $request->comment_admin; |
8c73c7b41 Категории ваканси... |
138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 |
if ($request->has('logo')) { if (!empty($employer->logo)) { Storage::delete($employer->logo); } $employer->logo = $request->file('logo')->store("employer/$user_id", 'public'); } $employer->save(); $user = User::find($user_id); $user->update($params); return redirect()->route('admin.employer-profile', ['employer' => $employer->id]) ->with('success', 'Данные были успешно сохранены'); } } |
bb2fb443d Архитектурное доп... |
154 |
|
00652ea57 Оптимизация запро... |
155 156 157 158 |
// Удаление работодателя, вакансий и профиля юзера public function delete_employer(Employer $employer, User $user) { try { if (!empty($employer)) { |
00652ea57 Оптимизация запро... |
159 160 161 |
if (!empty($employer->logo)) { Storage::delete($employer->logo); } |
eb8596db6 Правки вакансии, ... |
162 163 164 165 166 167 168 |
foreach($employer->ads as $ad) { $ads = Ad_employer::find($ad->id); $ads->employer_id = 2; $ads->is_remove = 1; $ads->save(); } |
00652ea57 Оптимизация запро... |
169 170 171 172 173 174 175 176 |
$employer->delete(); } } finally { $user->delete(); } return redirect()->route('admin.employers')->with('success', 'Данные были удалены о работодателе'); } |
bb2fb443d Архитектурное доп... |
177 |
// кабинет - отзывы о работодателе для модерации |
29350503f Расширение полей ... |
178 179 180 181 182 183 184 185 186 187 188 189 190 191 |
public function answers(Request $request) { if ($request->ajax()) { $user = Answer::find($request->id); $request->offsetUnset('id'); $user->update($request->all()); } $answers = Answer::query()->orderByDesc('id')->paginate(15); if ($request->ajax()) { return view('admin.answers.index_ajax', compact('answers')); } else { return view('admin.answers.index', compact('answers')); } |
bb2fb443d Архитектурное доп... |
192 193 194 |
} // кабинет - статистика вакансий работодателя |
e688e0d8a Статистика работн... |
195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 |
public function static_ads(Request $request) { $stat = Static_ad::with('ads'); $ads = Ad_employer::query()->active()->OrderBy('id')->get(); $periods = Static_ad::query()->distinct('year_month')->select('year_month')->get(); if ($request->ajax()) { if (isset($request->ad_employer_id)) if (!$request->ad_employer_id == "0") $stat = $stat->Where('ad_employer_id', '=', $request->ad_employer_id); if (isset($request->year_month)) { if (!$request->year_month == "0") $stat = $stat->Where('year_month', '=', $request->year_month); } } $stat = $stat->OrderByDesc('year_month'); $stat = $stat->paginate(15); if ($request->ajax()) return view('admin.static.index_ads_ajax', compact('stat')); else return view('admin.static.index_ads', compact('stat', 'ads', 'periods')); |
bb2fb443d Архитектурное доп... |
216 |
} |
8de035475 Создание: Структу... |
217 |
} |