Blame view
app/Http/Controllers/Admin/EmployersController.php
10.6 KB
8de035475 Создание: Структу... |
1 2 3 4 5 |
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; |
d152a3a68 Создание основных... |
6 |
use App\Http\Requests\FlotRequest; |
e688e0d8a Статистика работн... |
7 |
use App\Models\Ad_employer; |
29350503f Расширение полей ... |
8 |
use App\Models\Answer; |
00652ea57 Оптимизация запро... |
9 |
use App\Models\CategoryEmp; |
c84db5243 Форма редактирова... |
10 |
use App\Models\Employer; |
d152a3a68 Создание основных... |
11 |
use App\Models\Flot; |
e688e0d8a Статистика работн... |
12 |
use App\Models\Static_ad; |
8de035475 Создание: Структу... |
13 14 |
use App\Models\User; use Illuminate\Http\Request; |
622420a67 Расширение функци... |
15 |
use Illuminate\Support\Facades\DB; |
8c73c7b41 Категории ваканси... |
16 17 |
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Validator; |
8de035475 Создание: Структу... |
18 19 20 21 |
class EmployersController extends Controller { public function index(Request $request) { |
4452df326 Миграции Категори... |
22 |
//$all_employer = User::where('is_worker', '0')->count(); |
567d6161f Редакция работода... |
23 24 |
$all_public = -1; $all_status = -1; |
8de035475 Создание: Структу... |
25 26 27 28 29 |
if ($request->ajax()) { $user = User::find($request->id); $request->offsetUnset('id'); $user->update($request->all()); } |
7fea6c8d4 Коммит работодате... |
30 |
$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.name_company as name_company', 'emp.*']) |
eae6b80f5 Работодатель лого |
31 |
->join('employers as emp','emp.user_id','users.id') |
567d6161f Редакция работода... |
32 |
->where('users.is_worker', '0')->Realuser(); //->Notadmin(); |
4452df326 Миграции Категори... |
33 |
$all_employer = $users->count(); |
be3039cb9 Правки по работод... |
34 |
|
567d6161f Редакция работода... |
35 36 37 38 39 40 41 42 |
$all_public = Employer::where('status_hidden', '=', '0')-> count(); $all_status = Employer::where(function($query) { $query->Where('category', '=', 'Не оплачен') ->orWhere('category', '=', 'Не определен') ->orWhere('category', '=', 'Согласование'); })->count(); |
be3039cb9 Правки по работод... |
43 44 45 46 47 48 49 |
$find_cat = ""; if (isset($request->category)) { if ($request->category != 'Все категории') { $users = $users->where('category', '=', $request->category); $find_cat = $request->category; } } |
622420a67 Расширение функци... |
50 |
$find_key = ""; |
be3039cb9 Правки по работод... |
51 |
|
622420a67 Расширение функци... |
52 53 54 55 56 57 58 |
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 Поисковый движок ... |
59 |
} |
622420a67 Расширение функци... |
60 61 |
//DB::enableQueryLog(); |
077a30c8a Таблица контента ... |
62 |
$all_current = $users->count(); |
93a3f79f0 Поисковый движок ... |
63 |
$users = $users->paginate(15); |
622420a67 Расширение функци... |
64 |
//dd(DB::getQueryLog()); |
93a3f79f0 Поисковый движок ... |
65 |
|
be3039cb9 Правки по работод... |
66 |
$select_category = CategoryEmp::query()->active()->get(); |
8de035475 Создание: Структу... |
67 68 69 |
if ($request->ajax()) { return view('admin.employer.index_ajax', compact('users')); } else { |
eb8596db6 Правки вакансии, ... |
70 71 72 73 |
return view('admin.employer.index', compact('users', 'find_key', 'find_cat', 'all_employer', |
567d6161f Редакция работода... |
74 75 |
'all_public', 'all_status', |
077a30c8a Таблица контента ... |
76 |
'all_current', |
eb8596db6 Правки вакансии, ... |
77 |
'select_category')); |
8de035475 Создание: Структу... |
78 79 |
} } |
c84db5243 Форма редактирова... |
80 |
|
50aa60b60 Работодатели лого... |
81 82 83 |
public function comment_read(Employer $employer) { return view('admin.employer.comment', compact('employer')); } |
d152a3a68 Создание основных... |
84 |
// Форма обновления |
c84db5243 Форма редактирова... |
85 |
public function form_update_employer(Employer $employer) { |
d152a3a68 Создание основных... |
86 |
// данные |
00652ea57 Оптимизация запро... |
87 |
$select_category = CategoryEmp::query()->active()->get(); |
d152a3a68 Создание основных... |
88 89 90 91 92 93 94 95 96 97 98 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 |
$flots = Flot::query()->where('employer_id', '=', $employer->id)->get(); return view('admin.employer.edit', compact('employer', 'select_category', 'flots')); } public function edit_flot(Flot $flot, Employer $employer) { return view('admin.flot.edit', compact('flot', 'employer')); } public function add_flot(Employer $employer) { return view('admin.flot.add', compact('employer')); } public function save_add_flot(FlotRequest $request) { $params = $request->all(); $params['image'] = $request->file('image')->store("flot", 'public'); Flot::create($params); return redirect()->route('admin.employer-profile', ['employer' => $params['employer_id']]) ->with('success', 'Данные были успешно сохранены'); } public function delete_flot(Flot $flot, $employer_id) { $flot->delete(); return redirect()->route('admin.employer-profile', ['employer' => $employer_id]) ->with('success', 'Данные были успешно сохранены'); } public function edit_save_flot(Flot $flot, FlotRequest $request) { $params = $request->all(); if ($request->has('image')) { if (!empty($flot->image)) { Storage::delete($flot->image); } $params['image'] = $request->file('image')->store("flot", 'public'); } else { if (!empty($flot->image)) $params['image'] = $flot->image; } $flot->update($params); return redirect()->route('admin.employer-profile', ['employer' => $params['employer_id']]) ->with('success', 'Данные были успешно сохранены'); |
c84db5243 Форма редактирова... |
131 |
} |
8c73c7b41 Категории ваканси... |
132 133 134 135 136 137 138 139 140 |
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 Расширение функци... |
141 142 143 144 |
unset($params['status_hidden']); unset($params['oficial_status']); unset($params['social_is']); unset($params['sending_is']); |
00652ea57 Оптимизация запро... |
145 146 |
unset($params['category']); unset($params['comment_admin']); |
8c73c7b41 Категории ваканси... |
147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 |
$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 Расширение функци... |
180 181 182 183 |
$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 Оптимизация запро... |
184 185 |
$employer->category = $request->category; $employer->comment_admin = $request->comment_admin; |
8c73c7b41 Категории ваканси... |
186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 |
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 Архитектурное доп... |
202 |
|
00652ea57 Оптимизация запро... |
203 204 205 206 |
// Удаление работодателя, вакансий и профиля юзера public function delete_employer(Employer $employer, User $user) { try { if (!empty($employer)) { |
00652ea57 Оптимизация запро... |
207 208 209 |
if (!empty($employer->logo)) { Storage::delete($employer->logo); } |
eb8596db6 Правки вакансии, ... |
210 211 212 213 214 215 216 |
foreach($employer->ads as $ad) { $ads = Ad_employer::find($ad->id); $ads->employer_id = 2; $ads->is_remove = 1; $ads->save(); } |
00652ea57 Оптимизация запро... |
217 218 219 220 221 222 223 224 |
$employer->delete(); } } finally { $user->delete(); } return redirect()->route('admin.employers')->with('success', 'Данные были удалены о работодателе'); } |
bb2fb443d Архитектурное доп... |
225 |
// кабинет - отзывы о работодателе для модерации |
29350503f Расширение полей ... |
226 227 228 229 230 231 232 233 234 235 236 237 238 239 |
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 Архитектурное доп... |
240 241 242 |
} // кабинет - статистика вакансий работодателя |
e688e0d8a Статистика работн... |
243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 |
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 Архитектурное доп... |
264 |
} |
8de035475 Создание: Структу... |
265 |
} |