personalJobsApplyService = $personalJobsApplyService; $this->resumeService = $resumeService; $this->companyDownResumeService = $companyDownResumeService; $this->emailService = $emailService; } /** * 收到的简历 * @param Request $request * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function resumeApply(Request $request) { $user = auth('web-company')->user(); $result = $this->personalJobsApplyService->resumeApply($request->all(), $user); $result['user'] = $user; return view('app.company.resume.resume_apply', $result); } public function resumeHealthApply(Request $request) { $result = []; $user = auth('web-company')->user(); $result['user'] = $user; $list = PostAppoint::with(['job'])->where('company_id', $user['id'])->orderBy('status', 'asc')->paginate(10); $status = ['未下载', '已下载']; $sex = ['女', '男']; foreach ($list as $v) { $v['status_text'] = $status[$v['status']]; $v['sex_text'] = $sex[$v['sex']]; } $result['list'] = $list; return view('app.company.resume.resume_health_apply', $result); } public function resumeHealthDownload(Request $request) { $id = $request->input('id'); PostAppoint::where('id',$id)->update(['status' => 1]); return response()->json(['status' => 1, 'msg' => "下载成功!"]); } public function resumeIcApply(Request $request) { $result = []; $user = auth('web-company')->user(); $result['user'] = $user; $list = PostAppointIc::with(['job'])->where('company_id', $user['id'])->orderBy('status', 'asc')->paginate(10); $status = ['未下载', '已下载']; $sex = ['女', '男']; foreach ($list as $v) { $v['status_text'] = $status[$v['status']]; $v['sex_text'] = $sex[$v['sex']]; } $result['list'] = $list; return view('app.company.resume.resume_ic_apply', $result); } public function resumeIcDownload(Request $request) { $id = $request->input('id'); PostAppointIc::where('id',$id)->update(['status' => 1]); return response()->json(['status' => 1, 'msg' => "下载成功!"]); } /** * 标记简历 * @param $id * @param $state * @return \Illuminate\Http\JsonResponse */ public function resumeLabelApply($id, $state) { $user = auth('web-company')->user(); return $this->personalJobsApplyService->labelApply($id, $state, $user); } /** * 删除申请的简历(单个和批量) * @param Request $request * @return \Illuminate\Http\JsonResponse * @throws \Throwable */ public function delJobsApply(Request $request) { if ($request->method() == 'GET') { $tip = '被删除后将无法恢复,您确定要删除选中的简历吗?'; return response()->json(['status' => 1, 'msg' => '获取数据成功', 'data' => ['html' => view('app.company.ajax.ajax_warning', ['tip' => $tip])->render()]]); } else { $user = auth('web-company')->user(); return $this->personalJobsApplyService->delJobsApply($request, $user); } } /** * 邀请面试 * @param Request $request * @return \Illuminate\Http\JsonResponse * @throws \Throwable */ public function jobsInterview(Request $request) { $user = auth('web-company')->user(); if ($request->method() == 'GET') { if (!$request->resume_id) { return response()->json(['status' => 0, 'msg' => '请选择简历!']); } return $this->personalJobsApplyService->getApply($request->all(), $user); } else { return $this->personalJobsApplyService->saveApply($request, $user); } } /** * 保存到电脑 ====收到简历 * @param Request $request * @return \Illuminate\Http\JsonResponse|\Symfony\Component\HttpFoundation\BinaryFileResponse * @throws ResponseException */ public function resumeSaveToComputer(Request $request) { $yid = $request->y_id; $model = $request->model; if (!$yid) { throw new ResponseException('请选择简历'); } $user = auth('web-company')->user(); if ($model == 'personaljobsapply') { $this->personalJobsApplyService->isOwn($yid, $user, 'id'); } if ($model == 'downresume') { $this->companyDownResumeService->isOwn($yid, $user, 'id'); } $model_arr = ['personaljobsapply', 'downresume']; if (!in_array($model, $model_arr)) { throw new ResponseException('参数错误'); } if (false === $res = $this->personalJobsApplyService->saveAsDoc($yid, $model)) { throw new ResponseException('查找不到相关简历!'); } else { return response()->download($res['path'], "简历压缩包" . date("Ymd") . ".zip"); } return response()->json(['status' => 0, 'msg' => "保存失败"]); } /**发送到Email * @param Request $request * @return \Illuminate\Http\JsonResponse * @throws \Throwable */ public function sendToEmail(Request $request) { $resume_id = $request->resume_id; if (!$resume_id) { return response()->json(['status' => 0, 'msg' => '请选择简历!']); } if ($request->method() == 'POST') { $user = auth('web-company')->user(); $model = $request->model; if ($model == 'personaljobsapply') { $this->personalJobsApplyService->isOwn($resume_id, $user, 'resume_id'); } if ($model == 'downresume') { $this->companyDownResumeService->isOwn($resume_id, $user, 'resume_id'); } $email = $request->email; $pattern = "/^[_\.0-9a-zA-Z-]+[_0-9a-zA-Z-]@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,3}$/"; if (!$email || !preg_match($pattern, $email)) { return response()->json(['status' => 0, 'msg' => 'email不正确']); } return $this->sendEmail($email, $resume_id); } return response()->json(['status' => 1, 'msg' => '返回成功', 'html' => view('app.company.ajax.ajax_send_to_email')->render()]); } /**发送到Email * @param $email * @param $resume_id * @return \Illuminate\Http\JsonResponse * @throws \Throwable */ public function sendEmail($email, $resume_id) { if (!is_array($resume_id)) { $resume_id = explode(',', $resume_id); } foreach ($resume_id as $key => $val) { $this->sendEmailDone($email, $val); } return response()->json(['status' => 1, 'msg' => "发送成功!"]); } /**发送到Email * @param $email * @param $resume_id * @return ResumeController * @throws \Throwable */ public function sendEmailDone($email, $resume_id) { $res = $this->resumeService->resumeDoc($resume_id); if (!$res) { return $this->sendErrorResponse('参数错误!', 404); } $resume = view('app.tpl.word_resume', ['content' => $res])->render(); $this->emailService->sendMail($email, EmailService::TEMPLATE_SEND_RESUME, ['personalfullname' => $res['resume']['fullname']], ['resume' => $resume]); } /** * @param Request $request * @param 企业的邀请面试记录 * @return 集合 */ public function interviewJobs(Request $request) { $user = auth('web-company')->user(); $res = $this->resumeService->interviewJobs($request->all(), $user); $res['user'] = $user; return view('app.company.resume.jobs_interview', $res); } /** * 面试邀请详情 * @param Request $request * @return \Illuminate\Http\JsonResponse * @throws \Throwable */ public function interviewDetail(Request $request) { return $this->resumeService->interviewDetail($request); } /** * 删除下载面试邀请 * @param Request $request * @return \Illuminate\Http\JsonResponse * @throws \Throwable */ public function interviewDel(Request $request) { if ($request->method() == 'GET') { $tip = '被删除后将无法恢复,您确定要删除选中的面试邀请记录吗?'; return response()->json(['status' => 1, 'msg' => '获取数据成功', 'data' => ['html' => view('app.company.ajax.ajax_warning', ['tip' => $tip])->render()]]); } else { $user = auth('web-company')->user(); $res = $this->resumeService->interviewDel($request->all(), $user); return response()->json(['status' => $res['status'], 'msg' => $res['msg']]); } } /** * 已下载简历 * @param Request $request * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function resumeDown(Request $request) { $user = auth('web-company')->user(); $result = $this->resumeService->resumeDown($request->all(), $user); $result['user'] = $user; return view('app.company.resume.resume_down', $result); } public function resumeDownDel(Request $request) { if ($request->method() == 'POST') { return $this->resumeService->resumeDownDel($request); } $tip = '被删除后将无法恢复,您确定要删除选中的下载的简历吗?'; return response()->json(['status' => 1, 'msg' => '获取数据成功', 'data' => view('app.company.ajax.ajax_warning', ['tip' => $tip])->render()]); } /** * 标注下载简历 * @param $id * @param $state * @return \Illuminate\Http\JsonResponse */ public function labelResume($id, $state) { return $this->companyDownResumeService->labelApply($id, $state); } /**企业收藏的简历 * @param Request $request * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function favoritesResume(Request $request) { $user = auth('web-company')->user(); $res = $this->resumeService->favoritesResume($request, $user, 0); $res['user'] = $user; return view('app.company.resume.favorites_resume', $res); } /**收藏简历 * @param Request $request * @return \Illuminate\Http\JsonResponse * @throws \Prettus\Validator\Exceptions\ValidatorException * @throws \Throwable */ public function favoritesResumeSave(Request $request) { if ($request->method() == 'GET') { $tip = "您确定要收藏选中的简历吗?"; return response()->json(['status' => 1, 'data' => view('app.company.ajax.ajax_warning', ['tip' => $tip])->render()]); } return $this->resumeService->favoritesResumeSave($request); } /**删除收藏的简历 * @param Request $request * @return \Illuminate\Http\JsonResponse * @throws \Throwable */ public function favoritesResumeDel(Request $request) { if ($request->method() == 'GET') { $tip = "被删除后将无法恢复,您确定要删除选中的简历吗?"; return response()->json(['status' => 1, 'data' => view('app.company.ajax.ajax_warning', ['tip' => $tip])->render()]); } $user = auth('web-company')->user(); return $this->resumeService->favoritesResumeDel($request->y_id, $user); } /** * 浏览过的简历 * @param Request $request * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function browseResume(Request $request) { $user = auth('web-company')->user(); $res = $this->resumeService->browseResume($request); $res['user'] = $user; return view('app.company.resume.browse_resume', $res); } /**删除浏览过的简历 * @param Request $request * @return \Illuminate\Http\JsonResponse * @throws \Throwable */ public function browseResumeDel(Request $request) { if ($request->method() == 'GET') { $tip = "被删除后将无法恢复,您确定要删除选中的简历吗?"; return response()->json(['status' => 1, 'data' => view('app.company.ajax.ajax_warning', ['tip' => $tip])->render()]); } $user = auth('web-company')->user(); return $this->resumeService->browseResumeDel($request, $user); } /**谁看过我 * @param Request $request * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function browseJobs(Request $request) { $user = auth('web-company')->user(); $res = $this->resumeService->browseJobs($request); $res['user'] = $user; return view('app.company.resume.browse_jobs', $res); } /**删除谁看过我 * @param Request $request * @return \Illuminate\Http\JsonResponse * @throws \Throwable */ public function browseJobsDel(Request $request) { if ($request->method() == 'GET') { $tip = "被删除后将无法恢复,您确定要删除选中的简历吗?"; return response()->json(['status' => 1, 'data' => view('app.company.ajax.ajax_warning', ['tip' => $tip])->render()]); } $user = auth('web-company')->user(); return $this->resumeService->browseJobsDel($request, $user); } /**面试邀请 * @param Request $request * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function feedback(Request $request) { $res = $this->resumeService->feedback($request); return view('app.company.resume.feedback', $res); } /**面试邀请反馈操作 * @param Request $request * @return ResumeController|\Illuminate\Http\JsonResponse * @throws \Throwable */ public function feedbackModify(Request $request) { $id = $request->id ? $request->id : 0; if (!$id) { return response()->json(['status' => 0, 'msg' => '参数错误!']); } if ($request->method() == "POST") { $explan = $request->notes ? $request->notes : ''; $status = $request->status ? $request->status : 0; if (!$status) { return $this->sendErrorResponse('请选择反馈结果!'); } $user = auth('web-company')->user(); return $this->resumeService->feedbackModify($id, $explan, $status, $user->id); } return response()->json(['status' => 1, 'html' => view('app.company.ajax.ajax_feedback', ['id' => $id])->render()]); } /**回收站 * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function recycle() { $res = $this->resumeService->recycle(); return view('app.company.resume.resume_recycle', $res); } /**回收站删除 * @param Request $request * @return \Illuminate\Http\JsonResponse * @throws \Throwable */ public function destroyJobsApply(Request $request) { $ids = $request->id; if ($request->method() == 'POST') { return $this->resumeService->destroyJobsApply($ids); } $tip = "此处删除为物理删除,您确定要删除选中的简历吗?"; return response()->json(['status' => 1, 'data' => view('app.company.ajax.ajax_warning', ['tip' => $tip])->render()]); } /**清空回收站 * @param Request $request * @return \Illuminate\Http\JsonResponse * @throws \Throwable */ public function clearRecycle(Request $request) { if ($request->method() == 'POST') { return $this->resumeService->clearRecycle(); } $tip = "清空回收站将物理删除所有简历,您确定要清空回收站吗?"; return response()->json(['status' => 1, 'data' => view('app.company.ajax.ajax_warning', ['tip' => $tip])->render()]); } public function concern(Request $request) { $user = auth('web-company')->user(); $res = $this->resumeService->concern($request); $res['user'] = $user; return view('app.company.resume.concern', $res); } public function concernDel(Request $request) { if ($request->method() == 'POST') { $user = auth('web-company')->user(); return $this->resumeService->concernDel($request, $user); } $tip = "被删除后将无法恢复,您确定要删除选中的记录吗?"; return response()->json(['status' => 1, 'data' => view('app.company.ajax.ajax_warning', ['tip' => $tip])->render()]); } }