123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005 |
- <?php
- /**
- * Created by PhpStorm.
- * User: zhanghao
- * Date: 2019/6/17
- * Time: 11:05
- */
- namespace App\Http\Controllers\Web\Jobfairout;
- use App\Exceptions\ResponseException;
- use App\Http\Controllers\Web\WebBaseController;
- use App\Models\Subsite;
- use App\Repositories\Jobfairout\JobfairoutCompanyRepository;
- use App\Repositories\Jobfairout\JobfairoutPersonalJobsApplyRepository;
- use App\Repositories\Jobfairout\JobfairoutPutJobRepository;
- use App\Repositories\Jobfairout\JobfairoutInfoRepository;
- use App\Repositories\Jobfairout\JobfairoutRepository;
- use App\Repositories\Jobfair\JobfairJobRepository;
- use App\Repositories\ResumeRepository;
- use App\Services\Jobfairout\JobfairoutCompanyService;
- use App\Services\Jobfairout\JobfairoutJobsService;
- use App\Services\Jobfairout\JobfairoutPersonalJopApplyService;
- use App\Services\Jobfairout\JobfairoutPutJobService;
- use App\Services\Jobfairout\JobfairoutService;
- use App\Services\Person\ResumeService;
- use App\Services\Jobfairout\JobfairoutReserveService;
- use Illuminate\Http\Request;
- use App\Repositories\CompanyRepository;
- use App\Repositories\Jobfairout\jobfairoutReserveRepository;
- use App\Repositories\Jobfairout\jobfairoutReserveListRepository;
- use App\Repositories\Jobfairout\jobfairoutFeedbackRepository;
- use Illuminate\Support\Facades\DB;
- use App\Services\Company\CompanyService;
- use App\Services\Company\CompanyDownResumeService;
- class JobfairoutController extends WebBaseController
- {
- protected $jobfairoutJobsService;
- protected $jobfairoutCompanyRepository;
- protected $jobfairoutCompanyService;
- protected $jobfairoutService;
- protected $jobfairoutRepository;
- protected $jobfairoutPersonalJobsApplyRepository;
- protected $jobfairoutPersonalJopApplyService;
- protected $resumeService;
- protected $jobfairoutPutJobRepository;
- protected $resumeRepository;
- protected $jobfairoutPutJobService;
- protected $companyRepository;
- protected $jobfairoutInfoRepository;
- protected $jobfairJobRepository;
- protected $jobfairoutReserveRepository;
- protected $jobfairoutReserveListRepository;
- protected $jobfairoutFeedbackRepository;
- protected $companyService;
- protected $companyDownResumeService;
- protected $jobfairoutReserveService;
- /**
- * JobfairController constructor.
- * @param $jobfairoutJobsService
- * @param $jobfairoutCompanyRepository
- * @param $jobfairCompanyService
- * @param $jobfairoutService
- * @param $jobfairoutRepository
- * @param $jobfairoutPersonalJobsApplyRepository
- * @param $jobfairoutPersonalJopApplyService
- * @param $resumeService
- * @param $jobfairoutPutJobRepository
- * @param $resumeRepository
- * @param $jobfairoutPutJobService
- * @param $companyRepository
- * @param $jobfairoutInfoRepository
- * @param $jobfairJobRepository
- * @param $jobfairoutReserveRepository
- * @param jobfairoutReserveListRepository
- * @param $jobfairoutFeedbackRepository
- * @param $companyService
- * @param $companyDownResumeService
- * @param $jobfairoutReserveService
- */
- public function __construct(
- ResumeService $resumeService,
- JobfairoutPutJobService $jobfairoutPutJobService,
- ResumeRepository $resumeRepository,
- JobfairoutPutJobRepository $jobfairoutPutJobRepository,
- JobfairoutJobsService $jobfairoutJobsService,
- JobfairoutPersonalJopApplyService $jobfairoutPersonalJopApplyService,
- JobfairoutPersonalJobsApplyRepository $jobfairoutPersonalJobsApplyRepository,
- JobfairoutRepository $jobfairoutRepository,
- JobfairoutService $jobfairoutService,
- JobfairoutCompanyService $jobfairoutCompanyService,
- JobfairoutCompanyRepository $jobfairoutCompanyRepository,
- JobfairoutInfoRepository $jobfairoutInfoRepository,
- CompanyRepository $companyRepository,
- JobfairJobRepository $jobfairJobRepository,
- jobfairoutReserveRepository $jobfairoutReserveRepository,
- jobfairoutReserveListRepository $jobfairoutReserveListRepository,
- jobfairoutFeedbackRepository $jobfairoutFeedbackRepository,
- CompanyService $companyService,
- CompanyDownResumeService $companyDownResumeService,
- JobfairoutReserveService $jobfairoutReserveService
- )
- {
- $this->jobfairoutJobsService = $jobfairoutJobsService;
- $this->jobfairoutCompanyRepository = $jobfairoutCompanyRepository;
- $this->jobfairoutCompanyService = $jobfairoutCompanyService;
- $this->jobfairoutService = $jobfairoutService;
- $this->jobfairoutRepository = $jobfairoutRepository;
- $this->jobfairoutPersonalJobsApplyRepository = $jobfairoutPersonalJobsApplyRepository;
- $this->jobfairoutPersonalJopApplyService = $jobfairoutPersonalJopApplyService;
- $this->resumeService = $resumeService;
- $this->jobfairoutPutJobRepository = $jobfairoutPutJobRepository;
- $this->resumeRepository = $resumeRepository;
- $this->jobfairoutPutJobService = $jobfairoutPutJobService;
- $this->companyRepository = $companyRepository;
- $this->jobfairoutInfoRepository = $jobfairoutInfoRepository;
- $this->jobfairJobRepository = $jobfairJobRepository;
- $this->jobfairoutReserveRepository = $jobfairoutReserveRepository;
- $this->jobfairoutReserveListRepository = $jobfairoutReserveListRepository;
- $this->jobfairoutFeedbackRepository = $jobfairoutFeedbackRepository;
- $this->companyService = $companyService;
- $this->companyDownResumeService = $companyDownResumeService;
- $this->jobfairoutReserveService = $jobfairoutReserveService;
- }
- /**近期招聘会
- * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
- */
- public function jobfairoutIndex()
- {
- $user = auth('web-company')->user();
- $res = $this->jobfairoutService->jobfairIndex($user);
- return view('app.jobfairout.company.index', $res);
- }
- /**定展记录
- * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
- */
- public function jobfairEnact()
- {
- $user = auth('web-company')->user();
- $res = $this->jobfairoutCompanyService->jobfairEnact($user);
- return view('app.jobfairout.company.jobfair_enact', $res);
- }
- /**招聘会职位库管理
- * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
- */
- public function jobfairoutJobsList()
- {
- $res = $this->jobfairoutJobsService->jobfairoutJobsList();
- return view('app.jobfairout.company.jobfair_joblist', $res);
- }
- /**招聘会职位添加
- * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
- */
- public function jobfairoutJobsAdd()
- {
- $res = $this->jobfairoutJobsService->jobfairoutJobsAdd();
- return view('app.jobfairout.company.jobfair_job_add', $res);
- }
- /**招聘会职位修改
- * @param int $id
- * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
- */
- public function jobfairoutJobsEdit($id)
- {
- $user = auth('web-company')->user();
- $res = $this->jobfairoutJobsService->jobfairoutJobsEdit($id, $user);
- if (!$res) {
- return $this->showMessage('参数错误', route('jobfairout.quarterslist'), true, '上一页');
- }
- return view('app.jobfairout.company.jobfair_job_add', $res);
- }
- /**招聘会职位删除
- * @param Request $request
- * @return \Illuminate\Http\JsonResponse
- * @throws \Throwable
- */
- public function jobfairoutJobsDel(Request $request)
- {
- if ($request->method() == 'POST') {
- return $this->jobfairoutJobsService->jobfairoutJobsDel($request);
- }
- $tip = "被删除后将无法恢复,您确定要删除选中的职位吗?";
- return response()->json(['status'=>1,'data'=>['html'=>view('app.company.ajax.ajax_warning', ['tip'=>$tip])->render()]]);
- }
- /**招聘会职位修改和添加
- * @param Request $request
- * @return \Illuminate\Http\JsonResponse
- */
- public function jobfairoutJobsSave(Request $request)
- {
- $user = auth('web-company')->user();
- $data = $request->except(['_method', '_token']);
- return $this->jobfairoutJobsService->jobsSave($data, $user);
- }
- /**职位添加到招聘会中
- * @param Request $request
- * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\JsonResponse|\Illuminate\View\View
- * @throws \Throwable
- */
- public function jobfairoutJobsToJobfair(Request $request)
- {
- $user = auth('web-company')->user();
- if ($request->method() == 'POST') {
- $jids = $request->y_id;
- if (!$jids || !$request->exid_list) {
- return $this->showMessage('请选择职位或加入的招聘会', route('jobfair.quarterslist'), true, '上一页');
- }
- $this->jobfairoutJobsService->isOwn($jids,$user);
- $exidArr = explode(',', $request->exid_list);
- $this->jobfairoutCompanyService->isOwnArr($exidArr,$user);
- $res = $this->jobfairoutJobsService->jobfairoutJobsToJobfair($request);
- if ($res['state']) {
- return $this->showMessage('添加成功!'.$res['error'], route('jobfairout.quarterslist'), false, '上一页');
- }
- return $this->showMessage($res['msg'], route('jobfairout.quarterslist'), true, '上一页');
- }
- //公司参加的招聘会
- $jobfairInfo = $this->jobfairoutCompanyRepository->getJobfair($user->id);
- if ($jobfairInfo->isEmpty()) {
- return response()->json(['status'=>0, 'msg'=>"您还没有参加招聘会或申请未通过审核,请点击右侧链接参加招聘会<a href='" .route('jobfairout.lists'). "' style='color: #FF0000'>【点击参加】</a>"]);
- }
- return response()->json(['status'=>1,'data'=>['html'=>view('app.jobfairout.ajax.ajax_jobfair_mod', ['jobfairInfo'=>$jobfairInfo])->render()]]);
- }
- /**参展职位
- * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
- */
- public function jobfairoutjob(Request $request)
- {
- $user = auth('web-company')->user();
- $jobfairid = $request->jobfairid?$request->jobfairid:'';
- $audit = $request->audit?$request->audit:'';
- $map = [];
- $map1['company_id'] = $user->id;
- if ($audit) {
- $map1['audit'] = $audit;
- }
- if ($jobfairid) {
- $map['jobfair_id'] = $jobfairid;
- }
- $param_array = array('jobfairid','audit');
- $params= array();
- if ($request->all()) {
- foreach ($request->all() as $k => $v) {
- if (in_array($k, $param_array)) {
- $params[$k] = $v;
- }
- }
- }
- $res = $this->jobfairoutPutJobService->jobfairoutPutJobsList($map,$map1);
- $jobfairArr = $this->jobfairoutCompanyRepository->findWhere(['company_id'=>$user->id], ['jobfair_id']);
- $jobfairList = [];
- if ($jobfairArr) {
- $list = $jobfairArr->toArray();
- $jobfairList = $this->jobfairoutRepository->findWhereIn('id', $list, ['id','title'])->toArray();
- }
- $res['jobfairid'] = $jobfairid;
- $res['audit'] = $audit;
- $res['params'] = $params;
- $res['jobfairList'] = array_column($jobfairList, 'title', 'id');
- $res['audtiArr'] = [1=>'审核通过',2=>'待审核',3=>'审核未通过'];
- return view('app.jobfairout.company.jobfair_job', $res);
- }
- public function jobfairPutJobsSave(Request $request)
- {
- $data = $request->except(['_token', 'method']);
- $user = auth('web-company')->user();
- return $this->jobfairoutPutJobService->jobfairoutPutJobsSave($data, $user);
- }
- public function jobfairjobdel(Request $request)
- {
- $id = $request->y_id?$request->y_id:0;
- $ids = is_array($id)?$id:explode(',', $id);
- if ($request->method() == 'POST') {
- if (!$ids) {
- return response()->json(['status'=>0,'html'=>'参数错误']);
- }
- return $this->jobfairoutPutJobService->jobfairPutJobsDel($ids);
- }
- $tip = "被删除后将无法恢复,您确定要删除选中的职位吗?";
- return response()->json(['status'=>1,'data'=>['html'=>view('app.company.ajax.ajax_warning', ['tip'=>$tip])->render()]]);
- }
- /**收到的招聘会简历
- * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
- */
- public function downResume(Request $request)
- {
- $user = auth('web-company')->user();
- $jobs_id = $request->input('jobs_id','');
- $jobfair_id = $request->input('jobfair_id','');
- $where = [];
- $where1 = [];
- $result['jobfairList'] = $this->jobfairoutCompanyService->jobfairList($user);
- $result['jobs_name'] = '全部职位';
- if($jobs_id)
- {
- $where1['job_id'] = $jobs_id;
- $result['jobs_name'] = $this->jobfairJobRepository->find($jobs_id,['jobs_name'])->jobs_name;
- }
- $result['jobfair_name'] = '全部招聘会';
- if($jobfair_id)
- {
- $where['jobfair_id'] = $jobfair_id;
- $result['jobfair_name'] = $this->jobfairoutRepository->find($jobfair_id,['title'])->title;
- }
- $result['apply'] = $this->jobfairoutPersonalJobsApplyRepository->getResumeJobs($user->id,$where,$where1);
- $whereJob = [
- 'company_id' => $user->id,
- 'audit' => 1,
- 'type' => 2,
- ];
- $result['jobs'] = $this->jobfairJobRepository->getJobs($whereJob);
- $params= array();
- $param_array = array('jobs_id','jobfair_id');
- if ($request->all()) {
- foreach ($request->all() as $k => $v) {
- if (in_array($k, $param_array)) {
- $params[$k] = $v;
- }
- }
- }
- $result['params'] = $params;
- return view('app.jobfairout.company.down_resume', $result);
- }
- public function downResumeDel(Request $request)
- {
- if ($request->method() == 'POST') {
- $user = $this->getLoginUser();
- return $this->jobfairoutPersonalJopApplyService->downResumeDel($request,$user);
- }
- $tip = "被删除后将无法恢复,您确定要删除选中的简历吗?";
- return response()->json(['status'=>1,'data'=>['html'=>view('app.company.ajax.ajax_warning', ['tip'=>$tip])->render()]]);
- }
- /**招聘会详情
- * @param int $id
- * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
- */
- public function jobfairoutShow($id = 0)
- {
- $back_url = \Illuminate\Support\Facades\URL::previous();
- if (!$id) {
- return $this->showMessage('参数错误!', $back_url, true, '上一页');
- }
- $user = auth('web-company')->user();
- $res = $this->jobfairoutService->jobfairShow($id,$user);
- if (!$res['status']) {
- return $this->showMessage($res['msg'], $back_url, true, '上一页');
- } else {
- $res['jobfair']->sitename = Subsite::where('id',$res['jobfair']->subsite_id)->value('sitename');
- if (array_has($res, 'jobfair')) {
- $this->putSeoData('jobfair', $res['jobfair']);
- }
- return view('app.jobfairout.jobfair_show', $res);
- }
- }
- /**招聘会企业
- * @param Request $request
- * @param int $id
- * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\JsonResponse|\Illuminate\View\View
- * @throws \Throwable
- */
- public function jobfairoutShowCom(Request $request, $id = 0)
- {
- $back_url = \Illuminate\Support\Facades\URL::previous();
- if (!$id) {
- return $this->showMessage('参数错误!', $back_url, true, '上一页');
- }
- $user = auth('web-company')->user();
- $res = $this->jobfairoutService->jobfairShowCom($request, $id,$user);
- if ($request->ajax()) {
- if ($res->isNotEmpty()) {
- return response()->json(['status'=>1,'data'=>view('app.jobfairout.ajax.ajax_jobfair_com', ['jobfairCompany'=>$res])->render()]);
- }
- return response()->json(['status'=>0]);
- }
- if (!$res['status']) {
- return $this->showMessage($res['msg'], $back_url, true, '上一页');
- } else {
- $res['jobfair']->sitename = Subsite::where('id',$res['jobfair']->subsite_id)->value('sitename');
- $this->putSeoData('jobfair', $res['jobfair']);
- return view('app.jobfairout.jobfair_com', $res);
- }
- }
- /**招聘会职位详情
- * @param $jobfair_id
- * @param $job_id
- * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
- */
- public function jobfairoutShowJob($id)
- {
- $job = $this->jobfairoutService->jobfairShowJob($id);
- if (!$job['status']) {
- return $this->showMessage($job['msg'], route('jobfair'), true, '上一页');
- } else {
- $this->putSeoData('jobfair_job', $job['jobInfo']);
- return view('app.jobfairout.jobfair_job', $job);
- }
- }
- /**异步查询职位(废弃)
- * @param Request $request
- * @return \Illuminate\Http\JsonResponse
- * @throws \Throwable
- */
- // public function jobfairoutAjaxJobs(Request $request)
- // {
- // $keyinput = $request->keyinput?$request->keyinput:'';
- // if (!$keyinput) {
- // return response()->json(['status'=>0,'msg'=>"请输入要搜索的职位名称"]);
- // }
- // $jobfair_id = $request->jobfair_id?$request->jobfair_id:0;
- // if (!$jobfair_id) {
- // return response()->json(['status'=>0,'msg'=>"招聘会ID不正确"]);
- // }
- // $where = [
- // 'jobfair_id'=>$jobfair_id,
- // 'audit'=>1
- // ];
- // $res = $this->jobfairoutCompanyRepository->findJob($where);
- //
- // foreach ($res as $key => $val) {
- // $jobfairPutJob = $this->jobfairoutPutJobRepository->searchJob($jobfair_id, $keyinput, $val->company_id, $val->id);
- // if ($jobfairPutJob->isNotEmpty()) {
- // $val->jobfairPutJob = $jobfairPutJob;
- // } else {
- // unset($res[$key]);
- // }
- // }
- //
- // if ($res->isEmpty()) {
- // return response()->json(['status'=>0,'msg'=>"未查找到与【{$keyinput}】相似的职位或企业"]);
- // }
- // return response()->json(['status'=>1,'data'=>view('app.jobfairout.ajax.ajax_jobfair_com_jobs', ['jobfairCompany'=>$res])->render()]);
- // }
- public function jobfairoutAppointmentJobs(Request $request)
- {
- $user = $this->getLoginUser();
- $jid = $request->jobsfair_job_id;
- $jobfair_id = $request->jobfairid;
- $company_id = $request->company_id;
- $resume_id = $request->resume_id?$request->resume_id:0;
- $jobfair = $this->jobfairoutRepository->find($jobfair_id);
- if ($jobfair->isEmpty || $jobfair->holddate_end < time()) {
- return response()->json(['status'=>0, 'html'=>"招聘会已停止"]);
- }
- if ($resume_id) {
- $this->resumeService->isOwn($resume_id,$user);
- $this->jobfairoutPutJobService->isOwn($jid,$company_id);
- $data['resume_id'] = $resume_id;
- $data['personal_uid'] = $user->id;
- $data['jobs_id'] = $jid;
- $data['company_id'] = $company_id;
- $data['jobfair_id'] = $jobfair_id;
- if (!$jid || !$company_id || !$jobfair_id ) {
- return response()->json(['status'=>2,'type'=>3,'msg'=>'参数错误!']);
- }
- //简历完整度
- $res_complete = $this->resumeRepository->find($resume_id, ['complete_percent']);
- if ($res_complete->complete_percent < config('aix.personal_set.per_set.per_set.apply_job_min_percent')) {
- return response()->json(['status'=>0,'html'=>'请完善简历后再预约职位','resume_id'=>$resume_id]);
- }
- if ($this->jobfairoutPersonalJobsApplyRepository->findWhere(['personal_uid'=>$user->id, 'jobs_id'=>$jid, 'company_id'=>$company_id, 'jobfair_id'=>$jobfair_id])->isNotEmpty()) {
- return response()->json(['status'=>0, 'html'=>"您已预约该职位,请勿重复预约!"]);
- }
- DB::beginTransaction();
- try {
- $this->jobfairoutPersonalJopApplyService->applyJob($data);
- $this->companyDownResumeService->addDownResumes($company_id,$resume_id);
- DB::commit();
- return response()->json(['status'=>1, 'html'=>"职位预约成功!"]);
- } catch (\Exception $e) {
- DB::rollback();
- return response()->json(['status'=>0,'type'=>0 , 'html'=>"职位预约失败!"]);
- }
- } else {
- if (!$jid || !$company_id || !$jobfair_id) {
- return response()->json(['status'=>2,'type'=>3,'msg'=>'参数错误!']);
- }
- $result = $this->jobfairoutPersonalJopApplyService->ifJobApply($user);
- if ($result['status'] == 2) { //返回结果,让用户选择简历投递
- $page_data = array('status'=>array_get($result, 'status'),'resumes'=>array_get($result, 'resumes'),'def_resume'=>array_get($result, 'def_resume'),'jobs_id'=>$jid);
- $page_data['company_id'] = $company_id;
- $page_data['jobfair_id'] = $jobfair_id;
- $page_data['jobs_id'] = $jid;
- $html = view('app.jobfairout.ajax.ajax_apply', $page_data)->render();
- return response()->json(['status'=>2,'html'=>$html]);
- } elseif ($result['status'] == 3) { //直接投递
- $this->jobfairoutPutJobService->isOwn($jid,$company_id);
- $resume = $result['resumes'][0];
- $data['resume_id'] = $resume->id;
- $data['personal_uid'] = $user->id;
- $data['jobs_id'] = $jid;
- $data['company_id'] = $company_id;
- $data['jobfair_id'] = $jobfair_id;
- $res_complete = $this->resumeRepository->find($resume->id, ['complete_percent']);
- if ($res_complete->complete_percent < config('aix.personal_set.per_set.per_set.apply_job_min_percent')) {
- return response()->json(['status'=>0,'html'=>'请完善简历后再预约职位','resume_id'=>$resume->id]);
- }
- if ($this->jobfairoutPersonalJobsApplyRepository->findWhere(['resume_id'=>$resume->id, 'jobs_id'=>$jid, 'company_id'=>$company_id, 'jobfair_id'=>$jobfair_id])->isNotEmpty()) {
- return response()->json(['status'=>0, 'html'=>"您已预约该职位,请勿重复预约!"]);
- }
- DB::beginTransaction();
- try {
- $this->jobfairoutPersonalJopApplyService->applyJob($data);
- $this->companyDownResumeService->addDownResumes($company_id,$resume->id);
- DB::commit();
- return response()->json(['status'=>1, 'html'=>"职位预约成功!"]);
- } catch (\Exception $e) {
- DB::rollback();
- return response()->json(['status'=>0,'type'=>0 , 'html'=>"职位预约失败!"]);
- }
- }
- }
- }
- public function personJobfairout()
- {
- $resume = $this->resumeService->myResumeAjax(auth('web-member')->user());
- $jobApply = $this->jobfairoutPersonalJopApplyService->personJobfair();
- return view('app.jobfairout.person.job_apply', ['resume' => $resume, 'interview' => $jobApply['interview']]);
- }
- public function personDelectout()
- {
- if (request()->method()=='GET') {
- $html = view('app.person.ajax.resume_delete', ['tpis'=>'删除后将无法恢复,您确定要删除选择的预约职位吗?'])->render();
- return $this->sendSuccessResponse($html);
- } else {
- $user = auth('web-member')->user();
- $this->jobfairoutPersonalJopApplyService->isOwn(request()->id,$user);
- $res = $this->jobfairoutPersonalJopApplyService->personDelect(request()->id, auth('web-member')->user());
- if ($res) {
- return $this->sendSuccessResponse('删除成功!');
- } else {
- return $this->sendErrorResponse('删除失败!');
- }
- }
- }
- public function jobfairoutAppointmentSave(Request $request)
- {
- $user = $this->getLoginUser();
- if (!$user) {
- $jobfair_id = $request->jobfair_id?$request->jobfair_id:0;
- return response()->json(['status'=>0, 'type'=>1, 'html'=>view('app.common.ajax.com_login', ['redirect_url'=>route('jobfairout.show.com', ['id'=>$jobfair_id])])->render(),'msg'=>'您还没有登录,请先登录再预约招聘会']);
- }
- if ($user->utype == 2) {
- return response()->json(['status'=>0,'type'=>0,'msg'=>'个人会员不允许预定招聘会!']);
- }
- //企业是否通过认证
- if ($user->audit!=1) {
- return response()->json(['status'=>0,'type'=>0,'msg'=>'企业或营业执照未通过审核!']);
- }
- $jobfair_id = $request->jobfair_id?$request->jobfair_id:0;
- if (!$jobfair_id || !$jobfairInfo = $this->jobfairoutRepository->findOne(['id'=>$jobfair_id])) {
- return response()->json(['status'=>0,'msg'=>'查无此招聘会!']);
- }
- if ($this->jobfairoutCompanyRepository->findCom(['jobfair_id'=>$jobfair_id, 'company_id'=>$user->id,['audit','<>', 3]])) {
- return response()->json(['status'=>0,'msg'=>'很抱歉,本次招聘会已经预定了,快去发布职位吧!']);
- }
- if($this->jobfairoutCompanyRepository->getComCount(['jobfair_id'=>$jobfair_id,['audit','<>', 3]]) >= $jobfairInfo->number){
- return response()->json(['status'=>0,'msg'=>'很抱歉,已经没有本次招聘会空余展位了!']);
- }
- if ($request->method()=='POST') {
- return $this->jobfairoutService->jobfairAppointmentSave($jobfairInfo, $user);
- }
- $msg ="<br><span>在线预定审核成功后将无法退订,是否继续.</span><br>";
- return response()->json(['status'=>1,'msg'=>$msg]);
- }
- /**填写单位信息
- * return \Illuminate\Http\JsonResponse
- */
- public function ajaxCompanyinfo(Request $request)
- {
- if ($request->method() == 'POST') {
- $user = $this->getLoginUser();
- $exid = $request->input('exid', '');
- $jobfair_id = $request->input('jobfair_id', '');
- $this->jobfairoutCompanyService->isOwn($exid,$user);
- $this->jobfairoutCompanyService->isOwnJobfair($exid,$jobfair_id);
- $contact = $request->input('contact', '');
- $phone = $request->input('phone', '');
- $tel_first = $request->input('tel_first', '-');
- $tel_next = $request->input('tel_next', '-');
- $tel_last = $request->input('tel_last', '-');
- $email = $request->input('email', '');
- $qq = $request->input('qq', '');
- $address = $request->input('address', '');
- $intro = $request->input('intro', '');
- $url = $request->input('url', '');
- $fax = $request->input('fax', '');
- $id = $request->input('id', '');
- $is_speech = $request->input('is_speech', '');
- if (!$contact) {
- $return_data = array( 'status'=>0, 'msg' => '请输入联系人信息');
- return response()->json($return_data);
- }
- if (!$email) {
- $return_data = array( 'status'=>0, 'msg' => '请输入联系邮箱');
- return response()->json($return_data);
- }
- if (!$address) {
- $return_data = array( 'status'=>0, 'msg' => '请输入联系地址');
- return response()->json($return_data);
- }
- $landline_tel = implode('-', [$tel_first?$tel_first:'',$tel_next?$tel_next:'',$tel_last?$tel_last:'']);
- $set_data = array(
- 'jobfair_id' => $jobfair_id,
- 'exid' => $exid,
- 'company_id' => (int)auth('web-company')->user()->id,
- 'contact' => $contact,
- 'phone' => $phone,
- 'landline_tel' => $landline_tel,
- 'email' => $email,
- 'qq' => $qq,
- 'address' => $address,
- 'intro' => $intro,
- 'url' => $url,
- 'fax' => $fax,
- 'is_speech' => $is_speech,
- );
- if($id){
- $rst = $this->jobfairoutInfoRepository->update($set_data,$id);
- }else{
- $rst = $this->jobfairoutInfoRepository->create($set_data);
- }
- if ($rst) {
- $return_data = array('status'=>1, 'msg'=>'编辑成功');
- } else {
- $return_data = array('status'=>0, 'msg'=>'编辑失败');
- }
- return response()->json($return_data);
- } else {
- $jobfair_id = $request->input('jobfairout_id', '');
- $exid = $request->input('exid', '');
- if(!$jobfair_id || !$exid){
- return response()->json([ 'status'=>0, 'msg' => '缺少参数!']);
- }
- $user = auth('web-company')->user();
- $where = [
- 'jobfair_id'=>(int)$jobfair_id,
- 'company_id'=>$user->id
- ];
- $companyInfo = $this->jobfairoutInfoRepository->getOneInfo($where);
- if(!$companyInfo){
- $companyInfo = $this->companyRepository->getCompanyInfoByID($user->id);
- }else{
- $companyInfo->edit = true;
- }
- $companyInfo->exid = $exid;
- $companyInfo->jobfair_id = $jobfair_id;
- $html = view('app.jobfairout.ajax.add_info', ['companyInfo'=>$companyInfo])->render();
- $return_data = array( 'status'=>1, 'data' => $html);
- return response()->json($return_data);
- }
- }
- /**发布职位
- * return \Illuminate\Http\JsonResponse
- */
- public function ajaxComJobs(Request $request)
- {
- if ($request->method() == 'POST') {
- $user = $this->getLoginUser();
- $jobs_arr= $request->input('check_jobs_id', '');
- $jobfair_id = $request->input('jobfair_id', '');
- $exid = $request->input('exid', '');
- $jobs = $this->jobfairJobRepository->getPluck(['company_id'=>$user->id,'type'=>2,'audit'=>1],'id')->toArray();
- if(array_diff($jobs_arr,$jobs)) {
- throw new ResponseException('参数错误!');
- }
- $this->jobfairoutCompanyService->isOwn($exid,$user);
- //获取列表
- $where = ['exid'=>$exid];
- $ids = $this->jobfairoutPutJobRepository->getJobIds($where);
- DB::beginTransaction();
- try {
- if($ids){
- if($jobs_arr){
- $add_array = array_diff($jobs_arr,$ids);
- if($add_array)
- {
- $this->jobfairoutPutJobService->addData($add_array,$exid,$jobfair_id);
- }
- $del_array = array_diff($ids,$jobs_arr);
- $this->jobfairoutPutJobRepository->destroyArr($del_array);
- }else{
- $where = [
- 'exid'=>$exid
- ];
- $this->jobfairoutPutJobRepository->delList($where,$ids);
- }
- }else{
- if($jobs_arr)
- {
- $this->jobfairoutPutJobService->addData($jobs_arr,$exid,$jobfair_id);
- }else{
- throw new \Exception('请选择职位添加');
- }
- }
- DB::commit();
- $return_data = array('status'=>1, 'msg'=>'编辑成功');
- return response()->json($return_data);
- } catch (\Exception $e) {
- DB::rollback();
- $return_data = array('status'=>0, 'msg'=>$e->getMessage());
- return response()->json($return_data);
- }
- } else {
- $user = auth('web-company')->user();
- $jobfair_id = $request->input('jobfairout_id', '');
- $exid = $request->input('exid', '');
- $jobs = $this->jobfairJobRepository->getJobs(['company_id'=>$user->id,'type'=>2,'audit'=>1]);
- if($jobs->isEmpty())
- {
- $return_data = array( 'status'=>2, 'msg' => '没有赴外招聘会职位,请先添加职位');
- return response()->json($return_data);
- }else{
- $join_jobs = $this->jobfairoutPutJobRepository->getJobfairJob(['exid'=>$exid]);
- $html = view('app.jobfairout.ajax.add_jobs', ['jobs'=>$jobs,'jobfair_id'=>$jobfair_id,'exid'=>$exid,'join_jobs'=>$join_jobs])->render();
- $return_data = array( 'status'=>1, 'data' => $html);
- return response()->json($return_data);
- }
- }
- }
- /**参加人员
- * return \Illuminate\Http\JsonResponse
- */
- public function ajaxPerson(Request $request)
- {
- if ($request->method() == 'POST') {
- $user = auth('web-company')->user();
- $jobfair_id = $request->input('jobfair_id', '');
- $exid = $request->input('exid', '');
- $this->jobfairoutCompanyService->isOwn($exid,$user);
- $this->jobfairoutCompanyService->isOwnJobfair($exid,$jobfair_id);
- $name= $request->input('name');
- $sex= $request->input('sex');
- $telephone = $request->input('telephone');
- $post = $request->input('post');
- $idcard = $request->input('idcard');
- $gentuan = $request->input('gentuan');
- $star = $request->input('star');
- $intro = $request->input('intro');
- if(!$name)
- {
- $return_data = array('status'=>0, 'msg'=>'请填写姓名');
- return response()->json($return_data);
- }
- if(!$sex)
- {
- $return_data = array('status'=>0, 'msg'=>'请选择性别');
- return response()->json($return_data);
- }
- if(!$telephone)
- {
- $return_data = array('status'=>0, 'msg'=>'请填写手机号码');
- return response()->json($return_data);
- }
- if(!preg_match("/^1[3456789]\d{9}$/", $telephone)){
- $return_data = array('status'=>0, 'msg'=>'请填写正确的手机号码');
- return response()->json($return_data);
- }
- if(!$post)
- {
- $return_data = array('status'=>0, 'msg'=>'请填写职务');
- return response()->json($return_data);
- }
- if(!$idcard)
- {
- $return_data = array('status'=>0, 'msg'=>'请填写身份证号码');
- return response()->json($return_data);
- }
- if(!isCreditNo($idcard)){
- $return_data = array('status'=>0, 'msg'=>'请填写正确的身份证号码');
- return response()->json($return_data);
- }
- $reserve_list_data = [
- 'name'=>$name,
- 'telephone'=>$telephone,
- 'post'=>$post,
- 'idcard'=>$idcard,
- 'sex'=>$sex,
- 'company_id'=>$user->id
- ];
- $reserve_data = [
- 'jobfair_id'=>$jobfair_id,
- 'company_id'=>$user->id,
- 'exid'=>$exid,
- 'name1'=>$name,
- 'id1'=>$idcard,
- 'phone1'=>$telephone,
- 'sex1'=>$sex,
- 'departmental_position1'=>$post,
- 'gentuan'=>$gentuan,
- 'star'=>$star,
- 'intro'=>$intro,
- ];
- DB::beginTransaction();
- try {
- if(!$this->jobfairoutReserveListRepository->getOne(['idcard'=>$idcard,'company_id'=>$user->id])){
- $this->jobfairoutReserveListRepository->create($reserve_list_data);
- }
- $this->jobfairoutReserveRepository->create($reserve_data);
- DB::commit();
- $return_data = array('status'=>1, 'msg'=>'编辑成功');
- return response()->json($return_data);
- } catch (\Exception $e) {
- DB::rollback();
- $return_data = array('status'=>0, 'msg'=>$e->getMessage());
- return response()->json($return_data);
- }
- } else {
- $user = auth('web-company')->user();
- $jobfair_id = $request->input('jobfairout_id', '');
- $exid = $request->input('exid', '');
- $reserve_list = $this->jobfairoutReserveListRepository->getReserveList(['company_id'=>$user->id]);
- $reserve = $this->jobfairoutReserveRepository->getReserve(['exid'=>$exid]);
- $html = view('app.jobfairout.ajax.add_person', ['reserve'=>$reserve,'reserve_list'=>$reserve_list,'jobfair_id'=>$jobfair_id,'exid'=>$exid])->render();
- $return_data = array( 'status'=>1, 'data' => $html);
- return response()->json($return_data);
- }
- }
- public function ajaxPersonDel(Request $request)
- {
- $id = $request->id;
- $user = $this->getLoginUser();
- $this->jobfairoutReserveService->isOwn($id,$user);
- if($this->jobfairoutReserveRepository->delete($id)){
- $return_data = array( 'status'=>1, 'data' => '删除成功');
- return response()->json($return_data);
- }
- $return_data = array( 'status'=>0, 'data' => '删除失败');
- return response()->json($return_data);
- }
- public function ajaxPersonInfo(Request $request)
- {
- $id = $request->id;
- if($data = $this->jobfairoutReserveListRepository->find($id)){
- $return_data = array( 'status'=>1, 'data' => $data);
- return response()->json($return_data);
- }
- $return_data = array( 'status'=>0, 'data' => '获取信息失败');
- return response()->json($return_data);
- }
- /**反馈表
- * return \Illuminate\Http\JsonResponse
- */
- public function ajaxFeedback(Request $request)
- {
- if ($request->method() == 'POST') {
- $user = auth('web-company')->user();
- $jobfair_id = $request->input('jobfair_id', '');
- $exid = $request->input('exid', '');
- $this->jobfairoutCompanyService->isOwn($exid,$user);
- $companyname = $request->input('companyname');
- $phone = $request->input('phone');
- $schoolname = $request->input('schoolname');
- $resumeNum = $request->input('resumeNum');
- $agreeNum = $request->input('agreeNum');
- $signNum = $request->input('signNum');
- $advice = $request->input('advice');
- $id = $request->input('id');
- if(!$companyname)
- {
- $return_data = array('status'=>0, 'msg'=>'请填写公司名称');
- return response()->json($return_data);
- }
- if(!$phone)
- {
- $return_data = array('status'=>0, 'msg'=>'请填写联系电话');
- return response()->json($return_data);
- }
- if(!preg_match("/^1[3456789]\d{9}$/", $phone)){
- $return_data = array('status'=>0, 'msg'=>'请填写正确的联系电话');
- return response()->json($return_data);
- }
- if(!$schoolname)
- {
- $return_data = array('status'=>0, 'msg'=>'请填写学校姓名');
- return response()->json($return_data);
- }
- $feedback_data = [
- 'jobfair_id'=>$jobfair_id,
- 'exid'=>$exid,
- 'companyname'=>$companyname,
- 'phone'=>$phone,
- 'schoolname'=>$schoolname,
- 'advice'=>$advice,
- 'resumeNum'=>implode(',',$resumeNum),
- 'agreeNum'=>implode(',',$agreeNum),
- 'signNum'=>implode(',',$signNum),
- 'company_id'=>$user->id
- ];
- DB::beginTransaction();
- try {
- if($id){
- $this->jobfairoutFeedbackRepository->update($feedback_data,$id);
- }else{
- $this->jobfairoutFeedbackRepository->create($feedback_data);
- }
- DB::commit();
- $return_data = array('status'=>1, 'msg'=>'保存成功');
- return response()->json($return_data);
- } catch (\Exception $e) {
- DB::rollback();
- $return_data = array('status'=>0, 'msg'=>$e->getMessage());
- return response()->json($return_data);
- }
- } else {
- $user = auth('web-company')->user();
- $jobfair_id = $request->input('jobfairout_id', '');
- $exid = $request->input('exid', '');
- $feedback = $this->jobfairoutFeedbackRepository->getOne(['exid'=>$exid]);
- $html = view('app.jobfairout.ajax.feedback', ['companyname'=>$user->companyname,'jobfair_id'=>$jobfair_id,'exid'=>$exid,'feedback'=>$feedback])->render();
- $return_data = array( 'status'=>1, 'data' => $html);
- return response()->json($return_data);
- }
- }
- public function companyShow(Request $request)
- {
- //获取企业信息
- $jobfair_id = $request->input('jobfair_id');
- $company_id = $request->input('company_id');
- $is_job = $request->input('is_job','');
- $company_info = $this->companyService->getCompanyInfo(['id'=>$company_id]);
- $this->putSeoData('company', $company_info);
- //在招职位
- $put_jobs_where = array(
- array('company_id','=',$company_id),
- array('jobfair_id','=',$jobfair_id),
- );
- $jobs_where = array(
- array('audit','=',1),
- array('display','=',1)
- );
- $jobs = $this->jobfairoutPutJobRepository->getWhere($jobs_where,$put_jobs_where);
- $jobfair = $this->jobfairoutRepository->findOne(['id'=>$jobfair_id]);
- //看过该公司的人还看过(获取相同行业的企业)
- $company_where = array(
- 'trade' => $company_info->trade,
- 'except_id' =>$company_info->id
- );
- $other_companys = $this->companyService->getOtherCompanies($company_where, 5);
- $user = getUser();
- if ($user && $user->utype==2) {
- //获取当前时间段内申请过的职位
- $space_time = (integer)config('aix.personal_set.per_set.per_set.apply_job_space');
- if ($space_time>0) {
- $stime = date('Y-m-d H:i:s', strtotime(date("Y-m-d", strtotime("-".$space_time." day"))));
- $apply_where = array(array('personal_uid','=',auth('web-member')->user()->id),array('created_at','>=',$stime));
- } else {
- $apply_where = array(array('personal_uid','=',auth('web-member')->user()->id));
- }
- $applys = $this->jobfairoutPersonalJopApplyService->getApplyJobs($apply_where);
- } else {
- $applys = array();
- }
- $return_data = array(
- 'info'=>$company_info,
- 'jobs'=>$jobs,
- 'jobfair' => $jobfair,
- 'applys' => $applys,
- 'other_companys'=>$other_companys,
- 'company_img' => $company_info->img,
- );
- if($is_job){
- return view('app.jobfairout.company.company_jobs', $return_data);
- }else{
- return view('app.jobfairout.company.company_show', $return_data);
- }
- }
- }
|