| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254 | 
							- <?php
 
- namespace App\Services\Person;
 
- use App\Exceptions\ResponseException;
 
- use App\Models\Category;
 
- use App\Models\Resume;
 
- use App\Models\ResumeLanguage;
 
- use App\Repositories\CategoryRepository;
 
- use App\Repositories\MemberLogRepository;
 
- use App\Repositories\ResumeLanguageRepository;
 
- use App\Repositories\ResumeRepository;
 
- use App\Services\Common\TaskService;
 
- use Illuminate\Support\Facades\DB;
 
- class ResumeLanguageService
 
- {
 
-     /**
 
-      * @var ResumeLanguageRepository
 
-      */
 
-     protected $ResumeLanguageRepository;
 
-     protected $CategoryRepository;
 
-     protected $ResumeRepository;
 
-     protected $TaskService;
 
-     protected $memberLogRepository;
 
-     /**
 
-      * ResumeLanguageService constructor.
 
-      * @param ResumeLanguageRepository $ResumeLanguageRepository
 
-      * @param CategoryRepository $CategoryRepository
 
-      * @param ResumeRepository $ResumeRepository
 
-      * @param TaskService $TaskService
 
-      */
 
-     public function __construct
 
-     (ResumeLanguageRepository $ResumeLanguageRepository,
 
-      CategoryRepository $CategoryRepository,
 
-      ResumeRepository $ResumeRepository,
 
-      TaskService $TaskService,
 
-      MemberLogRepository $memberLogRepository
 
-     )
 
-     {
 
-         $this->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('参数错误!');
 
-         }
 
-     }
 
- }
 
 
  |