123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- <?php
- /**
- * Created by PhpStorm.
- * User: wuzhenke
- * Date: 2019/1/27
- * Time: 10:42
- */
- namespace App\Services\Jobfair;
- use App\Exceptions\ResponseException;
- use App\Models\Jobfair\JobfairPersonalJobsApply;
- use App\Repositories\Jobfair\JobfairPersonalJobsApplyRepository;
- use App\Repositories\ResumeRepository;
- use App\Services\Company\CompanyDownResumeService;
- class JobfairPersonalJopApplyService
- {
- protected $jobfairPersonalJobsApplyRepository;
- protected $resumeRepository;
- protected $companyDownResumeService;
- /**
- * JobfairPersonalJopApplyService constructor.
- * @param $resumeRepository
- * @param $companyDownResumeService
- */
- public function __construct(JobfairPersonalJobsApplyRepository $jobfairPersonalJobsApplyRepository, ResumeRepository $resumeRepository,CompanyDownResumeService $companyDownResumeService)
- {
- $this->jobfairPersonalJobsApplyRepository = $jobfairPersonalJobsApplyRepository;
- $this->resumeRepository = $resumeRepository;
- $this->companyDownResumeService = $companyDownResumeService;
- }
- public function downResumeDel($request,$user)
- {
- $id = $request->y_id;
- if (!$id) {
- return response()->json(['status'=>0, 'msg'=>'请选择操作的项目!']);
- }
- if (!is_array($id)) {
- $ids = explode(',', $id);
- } else {
- $ids = $id;
- }
- $this->isComOwn($ids,$user);
- if ($this->jobfairPersonalJobsApplyRepository->downResumeDel($ids)) {
- return response()->json(['status'=>1,'msg'=>'简历删除成功!']);
- }
- return response()->json(['status'=>0,'msg'=>'简历删除失败!']);
- }
- public function personJobfair()
- {
- $data[] = ['personal_uid','=',auth('web-member')->user()->id];
- if (request()->resume_id) {
- $data[] = ['resume_id','=',request()->resume_id];
- }
- $interview = $this->jobfairPersonalJobsApplyRepository->personJobfair($data);
- return ['interview'=>$interview];
- }
- public function personDelect($id,$user)
- {
- if (empty($id)) {
- throw new ResponseException('请选择预约职位!');
- }
- $res = JobfairPersonalJobsApply::where(['personal_uid'=>$user->id])->get()->toArray();
- $array_id = array_column($res,'id');
- $arr_id = string_to_array(',', $id);
- foreach ($arr_id as $key=>$val){
- if(!in_array($val,$array_id)){
- throw new ResponseException('预约职位不存在!');
- }
- }
- return $this->jobfairPersonalJobsApplyRepository->downResumeDel(string_to_array(',', $id));
- }
- public function ifJobApply($user)
- {
- //判断是否有可以投递的简历
- $resume_audit = config('aix.personal_set.per_set.show_set.resume_display');
- $resume_where = array(array('uid', '=', $user->id));
- if (config('aix.personal_set.per_set.show_set.resume_display') == '1') {
- $resume_where[] = array('audit', '=', '2');
- } else {
- $resume_where[] = array('audit', '<>', '0');
- }
- $resumes = $this->resumeRepository->getResumes($resume_where);
- if (count($resumes) == 0) {
- //判断是否有简历
- $user_resumes = $this->resumeRepository->getResumes(array('uid' => $user->id));
- if ($user_resumes->toArray()) {
- throw new ResponseException("您没有审核通过的简历!");
- } else {
- throw new ResponseException("请您先填写一份简历!");
- }
- } else if (count($resumes) == 1) {
- //直接进入投递环节
- return ['status'=>3, 'resumes'=>$resumes];
- } else {
- //获取默认简历信息
- $def_resume = array();
- foreach ($resumes as $k => $v) {
- if ($v->def == '1') {
- $def_resume = $v;
- }
- }
- if (!$def_resume) {
- $def_resume = $resumes[0];
- }
- //提示用户选择需要投递的简历
- return array('status' => 2, 'resumes' => $resumes, 'def_resume' => $def_resume);
- }
- }
- public function applyJob($data)
- {
- return $this->jobfairPersonalJobsApplyRepository->create($data);
- }
- //发送面试邀请
- public function interview($request,$user){
- $type = $request->input('type');
- if($type == 2){
- //直接修改状态
- if(empty($request->input('apply_id'))){
- return response()->json(array('status'=>0,'msg'=>'邀请失败'));
- }
- $ret = $this->jobfairPersonalJobsApplyRepository->interviewEdit($request->input('apply_id'));
- $msg2 = '邀请成功';
- $msg3 = '邀请失败,请稍后重试';
- }else{
- if($type == 3 || $type == 5){
- $data['jobs_id'] = $request->input('job_id');
- $data['personal_uid'] = $request->input('personal_uid');
- $data['company_id'] = $user->id;
- $data['position_id'] = session('floorplan_stands.id');
- $data['jobfair_id'] = session('floorplan_stands.jobfair_id');
- }
- $res = $this->jobfairPersonalJobsApplyRepository->applyFind($data);
- if ($type == 3){
- $data['is_apply'] = 2;
- $msg = '您已对该简历进行过面试邀请,不能重复邀请';
- $msg2 = '邀请成功';
- $msg3 = '邀请失败,请稍后重试';
- }elseif ($type == 5){
- $data['is_apply'] = 1;
- $msg = '恭喜您已被面试邀请';
- $msg1 = '您已投递该职位,不能重复投递';
- $msg2 = '投递成功';
- $msg3 = '投递失败,请稍后重试';
- }
- if(!$res){
- $data['resume_id'] = $request->input('resume_id');
- $ret = $this->jobfairPersonalJobsApplyRepository->interviewAdd($data);
- //判断企业套餐是否允许查看
- $this->companyDownResumeService->addDownResumes($user->id,$data['resume_id']);
- }else{
- if($res->is_apply == 2 || ($res->is_apply == 1 && $res->is_interview == 1)){
- return response()->json(array('status'=>0,'msg'=>$msg));
- }elseif($res->is_apply == 1 && $res->is_interview == 2){
- if($type == 5){
- return response()->json(array('status'=>0,'msg'=>$msg1));
- }else{
- $ret = $this->jobfairPersonalJobsApplyRepository->interviewEdit($res->id);
- }
- }
- }
- }
- if ($ret) {
- return response()->json(array('status'=>1,'msg'=>$msg2));
- } else {
- return response()->json(array('status'=>0,'msg'=>$msg3));
- }
- }
- public function getApplyJobs($where, $field = 'jobs_id')
- {
- $rst = $this->jobfairPersonalJobsApplyRepository->getJobsApply($where);
- $list = array();
- if ($rst->toArray()) {
- foreach ($rst as $key => $val) {
- $list[$val->$field] = $val;
- }
- }
- return $list;
- }
- //判断是否有过面试
- public function isApply($where)
- {
- return $this->jobfairPersonalJobsApplyRepository->applyFind($where);
- }
- //个人判断
- public function isOwn($id,$user)
- {
- $apply = $this->jobfairPersonalJobsApplyRepository->applyFind(['id'=>$id]);
- if(!$apply)
- {
- throw new ResponseException('参数错误!');
- }
- if($apply->personal_uid != $user->id)
- {
- throw new ResponseException('抱歉,您只能操作自己的招聘会!');
- }
- }
- //企业判断
- public function isComOwn($idsArr,$user)
- {
- $idsArr = is_array($idsArr)?$idsArr:explode(',',$idsArr);
- $allIdsArr = $this->jobfairPersonalJobsApplyRepository->getPluck(['company_id'=>$user->id],'id')->toArray();
- if(array_diff($idsArr,$allIdsArr))
- {
- throw new ResponseException('抱歉,您只能操作自己的招聘会数据!');
- }
- }
- }
|