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; |
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(); |
09dcec17a fixes |
33 |
$all_employer = Employer::all()->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 |
// данные |
09dcec17a fixes |
81 |
|
00652ea57 Оптимизация запро... |
82 |
$select_category = CategoryEmp::query()->active()->get(); |
d152a3a68 Создание основных... |
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 125 |
$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 Форма редактирова... |
126 |
} |
8c73c7b41 Категории ваканси... |
127 128 129 130 131 132 133 134 135 |
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']); |
36b239fd9 user role fixes |
136 137 138 |
unset($params['is_lookin']); unset($params['show_database']); unset($params['can_autolift']); |
622420a67 Расширение функци... |
139 140 141 142 |
unset($params['status_hidden']); unset($params['oficial_status']); unset($params['social_is']); unset($params['sending_is']); |
00652ea57 Оптимизация запро... |
143 144 |
unset($params['category']); unset($params['comment_admin']); |
8c73c7b41 Категории ваканси... |
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 |
$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; |
09dcec17a fixes |
173 |
$employer->name_company = $request->name; |
8c73c7b41 Категории ваканси... |
174 |
$employer->telephone = $request->telephone; |
b57da0455 add inpots to emp... |
175 |
$employer->telephone_2 = $request->telephone_2; |
8c73c7b41 Категории ваканси... |
176 |
$employer->email = $request->email; |
b57da0455 add inpots to emp... |
177 |
$employer->email_2 = $request->email_2; |
8c73c7b41 Категории ваканси... |
178 179 180 |
$employer->address = $request->address; $employer->site = $request->site; $employer->text = $request->text; |
622420a67 Расширение функци... |
181 182 183 184 |
$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 Оптимизация запро... |
185 186 |
$employer->category = $request->category; $employer->comment_admin = $request->comment_admin; |
8c73c7b41 Категории ваканси... |
187 188 189 190 191 192 193 194 |
if ($request->has('logo')) { if (!empty($employer->logo)) { Storage::delete($employer->logo); } $employer->logo = $request->file('logo')->store("employer/$user_id", 'public'); } $employer->save(); |
36b239fd9 user role fixes |
195 196 197 198 |
$employer->users()->update([ 'is_lookin' => $request->is_lookin, 'show_database' => $request->show_database, 'can_autolift' => $request->can_autolift, |
44e612f7e fixes |
199 200 |
'is_message' => $request->is_message, 'is_public' => $request->is_public, |
36b239fd9 user role fixes |
201 |
]); |
8c73c7b41 Категории ваканси... |
202 203 204 205 |
return redirect()->route('admin.employer-profile', ['employer' => $employer->id]) ->with('success', 'Данные были успешно сохранены'); } } |
bb2fb443d Архитектурное доп... |
206 |
|
00652ea57 Оптимизация запро... |
207 208 209 210 |
// Удаление работодателя, вакансий и профиля юзера public function delete_employer(Employer $employer, User $user) { try { if (!empty($employer)) { |
00652ea57 Оптимизация запро... |
211 212 213 |
if (!empty($employer->logo)) { Storage::delete($employer->logo); } |
eb8596db6 Правки вакансии, ... |
214 215 216 217 218 219 220 |
foreach($employer->ads as $ad) { $ads = Ad_employer::find($ad->id); $ads->employer_id = 2; $ads->is_remove = 1; $ads->save(); } |
00652ea57 Оптимизация запро... |
221 222 223 224 225 226 227 228 |
$employer->delete(); } } finally { $user->delete(); } return redirect()->route('admin.employers')->with('success', 'Данные были удалены о работодателе'); } |
bb2fb443d Архитектурное доп... |
229 |
// кабинет - отзывы о работодателе для модерации |
29350503f Расширение полей ... |
230 231 232 233 234 235 236 237 238 239 240 241 242 243 |
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 Архитектурное доп... |
244 245 246 |
} // кабинет - статистика вакансий работодателя |
e688e0d8a Статистика работн... |
247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 |
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 Архитектурное доп... |
268 |
} |
8de035475 Создание: Структу... |
269 |
} |