jobfairoutRepository = $jobfairoutRepository; $this->jobfairoutCompanyRepository = $jobfairoutCompanyRepository; $this->jobfairoutPutJobRepository = $jobfairoutPutJobRepository; $this->memberSetmealRepository = $memberSetmealRepository; $this->memberPointRepository = $memberPointRepository; $this->jobfairoutSchoolRepository = $jobfairoutSchoolRepository; $this->jobfairService = $jobfairService; } /**近期招聘会 * @return array */ public function jobfairIndex($user) { $jobfairList = $this->jobfairoutRepository->getJobfairList($user->id); foreach ($jobfairList as $key => $val) { $val->predetermined_ok = 0; if ($val->predetermined_status == 1 && $val->predetermined_start && $val->predetermined_start < time() && $val->predetermined_end && $val->predetermined_end > time()) { $val->predetermined_ok = 1; } } $week = ['日','一','二','三','四','五','六']; return [ 'jobfairList'=>$jobfairList, 'week'=>$week, ]; } /**招聘会详情 * @param $id * @return array */ public function jobfairShow($id,$user) { $map1 =['id'=>$id]; $jobfair = $this->jobfairoutRepository->findOne($map1); if (!$jobfair) { return ['status'=>0, 'msg'=>'查无此招聘会']; } if ($jobfair->predetermined_status == 1 && $jobfair->predetermined_start && $jobfair->predetermined_start < time() && $jobfair->predetermined_end && $jobfair->predetermined_end > time()) { $jobfair->predetermined_ok =1; } else { $jobfair->predetermined_ok =0; } $jobfair->phone_html = ''; if($jobfair->phone){ foreach (explode(',',$jobfair->phone) as $value){ $jobfair->phone_html .= ''.$value .'

'; } } //空余展位数 $map = [ 'jobfair_id'=>$id, ['audit','<>',3] ]; $companyCount = $this->jobfairoutCompanyRepository->getComCount($map); $jobfair->countSurplus = $jobfair->number - $companyCount; //判断是否预定过 if($user){ $jobfair->is_appointment = $this->jobfairoutCompanyRepository->jobfairAppointment(['jobfair_id'=>$id,['audit','<>',3],'company_id'=>$user->id]); }else{ $jobfair->is_appointment = false; } //学校列表 $schools = []; if($jobfair->school_id){ $schools = $this->jobfairoutSchoolRepository->getSchool(explode(',',$jobfair->school_id)); } return [ 'status'=>1, 'jobfair'=>$jobfair, 'schools'=>$schools, ]; } /**招聘会企业 * @param $request * @param $id * @return array */ public function jobfairShowCom($request, $id,$user) { $jobfair = $this->jobfairoutRepository->findJobfair(['id'=>$id]); if (!$jobfair) { return ['status'=>0, 'msg'=>'查无此招聘会']; } $map = [ 'jobfair_id'=>$id, ['audit','<>',3] ]; $companyCount = $this->jobfairoutCompanyRepository->getComCount($map); $jobfair->countSurplus = $jobfair->number - $companyCount; if ($jobfair->predetermined_status == 1 && $jobfair->predetermined_start && $jobfair->predetermined_start < time() && $jobfair->predetermined_end && $jobfair->predetermined_end > time()) { $jobfair->predetermined_ok =1; } else { $jobfair->predetermined_ok =0; } //判断是否预定过 if($user){ $jobfair->is_appointment = $this->jobfairoutCompanyRepository->jobfairAppointment(['jobfair_id'=>$id,['audit','<>',3],'company_id'=>$user->id]); }else{ $jobfair->is_appointment = false; } $where = ['jobfair_id'=>$id,'audit'=>1]; $offset = isset($request->page)?$request->page:0; $limit = 20; $jobfairCompany = $this->jobfairoutCompanyRepository->findCompany($where, $offset, $limit); foreach ($jobfairCompany as $key => $val) { $where = [ 'jobfair_id'=>$id, 'company_id'=>$val->company_id, ]; $val->jobfairPutJob = $this->jobfairoutPutJobRepository->getJobfairJob($where); } if ($request->ajax()) { return $jobfairCompany; } $more = count($jobfairCompany) >= $limit ? true : false; $jobsSum = $this->jobfairoutPutJobRepository->getNeedPerson($id); $needPersonCount = isset($jobsSum['sum']) ? $jobsSum['sum'] : 0; //学校列表 $schools = []; if($jobfair->school_id){ $schools = $this->jobfairoutSchoolRepository->getSchool(explode(',',$jobfair->school_id)); } return [ 'status'=>1, 'jobfair'=>$jobfair, 'jobfairCompany'=>$jobfairCompany, 'companyCount'=>$companyCount, 'more'=>$more, 'schools'=>$schools, 'needPersonCount'=>$needPersonCount, ]; } public function jobfairAppointmentSave($jobfairInfo, $user) { //允许预订 举办开始日期大于当前日期 预订结束时间大于当前时间 允许在线预订 if ($jobfairInfo->predetermined_status == 2) { return response()->json(['status'=>0, 'msg'=>"很抱歉,招聘会已停止预定"]); } if (time() > $jobfairInfo->holddate_end) { return response()->json(['status'=>0, 'msg'=>"很抱歉,招聘会已结束"]); } if ($jobfairInfo->is_commonweal == 1) { $num = $jobfairInfo->jobsfair_num; $mySetmeal = $this->memberSetmealRepository->getSetmealByUid($user->id, 1); if ($mySetmeal->jobfair_num < $num) { return response()->json(['status' => 0, 'msg' => "很抱歉,您的会员招聘会场次不足。请先升级套餐!"]); } } if ($jobfairInfo->is_commonweal == 2) { $num = $jobfairInfo->predetermined_point; $myPoints = $this->memberPointRepository->getComPointsById($user->id, 1); if ($myPoints->points < $num) { return response()->json(['status' => 0, 'msg' => "很抱歉,您的会员积分不足。请先积分充值!"]); } } $insertData['company_id'] = $user->id; $insertData['jobfair_id'] = $jobfairInfo->id; $insertData['pay_type'] = $jobfairInfo->is_commonweal; DB::beginTransaction(); try { if (!$this->jobfairoutCompanyRepository->create($insertData)) { throw new \Exception('招聘会预定失败!'); } if ($jobfairInfo->is_commonweal != 3) { $res = $this->jobfairService->payType($jobfairInfo->is_commonweal, $num, $user); if (!$res['status']) { throw new \Exception($res['msg']); } } DB::commit(); return response()->json(['status'=>1, 'msg'=>"注意:恭喜您,预定成功,请到定展记录里填写 单位信息、职位信息、参会人",'data'=>['companyname'=>$user->companyname]]); } catch (\Exception $e) { DB::rollback(); return response()->json(['status'=>0, 'msg'=>$e->getMessage()]); } } /**职位详情 * @param $jobfair_id * @param $job_id * @return array */ public function jobfairShowJob($id) { $jobInfo = $this->jobfairoutPutJobRepository->getOne(['id'=>$id]); if (!$jobInfo) { return ['status'=>0, 'msg'=>'查无此职位!']; } if ($jobInfo->jobfairs->holddate_end > time()) { $jobInfo->jobs->predetermined_ok = 1; } else { $jobInfo->jobs->predetermined_ok = 0; } if ($jobInfo->jobs->subclass) { $jobInfo->jobs->category_cn = get_job_category($jobInfo->jobs->subclass); } if ($jobInfo->jobs->tag_cn) { $jobInfo->jobs->tag_cn = explode(',',$jobInfo->jobs->tag_cn); } return [ 'status'=>1, 'jobInfo'=>$jobInfo, ]; } public function getJobfairOpen() { $jonfair_id = []; $jobfair = $this->jobfairoutRepository->getJobfairOpen(); foreach ($jobfair as $key => $val) { if ($val->predetermined_start) { if ($val->predetermined_start>time()||$val->predetermined_endid; } } else { if ($val->holddate_startid; } } } return $jonfair_id; } }