123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- <?php
- namespace App\Services\Person;
- use App\Exceptions\ResponseException;
- use App\Models\Resume;
- use App\Repositories\MemberLogRepository;
- use App\Repositories\ResumeRepository;
- use App\Repositories\ResumeTrainRepository;
- use App\Services\Common\TaskService;
- use Illuminate\Support\Facades\DB;
- class ResumeTrainService
- {
- /**
- * @var ResumeTrainRepository
- */
- protected $ResumeTrainRepository;
- protected $ResumeRepository;
- protected $TaskService;
- protected $memberLogRepository;
- /**
- * ResumeTrainService constructor.
- * @param ResumeTrainRepository $ResumeTrainRepository
- * @param ResumeRepository $ResumeRepository
- * @param TaskService $TaskService
- */
- public function __construct
- (ResumeTrainRepository $ResumeTrainRepository,
- ResumeRepository $ResumeRepository,
- TaskService $TaskService,
- MemberLogRepository $memberLogRepository
- )
- {
- $this->ResumeTrainRepository = $ResumeTrainRepository;
- $this->ResumeRepository = $ResumeRepository;
- $this->TaskService = $TaskService;
- $this->memberLogRepository=$memberLogRepository;
- }
- public function getResumeTrainByResumeId($resumeId,$user)
- {
- $res = Resume::where(['uid'=>$user->id])->get()->toArray();
- $array_id = array_column($res,'id');
- if(!in_array($resumeId,$array_id)){
- throw new ResponseException('简历不存在');
- }
- return $this->ResumeTrainRepository->getResumeTrainByResumeId($resumeId);
- }
- public function resumeTrainAdd($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 = ResumeWork::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;
- }
- $arr['uid'] = $user->id;
- $arr['startyear'] = $date['startyear'];
- $arr['startmonth'] = $date['startmonth'];
- $arr['course'] = $date['course'];
- $arr['agency'] = $date['agency'];
- $arr['description'] = $date['description'];
- $result = $this->ResumeTrainRepository->getResumeTrainByResumeId($arr['resume_id']);
- DB::beginTransaction();
- try {
- if (empty($result)) {
- $resumeArr = $this->ResumeRepository->getResumeById($arr['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], $arr['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], $arr['resume_id']);
- } else {
- $this->ResumeRepository->updateById(['complete_percent'=>$resumeArr->complete_percent+5,'level'=>0], $arr['resume_id']);
- }
- }
- }
- if ($date['id']) {
- $resd = $this->ResumeTrainRepository->updateResume($arr, $date['id']);
- if ($resd) {
- $this->ResumeRepository->updateById(['audit'=>1], $date['resume_id']);
- $resd = $this->ResumeTrainRepository->getResumeTrainByResumeId($date['resume_id']);
- }
- //修改
- if(!$this->memberLogRepository->createLog(auth('web-member')->user(),2023,$arr['resume_id'])){
- throw new \Exception("日志记失败!");
- }
- } else {
- $resd = $this->ResumeTrainRepository->resumeTrainAdd($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->ResumeTrainRepository->getResumeTrainByResumeId($date['resume_id']);
- }
- //添加
- if(!$this->memberLogRepository->createLog(auth('web-member')->user(),2022,$arr['resume_id'])){
- throw new \Exception("日志记失败!");
- }
- }
- DB::commit();
- return ['code'=>1,'info'=>$resd];
- } catch (\Exception $e) {
- DB::rollback();
- return ['code'=>0,'info'=>$e->getMessage()];
- }
- }
- public function resumeUpdate($id)
- {
- return $this->ResumeTrainRepository->getResumeById($id);
- }
- public function resumeTrainDelete($id)
- {
- $count = $this->ResumeTrainRepository->getResumeTrainCount(request()->resume_id);
- DB::beginTransaction();
- try {
- $res = $this->ResumeTrainRepository->resumeTrainDelete($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-5<=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(),2015,$id)){
- throw new \Exception("日志记失败!");
- }
- return ['code'=>1,'info'=>$res];
- } catch (\Exception $e) {
- DB::rollback();
- return ['code'=>0,'info'=>$e->getMessage()];
- }
- }
- public function trainEdit($id)
- {
- if ($id) {
- return $this->ResumeTrainRepository->find($id);
- }
- return false;
- }
- public function isOwn($id,$user,$resume_id = '')
- {
- $train = $this->ResumeTrainRepository->getResumeTrain(['id'=>$id]);
- if(!$train)
- {
- throw new ResponseException('该培训经历不存在!');
- }
- if($train->uid != $user->id) {
- throw new ResponseException('对不起,您只能操作自己的简历!');
- }
- //删除时候判断是否为一致
- if($resume_id && $train->resume_id != $resume_id) {
- throw new ResponseException('参数错误!');
- }
- }
- }
|