ResumeLanguageRepository = $ResumeLanguageRepository; $this->CategoryRepository = $CategoryRepository; $this->ResumeRepository = $ResumeRepository; $this->TaskService = $TaskService; $this->memberLogRepository=$memberLogRepository; } public function getResumeLanByResumeId($resumeId) { return $this->ResumeLanguageRepository->getResumeLanByResumeId($resumeId); } public function resumeLanAdd($resume_id) { $res = $this->ResumeLanguageRepository->getResumeLanByResumeId($resume_id); if (empty($res)) { return [ ['test'], ]; } else { return $res; } } public function getLanguageL($resume_id,$user) { $res = Resume::where(['uid'=>$user->id])->get()->toArray(); $array_id = array_column($res,'id'); if(!in_array($resume_id,$array_id)){ throw new ResponseException('简历不存在'); } return $this->ResumeLanguageRepository->getResumeLanByResumeId($resume_id); } public function saveLanguage($data, $user) { $res = []; $languageArr = $data['language']; $levelArr = $data['level']; $languages=Category::where('alias', 'AIX_language')->pluck('demand', 'id'); $lavels=Category::where('alias', 'AIX_language_level')->pluck('demand', 'id'); $data_array=[]; foreach ($languageArr as $key => $lan_id) { $res['resume_id'] = $data['resume_id']; $res['uid'] = $user->id; $res['language'] = $lan_id; $res['language_cn'] = $languages[$lan_id]; $res['level'] = $levelArr[$key]; $res['level_cn'] = $lavels[$levelArr[$key]]; $data_array[]=$res; } $result = $this->ResumeLanguageRepository->getResumeLanByResumeId($data['resume_id']); DB::beginTransaction(); try { if (empty($result)) { $resumeArr = $this->ResumeRepository->getResumeById($data['resume_id']); if ($resumeArr->complete_percent+5<=100) { if ($resumeArr->complete_percent+5>=70 && $resumeArr->complete_percent+5<90) { $this->TaskService->doTask(12); $this->ResumeRepository->updateById(['complete_percent'=>$resumeArr->complete_percent+5,'level'=>2], $data['resume_id']); } elseif ($resumeArr->complete_percent+5>=90 && $resumeArr->complete_percent+5<=100) { $this->TaskService->doTask(11); $this->ResumeRepository->updateById(['complete_percent'=>$resumeArr->complete_percent+5,'level'=>1], $data['resume_id']); } else { $this->ResumeRepository->updateById(['complete_percent'=>$resumeArr->complete_percent+5,'level'=>0], $data['resume_id']); } } $ko = $this->ResumeLanguageRepository->resumeLanAdd($data_array); } else { $this->ResumeLanguageRepository->delByResumeId($data['resume_id']); $ko = $this->ResumeLanguageRepository->resumeLanAdd($data_array); } if ($ko) { $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, $data['resume_id']); event_search_update(Resume::class, (string)$data['resume_id'], 'update'); $res = $this->ResumeLanguageRepository->getResumeLanByResumeId($data['resume_id']); if(!$this->memberLogRepository->createLog(auth('web-member')->user(),2024,$data['resume_id'])){ throw new \Exception("日志记失败!"); } } DB::commit(); return ['code'=>1,'info'=>$res]; } catch (\Exception $e) { DB::rollback(); return ['code'=>0,'info'=>$e->getMessage()]; } } public function mobileSaveLanguage($data, $user) { $arr = []; $arr['resume_id'] = array_get($data,'resume_id'); $res = Resume::where(['uid'=>$user->id])->get()->toArray(); $array_id = array_column($res,'id'); if(!in_array($arr['resume_id'],$array_id)){ throw new ResponseException('简历不存在!'); } $arr['uid'] =$user->id; $ResumeLanguage = ResumeLanguage::where(['resume_id'=>$data['resume_id'],'language'=>$data['language']])->first(); if ($ResumeLanguage) { throw new ResponseException('不能重复选择相同的语言!', '', 400); } $arr['language'] = $data['language']; $arr['level'] = $data['level']; $default = [$data['language'],$data['level']]; $Category = Category::whereIn('id',$default)->get(); $arr['language_cn'] = $Category[0]->demand; $arr['level_cn'] = $Category[1]->demand; $result = $this->ResumeLanguageRepository->getResumeLanByResumeId($data['resume_id']); DB::beginTransaction(); try { if (empty($result)) { $resumeArr = $this->ResumeRepository->getResumeById($data['resume_id']); if ($resumeArr->complete_percent+5<=100) { if ($resumeArr->complete_percent+5>=70 && $resumeArr->complete_percent+5<90) { $this->TaskService->doTask(12); $this->ResumeRepository->updateById(['complete_percent'=>$resumeArr->complete_percent+5,'level'=>2], $data['resume_id']); } elseif ($resumeArr->complete_percent+5>=90 && $resumeArr->complete_percent+5<=100) { $this->TaskService->doTask(11); $this->ResumeRepository->updateById(['complete_percent'=>$resumeArr->complete_percent+5,'level'=>1], $data['resume_id']); } else { $this->ResumeRepository->updateById(['complete_percent'=>$resumeArr->complete_percent+5,'level'=>0], $data['resume_id']); } } } if ($data['id']) { $resd = $this->ResumeLanguageRepository->updateResume($arr, $data['id']); } else { $resd = $this->ResumeLanguageRepository->resumeCreate($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, $data['resume_id']); event_search_update(Resume::class, (string)$data['resume_id'], 'update'); $resd = $this->ResumeLanguageRepository->getResumeLanByResumeId($data['resume_id']); } DB::commit(); return ['code'=>1,'info'=>$resd]; } catch (\Exception $e) { DB::rollback(); return ['code'=>0,'info'=>$e->getMessage()]; } } public function delLanguage($data) { if (empty($data['id'])) { throw new ResponseException('请选择需要删除的语种', '', 400); } $count = $this->ResumeLanguageRepository->getResumeLanCount($data['resume_id']); DB::beginTransaction(); try { $res = $this->ResumeLanguageRepository->resumeLanDelete($data['id']); if ($count==1) { $resumeArr = $this->ResumeRepository->getResumeById(request()->resume_id); if ($resumeArr->complete_percent-5>0) { if ($resumeArr->complete_percent-5>=70 && $resumeArr->complete_percent-5<90) { $this->ResumeRepository->updateById(['complete_percent'=>$resumeArr->complete_percent-5,'level'=>2], request()->resume_id); } elseif ($resumeArr->complete_percent-5>=90 && $resumeArr->complete_percent-15<=100) { $this->ResumeRepository->updateById(['complete_percent'=>$resumeArr->complete_percent-5,'level'=>1], request()->resume_id); } else { $this->ResumeRepository->updateById(['complete_percent'=>$resumeArr->complete_percent-5,'level'=>0], request()->resume_id); } event_search_update(Resume::class, (string)request()->resume_id, 'update'); } } DB::commit(); if(!$this->memberLogRepository->createLog(auth('web-member')->user(),2016,$data['id'])){ throw new \Exception("日志记失败!"); } return ['code'=>1,'info'=>$res]; } catch (\Exception $e) { DB::rollback(); return ['code'=>0,'info'=>$e->getMessage()]; } } public function language($id) { if ($id) { return $this->ResumeLanguageRepository->find($id); } return false; } public function isOwn($id,$user,$resume_id = '') { $language = $this->ResumeLanguageRepository->getResumeLan(['id'=>$id]); if(!$language) { throw new ResponseException('该语言能力不存在!'); } if($language->uid != $user->id) { throw new ResponseException('对不起,您只能操作自己的简历!'); } //删除时候判断是否为一致 if($resume_id && $language->resume_id != $resume_id) { throw new ResponseException('参数错误!'); } } }