ResumeEducationRepository = $ResumeEducationRepository; $this->CategoryRepository = $CategoryRepository; $this->ResumeRepository = $ResumeRepository; $this->taskService = $taskService; $this->memberLogRepository=$memberLogRepository; } public function getResumeEducationByResumeId($resumeId,$user) { $res = Resume::where(['uid'=>$user->id])->get()->toArray(); $array_ids = array_column($res,'id'); if(!in_array($resumeId,$array_ids)){ throw new ResponseException('简历不存在'); } return $this->ResumeEducationRepository->getResumeEducationByResumeId($resumeId); } public function resumeEducationAdd($date, $user) { $arr = []; $arr['resume_id'] = array_get($date,'resume_id'); $res = Resume::where(['uid'=>$user->id])->get()->toArray(); $array_id = array_column($res,'id'); if(array_key_exists('id',$date) && $date['id']){ $exist = ResumeEducation::where(['uid'=>$user->id,'id'=>$date['id']])->get()->toArray(); if(!$exist){ throw new ResponseException('只能修改自己的简历'); } } if(!in_array($arr['resume_id'],$array_id)){ throw new ResponseException('简历不存在'); } if (!$date['todate']) { $arr['endyear'] = $date['endyear']; $arr['endmonth'] = $date['endmonth']; $arr['todate'] = 0; } else { $arr['endyear'] = 0; $arr['endmonth'] = 0; $arr['todate'] = 1; } $currentArr = $this->CategoryRepository->getCategory($date['education']); $arr['education_cn'] = $currentArr['demand']; $arr['uid'] = $user->id; $arr['school'] = $date['school']; $arr['speciality'] = $date['speciality']; $arr['education'] = $date['education']; $arr['startyear'] = $date['startyear']; $arr['startmonth'] = $date['startmonth']; $result = $this->ResumeEducationRepository->getResumeEducationByResumeId($arr['resume_id']); DB::beginTransaction(); try { if (empty($result)) { $resumeArr = $this->ResumeRepository->getResumeById($arr['resume_id']); if($resumeArr->complete_percent+15<=100){ if ($resumeArr->complete_percent+15>=70 && $resumeArr->complete_percent+15<90) { $this->taskService->doTask(12); $this->ResumeRepository->updateById(['complete_percent'=>$resumeArr->complete_percent+15,'level'=>2], $arr['resume_id']); } elseif ($resumeArr->complete_percent+15>=90 && $resumeArr->complete_percent+15<=100) { $this->taskService->doTask(11); $this->ResumeRepository->updateById(['complete_percent'=>$resumeArr->complete_percent+15,'level'=>1], $arr['resume_id']); } else { $this->ResumeRepository->updateById(['complete_percent'=>$resumeArr->complete_percent+15,'level'=>0], $arr['resume_id']); } } } if ($date['id']) { $resd = $this->ResumeEducationRepository->updateResume($arr, $date['id']); if ($resd) { $this->ResumeRepository->updateById(['audit'=>1], $date['resume_id']); $resd = $this->ResumeEducationRepository->getResumeEducationByResumeId($date['resume_id']); } } else { $resd = $this->ResumeEducationRepository->resumeEducationAdd($arr); if ($resd) { $das['audit'] =1; $expires = config('aix.personal_set.per_set.per_set.resume_expires'); if($expires){ $das['expires'] = strtotime("+{$expires} days"); } $this->ResumeRepository->updateById($das, $date['resume_id']); event_search_update(Resume::class, (string)$date['resume_id'], 'update'); $resd = $this->ResumeEducationRepository->getResumeEducationByResumeId($date['resume_id']); } } DB::commit(); if(!$this->memberLogRepository->createLog(auth('web-member')->user(),2018,$arr['resume_id'])){ throw new \Exception("日志记失败!"); } return ['code'=>1,'info'=>$resd]; } catch (\Exception $e) { DB::rollback(); return ['code'=>0,'info'=>$e->getMessage()]; } } public function resumeUpdate($id,$user) { if(!$this->memberLogRepository->createLog(auth('web-member')->user(),2019,$id)){ throw new \Exception("日志记失败!"); } $res = ResumeEducation::where(['uid'=>$user->id])->get()->toArray(); $array_id = array_column($res,'id'); if(!in_array($id,$array_id)){ throw new ResponseException('教育信息不存在'); } return $this->ResumeEducationRepository->getResumeById($id); } public function resumeEduDelete($id,$user) { $resume_id = request()->resume_id; $res_k = ResumeEducation::find($id); if(!$res_k){ throw new ResponseException('教育信息不存在'); } if($res_k->uid != $user->id){ throw new ResponseException('简历不存在'); } if($res_k->resume_id != $resume_id){ throw new ResponseException('简历不存在'); } $count = $this->ResumeEducationRepository->getResumeEduCount(request()->resume_id); DB::beginTransaction(); try { $res = $this->ResumeEducationRepository->resumeEduDelete($id); if ($count==1) { $resumeArr = $this->ResumeRepository->getResumeById(request()->resume_id); if ($resumeArr->complete_percent-15>0) { if ($resumeArr->complete_percent-15>=70 && $resumeArr->complete_percent-15<90) { $this->ResumeRepository->updateById(['complete_percent'=>$resumeArr->complete_percent-15,'level'=>2], request()->resume_id); } elseif ($resumeArr->complete_percent-15>=90 && $resumeArr->complete_percent-15<=100) { $this->ResumeRepository->updateById(['complete_percent'=>$resumeArr->complete_percent-15,'level'=>1], request()->resume_id); } else { $this->ResumeRepository->updateById(['complete_percent'=>$resumeArr->complete_percent-15,'level'=>0], request()->resume_id); } event_search_update(Resume::class, (string)request()->resume_id, 'update'); } } if(!$this->memberLogRepository->createLog(auth('web-member')->user(),2013,$id)){ throw new \Exception("日志记失败!"); } DB::commit(); return ['code'=>1,'info'=>$res]; } catch (\Exception $e) { DB::rollback(); return ['code'=>0,'info'=>$e->getMessage()]; } } public function educationEdit($id) { if ($id) { return $this->ResumeEducationRepository->find($id); } return false; } }