personalJobsApplyService = $personalJobsApplyService; $this->resumeService = $resumeService; $this->companyDownResumeService = $companyDownResumeService; $this->emailService = $emailService; } /**收到的简历 * @param Request $request * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\JsonResponse|\Illuminate\View\View * @throws \Throwable */ public function resumeApply(Request $request) { $user = auth('web-company')->user(); $result = $this->personalJobsApplyService->resumeApplyMobile($request->all(), $user); if ($request->ajax()) { if ($result['result']->currentPage() > $result['result']->lastPage()) { return response()->json(['status'=>0]); } return response()->json(['status'=>1,'data'=>view('mobile.app.company.resume.ajax.ajax_resume_apply', ['result'=>$result['result']])->render()]); } $result['wap_title']="收到的简历"; return view('mobile.app.company.resume.resume_apply', $result); } /** * 标记简历 * @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) { $user = auth('web-company')->user(); return $this->personalJobsApplyService->delJobsApply($request->all(),$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('请选择简历'); } $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') { $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 * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\JsonResponse|\Illuminate\View\View * @throws \Throwable */ public function interviewJobs(Request $request) { $user = auth('web-company')->user(); $res = $this->resumeService->interviewJobs($request->all(), $user); if ($request->ajax()) { if ($res['result']->currentPage() > $res['result']->lastPage()) { return response()->json(['status'=>0]); } return response()->json(['status'=>1,'data'=>view('mobile.app.company.resume.ajax.ajax_resume_interview', ['result'=>$res['result']])->render()]); } $res['wap_title'] = '邀请面试'; return view('mobile.app.company.resume.resume_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) { $res = $this->resumeService->interviewDel($request->all()); return response()->json(['status'=>$res['status'], 'msg'=>$res['msg']]); } /**下载简历 * @param Request $request * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\JsonResponse|\Illuminate\View\View * @throws \Throwable */ public function resumeDown(Request $request) { $user = auth('web-company')->user(); $result = $this->resumeService->resumeDown($request->all(), $user); if ($request->ajax()) { if ($result['downList']->currentPage() > $result['downList']->lastPage()) { return response()->json(['status'=>0]); } return response()->json(['status'=>1,'data'=>view('mobile.app.company.resume.ajax.ajax_resume_down', ['downList'=>$result['downList']])->render()]); } $result['wap_title'] = '已下载简历'; return view('mobile.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\Http\JsonResponse|\Illuminate\View\View * @throws \Throwable */ public function favoritesResume(Request $request) { $user = auth('web-company')->user(); $res = $this->resumeService->favoritesResume($request->all(), $user, 1); if ($request->ajax()) { if ($res['favorityList']->currentPage() > $res['favorityList']->lastPage()) { return response()->json(['status'=>0]); } return response()->json(['status'=>1,'data'=>view('mobile.app.company.resume.ajax.ajax_resume_favorit', ['favorityList'=>$res['favorityList'],'params'=>$res['params']])->render()]); } $res['wap_title'] = '人才库信息'; return view('mobile.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) { $user = auth('web-company')->user(); return $this->resumeService->favoritesResumeDel($request->id,$user); } /** * 浏览过的简历 * @param Request $request * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function browseResume(Request $request) { $res = $this->resumeService->browseResume($request); 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) { $res = $this->resumeService->browseJobs($request); 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('请选择反馈结果!'); } return $this->resumeService->feedbackModify($id, $explan, $status); } 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) { $res = $this->resumeService->concern($request); 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()]); } }