Blame view
app/Http/Controllers/Admin/EmployersController.php
10.1 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; |
8c73c7b41 Категории ваканси... |
15 16 |
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Validator; |
8de035475 Создание: Структу... |
17 18 19 20 21 22 23 24 25 |
class EmployersController extends Controller { public function index(Request $request) { if ($request->ajax()) { $user = User::find($request->id); $request->offsetUnset('id'); $user->update($request->all()); } |
03e95a0b5 Изменения для адм... |
26 27 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.name_company as name_company', 'emp.*' ]) |
eae6b80f5 Работодатель лого |
29 |
->join('employers as emp','emp.user_id','users.id') |
03e95a0b5 Изменения для адм... |
30 31 32 |
->where('users.is_worker', '0') ->orderByDesc('emp.id') ->Realuser(); |
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 |
if (isset($request->find)) { $find_key = $request->find; $users = $users->where(function($query) use($find_key) { |
fb45bb186 Фиксы по задачам ... |
55 |
$query->where('users.name', 'LIKE', "%$find_key%") |
622420a67 Расширение функци... |
56 |
->orWhere('emp.email', 'LIKE', "%$find_key%") |
fb45bb186 Фиксы по задачам ... |
57 58 59 |
->orWhere('emp.telephone', 'LIKE', "%$find_key%") ->orWhere('emp.name_company', 'LIKE', "%$find_key%") ; |
622420a67 Расширение функци... |
60 |
}); |
93a3f79f0 Поисковый движок ... |
61 |
} |
622420a67 Расширение функци... |
62 |
|
077a30c8a Таблица контента ... |
63 |
$all_current = $users->count(); |
93a3f79f0 Поисковый движок ... |
64 |
$users = $users->paginate(15); |
be3039cb9 Правки по работод... |
65 |
$select_category = CategoryEmp::query()->active()->get(); |
8de035475 Создание: Структу... |
66 67 68 |
if ($request->ajax()) { return view('admin.employer.index_ajax', compact('users')); } else { |
fb45bb186 Фиксы по задачам ... |
69 70 71 |
return view('admin.employer.index', compact('users', 'find_key', 'find_cat', 'all_employer', 'all_public', 'all_status', 'all_current', 'select_category' )); |
8de035475 Создание: Структу... |
72 73 |
} } |
c84db5243 Форма редактирова... |
74 |
|
50aa60b60 Работодатели лого... |
75 76 77 |
public function comment_read(Employer $employer) { return view('admin.employer.comment', compact('employer')); } |
d152a3a68 Создание основных... |
78 |
// Форма обновления |
c84db5243 Форма редактирова... |
79 |
public function form_update_employer(Employer $employer) { |
d152a3a68 Создание основных... |
80 |
// данные |
00652ea57 Оптимизация запро... |
81 |
$select_category = CategoryEmp::query()->active()->get(); |
d152a3a68 Создание основных... |
82 83 84 85 86 87 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 |
$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 Форма редактирова... |
125 |
} |
8c73c7b41 Категории ваканси... |
126 127 128 129 130 131 132 133 134 |
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 Расширение функци... |
135 136 137 138 |
unset($params['status_hidden']); unset($params['oficial_status']); unset($params['social_is']); unset($params['sending_is']); |
00652ea57 Оптимизация запро... |
139 140 |
unset($params['category']); unset($params['comment_admin']); |
8c73c7b41 Категории ваканси... |
141 142 143 144 145 146 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 |
$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 Расширение функци... |
174 175 176 177 |
$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 Оптимизация запро... |
178 179 |
$employer->category = $request->category; $employer->comment_admin = $request->comment_admin; |
8c73c7b41 Категории ваканси... |
180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 |
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 Архитектурное доп... |
196 |
|
00652ea57 Оптимизация запро... |
197 198 199 200 |
// Удаление работодателя, вакансий и профиля юзера public function delete_employer(Employer $employer, User $user) { try { if (!empty($employer)) { |
00652ea57 Оптимизация запро... |
201 202 203 |
if (!empty($employer->logo)) { Storage::delete($employer->logo); } |
eb8596db6 Правки вакансии, ... |
204 205 206 207 208 209 210 |
foreach($employer->ads as $ad) { $ads = Ad_employer::find($ad->id); $ads->employer_id = 2; $ads->is_remove = 1; $ads->save(); } |
00652ea57 Оптимизация запро... |
211 212 213 214 215 216 217 218 |
$employer->delete(); } } finally { $user->delete(); } return redirect()->route('admin.employers')->with('success', 'Данные были удалены о работодателе'); } |
bb2fb443d Архитектурное доп... |
219 |
// кабинет - отзывы о работодателе для модерации |
29350503f Расширение полей ... |
220 221 222 223 224 225 226 227 228 229 230 231 232 233 |
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 Архитектурное доп... |
234 235 236 |
} // кабинет - статистика вакансий работодателя |
e688e0d8a Статистика работн... |
237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 |
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 Архитектурное доп... |
258 |
} |
8de035475 Создание: Структу... |
259 |
} |