| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284 | <?phpnamespace App\Http\Controllers\Web\Person;use App\Exceptions\ResponseException;use App\Http\Controllers\Web\WebBaseController;use App\Models\Member;use App\Models\PersonalCategory;use App\Models\PersonalTalents;use App\Models\Pms;use App\Models\RecruitAppointInfo;use App\Models\Resume;use App\Models\ResumeAuthInfo;use App\Services\Common\CategoryService;use App\Services\Common\QueueAutoRefreshService;use App\Services\HomeService;use App\Services\Person\ResumeCredentService;use App\Services\Person\ResumeEducationService;use App\Services\Person\ResumeMaterialService;use App\Services\Person\ResumeEntrustService;use App\Services\Person\ResumeLanguageService;use App\Services\Person\ResumeImageService;use App\Services\Person\ResumeService;use App\Services\Person\ResumeTrainService;use App\Services\Person\ResumeWorkService;use App\Services\Company\JobsService;use App\Services\Common\SearchService;use App\Services\Person\SubsiteResumeService;use App\Services\SubsiteService;use App\Validators\PersonValidatorRequest;use Illuminate\Http\Request;use Illuminate\Support\Facades\Cache;use Illuminate\Support\Facades\Storage;use App\Validators\RecruitValidatorRequest;use App\Models\RecruitAppointBasic;use App\Models\Recruit;class ResumeController extends WebBaseController{    /**     * @var ResumeService     */    protected $resumeService;    protected $ResumeEducationService;    protected $ResumeWorkService;    protected $ResumeTrainService;    protected $ResumeCredentService;    protected $resumeMaterialService;    protected $ResumeLanguageService;    protected $homeService;    protected $categoryService;    protected $jobsService;    protected $searchService;    protected $subsiteService;    protected $subsiteResumeService;    protected $resumeEntrustService;    protected $resumeImageService;    protected $queueAutoRefreshService;    /**     * ResumeController constructor.     * @param ResumeService $resumeService     * @param ResumeEducationService $ResumeEducationService     * @param ResumeWorkService $ResumeWorkService     * @param ResumeTrainService $ResumeTrainService     * @param ResumeCredentService $ResumeCredentService     * @param ResumeLanguageService $ResumeLanguageService     * @param HomeService $homeService     * @param CategoryService $categoryService     * @param JobsService $jobsService     * @param SearchService $searchService     * @param subsiteService $subsiteService     * @param subsiteResumeService $subsiteResumeService     */    public function __construct(ResumeService $resumeService, ResumeEducationService $ResumeEducationService, ResumeWorkService $ResumeWorkService, ResumeTrainService $ResumeTrainService, ResumeCredentService $ResumeCredentService, ResumeLanguageService $ResumeLanguageService, HomeService $homeService, CategoryService $categoryService, JobsService $jobsService, SearchService $searchService, SubsiteService $subsiteService, SubsiteResumeService $subsiteResumeService, ResumeEntrustService $resumeEntrustService, QueueAutoRefreshService $queueAutoRefreshService,ResumeImageService $resumeImageService,ResumeMaterialService $resumeMaterialService)    {        $this->resumeService = $resumeService;        $this->ResumeEducationService = $ResumeEducationService;        $this->ResumeWorkService = $ResumeWorkService;        $this->ResumeTrainService = $ResumeTrainService;        $this->ResumeCredentService = $ResumeCredentService;        $this->ResumeLanguageService = $ResumeLanguageService;        $this->resumeMaterialService = $resumeMaterialService;        $this->homeService = $homeService;        $this->categoryService = $categoryService;        $this->jobsService = $jobsService;        $this->searchService = $searchService;        $this->recommend_limit = 12;        $this->recommend_need_limit = 100;        $this->subsiteService = $subsiteService;        $this->subsiteResumeService = $subsiteResumeService;        $this->resumeEntrustService = $resumeEntrustService;        $this->queueAutoRefreshService = $queueAutoRefreshService;        $this->resumeImageService = $resumeImageService;    }    /**     * @des 个人中心     */    public function index()    {        $res = $this->resumeService->loginValidate(auth('web-member')->user());        //读取人才认证表信息        $personaltalents = PersonalTalents::where('uid', $res['member']['uid'])->first();        $rate_num = 0;        if (!empty($personaltalents)) {            $result = $personaltalents->toArray();            //人才等级进度条            if ($result['rc_level_id'] == 802) {                //第一类人才                $rate_num = 120;            } elseif ($result['rc_level_id'] == 803) {                //第二类人才                $rate_num = 90;            } elseif ($result['rc_level_id'] == 804) {                //第三类人才                $rate_num = 60;            } elseif ($result['rc_level_id'] == 805) {                //第四类人才                $rate_num = 30;            } elseif ($result['rc_level_id'] == 806) {                //第五类人才                $rate_num = 1;            }            //判断是否处于预判状态和提交的依据数量            if ($result['rc_audit'] != 1 && $result['rc_num'] != 1 && $result['rc_level_id'] != 802) {                //如果处于预判状态或不通过且不是第一类人才和提交的依据数量不是一条                $rate_num += $result['rc_num'];            }        }        if (Cache::has('recommend_click_jobs_'.get_subsite_id())) {            Cache::forget('recommend_click_jobs_'.get_subsite_id());        }        //推荐职位        $recommend_jobs = $this->getRecommendJobs($this->recommend_limit);        $message = $this->resumeService->popPms(auth('web-member')->user());        return view('app.person.index')->with(            [                'talents'=>$personaltalents,                'rate_num'=>$rate_num,                'resume'=>$res['resume'],                'stick'=>$res['stick'],                'recommend_jobs'=>$recommend_jobs['jobs'],                'match_resume'  => $recommend_jobs['match_resume'],                'has_resume' => $recommend_jobs['has_resume'],                'message'=>$message,                'member'=>$res['member']            ]        );    }    //切换会员工作状态    public function changeneed(Request $request){        $uid= $request->uid;        $change = $request->change;        if ($change == 2) {            Member::where('id', $uid)->update(['member_status' => 2]);            session('visitor.member_status', 2);        } else {            Member::where('id', $uid)->update(['member_status' => 1]);            session('visitor.member_status', 1);        }        return redirect(route('person.index'));    }    //获取置顶、点击量高、刷新靠前的职位    public function getClickJobs($limit)    {        $jobs = Cache::get('recommend_click_jobs_'.get_subsite_id());        if ($jobs === null) {            $where[] = array('valid','=',1);            $where[] = array('display','=',1);            if (config('aix.companyset.comset.show_set.jobs_display')==1) {                $where[] = array('audit','=',1);            } else {                $where[] = array('audit','<>',3);            }            $where[] = array('subsite_ids','=',get_subsite_id());            $order = array('click'=>'desc','stime'=>'desc','refresh_time'=> 'desc');            $click_jobs = $this->searchService->search('Job', $where, $order, '', $limit);            $jobs = $click_jobs->items();            Cache::put('recommend_click_jobs_'.get_subsite_id(), $jobs, 600);        }        return $jobs;    }    //获取推荐职位    public function getRecommendJobs($limit = 10)    {        $user = $this->getUser();        $need_limit = $this->recommend_need_limit;        $list = array();        $click_jobs = $this->getClickJobs($need_limit);     //获取置顶、点击量高、刷新靠前的职位        $recommend_order = $this->jobsService->getRecommendOrder($user);     //排序条件        $resume = array();        $has_resume = 1;        if ($user && $user->utype == 2) {            $recommend_where = $this->jobsService->getRecommendWhere($user);            if ($recommend_where) {                //添加30天的时间限制                $recommend_where['and'][] = ['refresh_time','>=', strtotime(date("Y-m-d", strtotime("-30 day")))];                $has_resume = 1;                $recommend_job_lists = $this->searchService->getRecommends($user, 'Job', $recommend_where, $recommend_order, '', $limit);                $jids = array();                if ($recommend_job_lists) {                    $jids = $recommend_job_lists->pluck('id')->toArray();                }                if ($recommend_job_lists && $recommend_job_lists->total()>=$limit) {                    $list = array_slice($recommend_job_lists->items(), 0, $limit);                } else {                    if ($click_jobs && $jids) {                        foreach ($click_jobs as $k => $v) {                            if (in_array($v->id, $jids)) {                                unset($click_jobs[$k]);                            }                        }                    }                    $recommend_jobs = $recommend_job_lists?$recommend_job_lists->items():array();                    $recommend_total = $recommend_job_lists?$recommend_job_lists->total():0;                    $need_jobs = array_slice($click_jobs, 0, $limit - $recommend_total);                    $all_jobs = array_merge($recommend_jobs, $need_jobs);                    $list = array_slice($all_jobs, 0, $limit);                }            } else {                //没有可匹配的简历                $list = null;                $has_resume = 0;            }        } else {            $list = array_slice($click_jobs, 0, $limit);        }        if ($list) {            $list = $this->jobsService->dealjobFilelds($list);        }        return array(            'jobs'         => $list,            'match_resume' => $resume,            'has_resume'   => $has_resume        );    }    public function popPms()    {        $content = $this->resumeService->popPms(auth('web-member')->user());        if ($content) {            $html = view('app.person.ajax.pop_pms', ['content'=>$content])->render();            return $this->sendSuccessResponse(['html'=>$html,'code'=>1]);        } else {            return $this->sendSuccessResponse(['html'=>'','code'=>0]);        }    }    public function getUser()    {        $user = array();        if (auth('web-member')->check()) {            $user = auth('web-member')->user();        } elseif (auth('web-company')->check()) {            $user = auth('web-company')->user();        }        return $user;    }    public function ajaxGetInterestJobs()    {        $params = request()->all();        $limit = $this->recommend_limit;        $need_limit = $this->recommend_need_limit;        $list = array();        $page = array_has($params, 'p')?$params['p']:1;        $has_resume = 1;        //推荐职位        if ($params['type'] == 'recommend_jobs') {            $user = $this->getUser();            $recommend_order = $this->jobsService->getRecommendOrder($user);            $recommend_where = $this->jobsService->getRecommendWhere($user);            if ($recommend_where) {                $has_resume = 1;                //添加30天的时间限制                $recommend_where['and'][] = ['refresh_time','>=', strtotime(date("Y-m-d", strtotime("-30 day")))];                $recommend_job_lists = $this->searchService->getRecommends($user, 'Job', $recommend_where, $recommend_order, '', $need_limit);                $jids = $recommend_job_lists->pluck('id')->toArray();                $next_page = (int)$page + 1;                if (count($recommend_job_lists->items()) >= $next_page*$limit) {                    $list = array_slice($recommend_job_lists->items(), $page*$limit, $limit);                } else {                    $click_jobs = $this->getClickJobs($need_limit);                    if ($click_jobs && $jids) {                        foreach ($click_jobs as $k => $v) {                            if (in_array($v->id, $jids)) {                                unset($click_jobs[$k]);                            }                        }                    }                    $recommend_jobs = $recommend_job_lists->items();                    $recommend_total = count($recommend_job_lists->items());                    $need_jobs = array_slice($click_jobs, 0, $need_limit - $recommend_total);                    $all_jobs = array_merge($recommend_jobs, $need_jobs);                    $list = array_slice($all_jobs, $page*$limit, $limit);                    if (!$list) {                        $list = array_slice($all_jobs, 0, $limit);                        $next_page = 1;                    }                }            } else {                $list = [];                $has_resume = 0;                $next_page = 1;            }            $list = $this->jobsService->dealjobFilelds($list);            $html = view('app.person.ajax.jobs_list', ['content'=>$list, 'has_resume'=>$has_resume])->render();            return $this->sendSuccessResponse(['html'=>$html,'page'=>$next_page]);        } else {            $next_page = 1;            if ($params['type'] == 'new_jobs') {                $jobs = $this->getNewJobs($limit, $page);            } else {                $jobs = $this->getNearByJobs($params, $limit, $page);            }            if ($jobs->isNotEmpty()) {                $list = $this->jobsService->dealjobFilelds($jobs->items());                $next_page = (int)$page + 1;            } else {                if ($params['type'] == 'new_jobs') {                    $first_jobs = $this->getNewJobs($limit, $next_page);                } else {                    $first_jobs = $this->getNearByJobs($params, $limit, $next_page);                }                if ($first_jobs->isNotEmpty()) {                    $list = $this->jobsService->dealjobFilelds($first_jobs->items());                    $next_page = 2;                }            }            $html = view('app.person.ajax.jobs_list', ['content'=>$list, 'has_resume'=>$has_resume])->render();            return $this->sendSuccessResponse(['html'=>$html,'page'=>$next_page]);        }    }    public function getNearByJobs($params, $limit, $page)    {        $where[] = array('valid','=',1);        $where[] = array('display','=',1);        if (config('aix.companyset.comset.show_set.jobs_display')==1) {            $where[] = array('audit','=',1);        } else {            $where[] = array('audit','<>',3);        }        $where[] = array('subsite_ids','=',get_subsite_id());        //获取坐标        $lng = array_has($params, 'lng') ? $params['lng']: '';        $lat = array_has($params, 'lat') ? $params['lat']: '';        if ($lng && $lat) {            $where[] = array('lng', '=', $lng);            $where[] = array('lat', '=', $lat);            $where[] = array('range', '=',round(config('aix.system.map.map.map_range'), 2));        }        $order = array('click'=>'desc','stime'=>'desc','refresh_time'=> 'desc');        return $recommend_job_lists = $this->searchService->search('Job', $where, $order, '', $limit, $page);    }    public function getNewJobs($limit, $page)    {        $where[] = array('valid','=',1);        $where[] = array('display','=',1);        if (config('aix.companyset.comset.show_set.jobs_display')==1) {            $where[] = array('audit','=',1);        } else {            $where[] = array('audit','<>',3);        }        $where[] = array('subsite_ids','=',get_subsite_id());        $order = array('refresh_time'=>'desc');        return $recommend_job_lists = $this->searchService->search('Job', $where, $order, '', $limit, $page);    }    public function popPmsRead()    {        return $this->resumeService->popPmsRead(request()->id);    }    /**     * @des 签到     */    public function signIn()    {        $res = $this->resumeService->signIn(auth('web-member')->user());        if ($res['code']==1) {            return $this->sendSuccessResponse($res['info']);        } else {            return $this->sendErrorResponse($res['info']);        }    }    public function resume()    {        $content = $this->resumeService->myResume(auth('web-member')->user());        return view('app.person.resume', ['content'=>$content]);    }    public function resumeAjax()    {        $content = $this->resumeService->myResumeAjax(auth('web-member')->user());        return view('app.person.ajax.addResume', ['content'=>$content]);    }    public function resumeAdd()    {        $res = $this->resumeService->loginValidate(auth('web-member')->user());        $district = $this->categoryService->getDefaultDistrict();        $subsite = $this->subsiteService->getSubsite(auth('web-member')->user());        return view('app.person.resume_add',            [                'member'=>$res['member'],                'resume'=>$res['resume'],                'defaultCity'=>$district->defaultCity,                'disCity'=>$district->disCity,                'disHan'=>$district->disHan,                'resumeTitle'=>$res['resumeTitle'],                'subsite'=>$subsite,            ]        );    }    public function resumeCreate(PersonValidatorRequest $request)    {        $res = $this->resumeService->resumeCreate($request->except(['add_tag','_token']), auth('web-member')->user());        if ($res['code']==1) {            return $this->sendSuccessResponse(['id'=>$res['info'],'tag'=>$request->add_tag]);        } else {            return $this->sendErrorResponse('更新简历失败', '', 400);        }    }    public function resumeCheck()    {        return view('app.person.resume_check');    }    public function resumeUpdate()    {        $de_resume = Resume::find(request()->id);        $back_url = \Illuminate\Support\Facades\URL::previous();        if(!$de_resume){            return $this->showMessage('对不起,您只能查看自己的简历!', $back_url, true, '上一页', '3');        }        if($de_resume->uid!=auth('web-member')->user()->id){            return $this->showMessage('对不起,您只能查看自己的简历!', $back_url, true, '上一页', '3');        }        $res = $this->resumeService->getResumeById(request()->id, auth('web-member')->user());        $district = $this->categoryService->getDefaultDistrict();        $subsiteResume = $this->subsiteResumeService->getSubsiteResumeById(auth('web-member')->user(), request()->id);        $subsiteAll = $this->subsiteService->getSubsite(auth('web-member')->user());        $refresh = $this->queueAutoRefreshService->getQueuAutoRefresh(request()->id, auth('web-member')->user()->utype);        $entrust = $this->resumeEntrustService->getEntrustByResumeId(request()->id);        $where["uid"]=auth('web-member')->user()->id;        $where["pid"]=request()->id;        $resumeauth=ResumeAuthInfo::where($where)->select('duties','lager')->get();        $resumeauths=array();        foreach ($resumeauth as $value){            $resumeauths[]=$value->duties;        }        $personal_category['positionpatentTag'] = PersonalCategory::select('id','name','rc_category_id','rc_category_group_id')->where('rc_category_group_id',808)->get();        $personal_category['positionhonorTag'] = PersonalCategory::select('id','name','rc_category_id','rc_category_group_id')->where('rc_category_group_id',809)->get();        $personal_category['positionjobTag'] = PersonalCategory::select('id','name','rc_category_id','rc_category_group_id')->where('rc_category_group_id',810)->get();        $resumeauths_title = [];        $resumeauths_title['positionpatentTag'] = [];        $resumeauths_title['positionhonorTag'] = [];        $resumeauths_title['positionjobTag'] = [];        foreach ($personal_category['positionpatentTag'] as $value){            if(in_array($value->id,$resumeauths)){                $resumeauths_title['positionpatentTag'][] = $value->name;            }        }        foreach ($personal_category['positionhonorTag'] as $value){            if(in_array($value->id,$resumeauths)){                $resumeauths_title['positionhonorTag'][] = $value->name;            }        }        foreach ($personal_category['positionjobTag'] as $value){            if(in_array($value->id,$resumeauths)){                $resumeauths_title['positionjobTag'][] = $value->name;            }        }        return view('app.person.resume_update', [            'resume'=>$res['resume'],            'member'=>$res['member'],            'imgs'=>$res['imgs'],            'defaultCity'=>$district->defaultCity,            'subsiteResume'=>$subsiteResume['sub'],            'personalCategory'=>$personal_category,            'resumeauths'=>$resumeauths,            'resumeauths_title'=>$resumeauths_title,            'subsiteAll'=>$subsiteAll,            'subId'=>$subsiteResume['subId'],            'refresh'=>$refresh,            'entrust'=>$entrust        ]);    }    public function ajaxRongyuZhiwu(){        $type=request()->type;        $name = request()->name;        $where["uid"]=auth('web-member')->user()->id;        $where["pid"]=request()->id;        $resumeauth=ResumeAuthInfo::where($where)->select('duties','lager')->get();        $resumeauths=array();        foreach ($resumeauth as $value){            $resumeauths[]=$value->duties;        }        $honorTagWhere[] = array('name','like','%'.$name.'%');        $honorTagWhere[] = array('rc_category_group_id','=',809);        $jobTagWhere[] = array('name','like','%'.$name.'%');        $jobTagWhere[] = array('rc_category_group_id','=',810);        $personal_category['positionhonorTag'] = PersonalCategory::select('id','name','rc_category_id','rc_category_group_id')->where($honorTagWhere)->get();        $personal_category['positionjobTag'] = PersonalCategory::select('id','name','rc_category_id','rc_category_group_id')->where($jobTagWhere)->get();        if( $type == 1 ){  //荣誉            $html = view('app.person.ajax.rongyu', ['personalCategory'=>$personal_category, 'resumeauths'=>$resumeauths])->render();        }else{  // 职务。            $html = view('app.person.ajax.zhiwu', ['personalCategory'=>$personal_category, 'resumeauths'=>$resumeauths])->render();        }        return $this->sendSuccessResponse(['html'=>$html]);    }    public function updateSubditeResume()    {        $resume_id = request()->get('id');        $user = $this->getUser();        $this->resumeService->isOwn($resume_id,$user);        $res = $this->subsiteResumeService->updateSubditeResume($user, request()->all());        if ($res['code']) {            return $this->sendSuccessResponse($res['info']);        } else {            return $this->sendErrorResponse('更新失败', '', 400);        }    }    public function updateTitle()    {        $res = $this->resumeService->updateTitle(request()->title, request()->id,auth('web-member')->user());        if ($res) {            return $this->sendSuccessResponse('更新成功');        } else {            return $this->sendErrorResponse('更新失败', '', 400);        }    }    public function updateHunting()    {        $resume_id = request()->get('id');        $user = $this->getUser();        $this->resumeService->isOwn($resume_id,$user);        $res = $this->resumeService->updateHunting(request()->except('_token'), auth('web-member')->user());        if ($res) {            return $this->sendSuccessResponse('更新成功');        } else {            return $this->sendErrorResponse('更新失败', '', 400);        }    }    public function updateSpecialty()    {        $resume_id = request()->get('id');        $user = $this->getUser();        $this->resumeService->isOwn($resume_id,$user);        $res = $this->resumeService->updateSpecialty(request()->except('_token'),auth('web-member')->user());        if ($res['code']==1) {            return $this->sendSuccessResponse('更新成功');        } else {            return $this->sendErrorResponse('更新失败', '', 400);        }    }    public function resumeEducationAdd()    {        $res = $this->ResumeEducationService->resumeEducationAdd(request()->all(), auth('web-member')->user());        if ($res['code']==1) {            $html = view('app.person.ajax.resume_education', ['content'=>$res['info']])->render();            return $this->sendSuccessResponse($html);        } else {            return $this->sendErrorResponse('更新失败', '', 400);        }    }    public function resumeEducation()    {        $res = $this->ResumeEducationService->getResumeEducationByResumeId(request()->resume_id,auth('web-member')->user());        return view('app.person.ajax.resume_education', ['content'=>$res]);    }    public function resumeEducationUpdate()    {        $res = $this->ResumeEducationService->resumeUpdate(request()->id,auth('web-member')->user());        return $this->sendSuccessResponse($res);    }    public function resumeEduDelete()    {        if (request()->method()=='POST') {            $res = $this->ResumeEducationService->resumeEduDelete(request()->id,auth('web-member')->user());            if ($res['code']==1) {                return $this->sendSuccessResponse('删除成功');            } else {                return $this->sendErrorResponse('删除失败', '', 400);            }        } else {            return view('app.person.ajax.resume_delete', ['tpis'=>'删除后将无法恢复,您确定要删除该教育经历吗?']);        }    }    public function resumeWork()    {        $res = $this->ResumeWorkService->getResumeWorkByResumeId(request()->resume_id,auth('web-member')->user());        return view('app.person.ajax.resume_work', ['content'=>$res]);    }    public function resumeWorkAdd()    {        $resume_id = request()->get('resume_id');        $user = $this->getUser();        $this->resumeService->isOwn($resume_id,$user);        $res = $this->ResumeWorkService->resumeWorkAdd(request()->all(), auth('web-member')->user());        if ($res['code']==1) {            $html = view('app.person.ajax.resume_work', ['content'=>$res['info']])->render();            return $this->sendSuccessResponse($html);        } else {            return $this->sendErrorResponse('更新失败', '', 400);        }    }    public function resumeWorkUpdate()    {        $work_id = request()->get('id');        $user = $this->getUser();        $this->ResumeWorkService->isOwn($work_id,$user);        $res = $this->ResumeWorkService->resumeUpdate(request()->id);        return $this->sendSuccessResponse($res);    }    public function resumeWorkDelete()    {        if (request()->method()=='POST') {            $work_id = request()->get('id');            $resume_id = request()->get('resume_id');            $user = $this->getUser();            $this->ResumeWorkService->isOwn($work_id,$user,$resume_id);            $res = $this->ResumeWorkService->resumeWorkDelete(request()->id);            if ($res['code']==1) {                return $this->sendSuccessResponse('删除成功');            } else {                return $this->sendErrorResponse('删除失败', '', 400);            }        } else {            return view('app.person.ajax.resume_delete', ['tpis'=>'删除后将无法恢复,您确定要删除该工作经历吗?']);        }    }    public function resumeTrain()    {        $res = $this->ResumeTrainService->getResumeTrainByResumeId(request()->resume_id,auth('web-member')->user());        return view('app.person.ajax.resume_train', ['content'=>$res]);    }    public function resumeTrainAdd()    {        $resume_id = request()->get('resume_id');        $user = $this->getUser();        $this->resumeService->isOwn($resume_id,$user);        $res = $this->ResumeTrainService->resumeTrainAdd(request()->all(), auth('web-member')->user());        if ($res['code']==1) {            $html = view('app.person.ajax.resume_train', ['content'=>$res['info']])->render();            return $this->sendSuccessResponse($html);        } else {            return $this->sendErrorResponse('更新失败', '', 400);        }    }    public function resumeTrainUpdate()    {        $train_id = request()->get('id');        $user = $this->getUser();        $this->ResumeTrainService->isOwn($train_id,$user);        $res = $this->ResumeTrainService->resumeUpdate(request()->id);        return $this->sendSuccessResponse($res);    }    public function resumeTrainDelete()    {        if (request()->method()=='POST') {            $train_id = request()->get('id');            $resume_id = request()->get('resume_id');            $user = $this->getUser();            $this->ResumeTrainService->isOwn($train_id,$user,$resume_id);            $res = $this->ResumeTrainService->resumeTrainDelete(request()->id);            if ($res['code']==1) {                return $this->sendSuccessResponse('删除成功');            } else {                return $this->sendErrorResponse('删除失败', '', 400);            }        } else {            return view('app.person.ajax.resume_delete', ['tpis'=>'删除后将无法恢复,您确定要删除该培训经历吗?']);        }    }    public function resumeMaterialUpdate()    {        $user = $this->getUser();        $this->resumeMaterialService->isOwn(request()->all(),$user);        $res = $this->resumeMaterialService->resumeUpdate(request()->all(),$user);        if ($res['code']==1) {            return $this->sendSuccessResponse($res);        } else {            return $this->sendErrorResponse($res['info'], '', 400);        }    }    public function resumeCredent()    {        $res = $this->ResumeCredentService->getResumeCredentByResumeId(request()->resume_id,auth('web-member')->user());        return view('app.person.ajax.resume_credent', ['content'=>$res]);    }    public function resumeCredentAdd()    {        $resume_id = request()->get('resume_id');        $user = $this->getUser();        $this->resumeService->isOwn($resume_id,$user);        $res = $this->ResumeCredentService->resumeCredentAdd(request()->all(), auth('web-member')->user());        if ($res['code']==1) {            $html = view('app.person.ajax.resume_credent', ['content'=>$res['info']])->render();            return $this->sendSuccessResponse($html);        } else {            return $this->sendErrorResponse('更新失败', '', 400);        }    }    public function resumeCredentUpdate()    {        $train_id = request()->get('id');        $user = $this->getUser();        $this->ResumeCredentService->isOwn($train_id,$user);        $res = $this->ResumeCredentService->resumeUpdate(request()->id);        return $this->sendSuccessResponse($res);    }    public function resumeCredentDelete()    {        if (request()->method()=='POST') {            $train_id = request()->get('id');            $resume_id = request()->get('resume_id');            $user = $this->getUser();            $this->ResumeCredentService->isOwn($train_id,$user,$resume_id);            $res = $this->ResumeCredentService->resumeCredentDelete(request()->id);            if ($res['code']==1) {                return $this->sendSuccessResponse('删除成功');            } else {                return $this->sendErrorResponse('删除失败', '', 400);            }        } else {            return view('app.person.ajax.resume_delete', ['tpis'=>'删除后将无法恢复,您确定要删除该证书吗?']);        }    }    public function resumeLanAdd()    {        $resume_id = request()->get('resume_id');        $user = $this->getUser();        $this->resumeService->isOwn($resume_id,$user);        $res = $this->ResumeLanguageService->resumeLanAdd(request()->resume_id);        return view('app.person.ajax.resume_edit_language', ['content'=>$res]);    }    public function getLanguageL()    {        $res = $this->ResumeLanguageService->getLanguageL(request()->resume_id,auth('web-member')->user());        return view('app.person.ajax.get_language_list', ['content'=>$res]);    }    public function saveLanguage()    {        $resume_id = request()->get('resume_id');        $user = $this->getUser();        $this->resumeService->isOwn($resume_id,$user);        $res = $this->ResumeLanguageService->saveLanguage(request()->all(), auth('web-member')->user());        if ($res['code']==1) {            $html = view('app.person.ajax.get_language_list', ['content'=>$res['info']])->render();            return $this->sendSuccessResponse($html);        } else {            return $this->sendErrorResponse('添加失败', '', 400);        }    }    public function delLanguage()    {        $language_id = request()->get('id');        $resume_id = request()->get('resume_id');        $user = $this->getUser();        $this->ResumeLanguageService->isOwn($language_id,$user,$resume_id);        $res = $this->ResumeLanguageService->delLanguage(request()->all());        if ($res['code']==1) {            return $this->sendSuccessResponse('删除成功');        } else {            return $this->sendErrorResponse('删除失败', '', 400);        }    }    public function tagSave()    {        $resume_id = request()->get('resume_id');        $user = $this->getUser();        $this->resumeService->isOwn($resume_id,$user);        $res = $this->resumeService->tagSave(request()->all());        if ($res['code']==1) {            return $this->sendSuccessResponse('更新成功');        } else {            return $this->sendErrorResponse('更新失败', '', 400);        }    }    public function resumeCopy()    {        $res = $this->resumeService->resumeCopy(request()->id, auth('web-member')->user());        if ($res['code']==1) {            return $this->sendSuccessResponse($res['info']);        } else {            return $this->sendErrorResponse('创建简历失败', '', 400);        }    }    public function saveBasicInfo()    {        $res = $this->resumeService->saveBasicInfo(request()->except('_token'),auth('web-member')->user());        if ($res) {            return $this->sendSuccessResponse('更新成功');        } else {            return $this->sendErrorResponse('更新失败', '', 400);        }    }    public function refreshResume()    {        $res = $this->resumeService->refreshResume(request()->id, auth('web-member')->user());        if ($res['code']==1) {            return $this->sendSuccessResponse($res['info']);        } else {            return $this->sendErrorResponse($res['info']);        }    }    public function resumeShow()    {        $user = $this->getUser();        $res = $this->resumeService->resumeShow(request()->id,'',$user);        return view('app.person.resume_show', ['content'=>$res,'resume'=>$res['resume'], 'redirect_url'=>url(\Illuminate\Support\Facades\Request::getRequestUri())]);    }    public function resumeDoc()    {        $res = $this->resumeService->resumeDoc(request()->id);        if ($res) {            $html = view('app.tpl.word_resume', ['content'=>$res])->render();            return $this->resumeService->descript($res, $html);        } else {            return $this->sendErrorResponse('请选择简历!', '', 400);        }    }    public function delResume()    {        $res = $this->resumeService->delResume(request()->id);        $html = view('app.person.ajax.del_resume', ['content'=>$res['data']])->render();        return json_encode(['code'=>$res['code'],'data'=>$html]);    }    public function setDelResume()    {        $res = $this->resumeService->setDelResume(request()->id, auth('web-member')->user());        if ($res) {            return $this->sendSuccessResponse('删除成功');        } else {            return $this->sendErrorResponse('删除失败', '', 400);        }    }    public function setDef()    {        $res = $this->resumeService->setDef(request()->id, auth('web-member')->user());        if ($res['code']==1) {            return $this->sendSuccessResponse($res['info']);        } else {            return $this->sendErrorResponse($res['info'], '', 400);        }    }    public function entrust()    {        $res = $this->resumeService->entrust(request()->id, auth('web-member')->user());        if ($res['code']==0) {            $html = view('app.person.ajax.entrust', ['content'=>$res['data']])->render();            return json_encode(['code'=>0,'html'=>$html,'data'=>$res['data']['entrust']-time()]);        } else {            $html = view('app.person.ajax.entruct_cancle', ['content'=>$res['data']])->render();            return json_encode(['code'=>0,'html'=>$html,'data'=>$res['data']['entrust_end']-time()]);        }    }    public function setEntrust()    {        $res = $this->resumeService->setEntrust(request()->id, auth('web-member')->user());        if ($res['code']==1) {            return $this->sendSuccessResponse($res['info']);        } else {            return $this->sendErrorResponse($res['info'], '', 400);        }    }    public function setEntrustDel()    {        $res = $this->resumeService->setEntrustDel(request()->id,auth('web-member')->user());        if ($res['code']==1) {            return $this->sendSuccessResponse($res['info']);        } else {            return $this->sendErrorResponse($res['info'], '', 400);        }    }    public function tagCn()    {        if (request()->method()=='POST') {            dd(11);        } else {            $result = $this->resumeService->tagCn(auth('web-member')->user());            if ($result['code']==0) {                return $result;            } else {                return view('app.person.ajax.resume_tag', $result);            }        }    }    public function resumeStick()    {        if (request()->method()=='POST') {            dd(22);        } else {            $result = $this->resumeService->resumeStick(auth('web-member')->user());            if ($result['code']==0) {                return $result;            } else {                return view('app.person.ajax.resume_stick', $result);            }        }    }    public function incrementAddSave()    {        $result = $this->resumeService->incrementAddSave(request()->all(), auth('web-member')->user());        if ($result['code']==1) {            return $this->sendSuccessResponse($result['info']);        } else {            return $this->sendErrorResponse($result['info'], '', 400);        }    }    public function incrementStickSave()    {        $result = $this->resumeService->incrementStickSave(request()->all(), auth('web-member')->user());        if ($result['code']==1) {            return $this->sendSuccessResponse($result['info']);        } else {            return $this->sendErrorResponse($result['info'], '', 400);        }    }    public function uploadImages()    {        $resume_id = request()->get('resume_id');        $user = $this->getUser();        $this->resumeService->isOwn($resume_id,$user);        $result = $this->resumeService->uploadImages(request()->all(), auth('web-member')->user());        if ($result['code']==1) {            return $this->sendSuccessResponse($result['info']);        } else {            return $this->sendErrorResponse($result['info']);        }    }    public function uploadFiles()    {        $resume_id = request()->get('resume_id');        $user = $this->getUser();        $this->resumeService->isOwn($resume_id,$user);        $result = $this->resumeService->uploadFiles(request()->all());        if ($result) {            return $this->sendSuccessResponse('上传成功!');        } else {            return $this->sendErrorResponse('上传失败,请重试!');        }    }    public function delFile()    {        if (request()->method()=='POST') {            $resume_id = request()->get('resume_id');            $user = $this->getUser();            $this->resumeService->isOwn($resume_id,$user);            $result = $this->resumeService->delFile(request()->all());            if ($result) {                return $this->sendSuccessResponse('删除成功!');            } else {                return $this->sendErrorResponse('删除失败,请重试!');            }        } else {            return view('app.person.ajax.resume_delete', ['tpis'=>'删除后将无法恢复,您确定要删除该附件简历吗?']);        }    }    public function autoRefresh()    {        $resume_id = request()->get('resume_id');        $user = $this->getUser();        $this->resumeService->isOwn($resume_id,$user);        $result = $this->resumeService->autoRefresh(request()->all(),auth('web-member')->user());        if ($result['code']==1) {            return $this->sendSuccessResponse($result['info']);        } else {            return $this->sendErrorResponse($result['info']);        }    }    public function del_images()    {        if (request()->method()=='POST') {            $img_id = request()->get('id');            $resume_id = request()->get('resume_id');            $user = $this->getUser();            $this->resumeImageService->isOwn($img_id,$user,$resume_id);            $result = $this->resumeService->del_images(request()->all());            if ($result['code']==1) {                return $this->sendSuccessResponse('ok');            } else {                return $this->sendErrorResponse('删除失败!');            }        } else {            return view('app.person.ajax.resume_delete', ['tpis'=>'删除后将无法恢复,您确定要删除该条数据吗?']);        }    }    //职位匹配    public function matchJobs($id)    {        $resume = $this->resumeService->getResumeInfo($id);        if(!$resume){            return $this->showMessage('您的简历审核未通过/审核中,无法匹配职位', \Illuminate\Support\Facades\URL::previous(), true, '上一页', '3');        }        //匹配职位        $jobs = $this->searchService->searchRecommendJobs(5, $this->getUser(), 'show_page');        /*         $where = $this->jobsService->setRecommendJobWhere($resume);        $order = array('refresh_time'=>'desc');        $jobs = $this->searchService->search('Job', $where, $order, '', 10);        */        $list_items = array();        if($jobs){            if ($jobs->total()>0) {                $list_items = $this->jobsService->dealjobFilelds($jobs->items());            }        }        $return_data = array(            'list'=>$jobs,            'jobs'=>$list_items        );        return view('app.person.jobs_match', $return_data);    }        public function resumeTpl(Request $request)    {        $res = $this->resumeService->resumeTpl(auth('web-member')->user(), $request->pid);        $html = view('app.person.ajax.resume_tpl', ['tpl'=>$res['tpl'],'resume_tpl'=>$res['resume_tpl'],'resume_id'=>$request->pid])->render();        return json_encode(['html'=>$html]);    }        public function resumeTplUpdate(Request $request)    {        $res = $this->resumeService->resumeTplUpdate($request->pid, $request->tpl,auth('web-member')->user());        if ($res) {            return $this->sendSuccessResponse('更新成功!');        } else {            return $this->sendErrorResponse('更新失败!');        }    }        public function incrementTplPoints(Request $request)    {        $res = $this->resumeService->incrementTplPoints(auth('web-member')->user(), $request->all());        if ($res['code']==1) {            return $this->sendSuccessResponse($res['info']);        } else {            return $this->sendErrorResponse($res['info']);        }    }        public function incrementTplPay(Request $request)    {        $res = $this->resumeService->incrementTplPay(auth('web-member')->user(), $request->all(), $request->route());            if ($res['code']=='wechat') {            if ($res['type']=='wap') {                return $res['tradeCode'];            } else {                return json_encode(['tradeCode'=>$res['tradeCode'],'tradeNo'=>$res['tradeNo']]);            }        } else {            return $res['tradeCode'];        }    }        public function downFile(Request $request)    {        $id = $request->id;        $user = $this->getUser();        $this->resumeService->isOwn($id,$user);        $back_url = \Illuminate\Support\Facades\URL::previous();        if(!$id){            return $this->showMessage('简历不存在!', $back_url, true, '上一页', '3');        }        $resume = Resume::find($id);        if(Storage::disk('public')->exists($resume->word_resume)){            return response()->download(Storage::disk('public')->path($resume->word_resume), $resume->word_resume_title);        }else{            return $this->showMessage('文件不存在!', $back_url, true, '上一页', '3');        }    }    public function resumeDisplay(Request $request)    {        $user = $this->getUser();        $res = $this->resumeService->resumeDisplay($request->display, $request->id,$user);        if ($res) {            return $this->sendSuccessResponse('更新成功!');        } else {            return $this->sendErrorResponse('更新失败!');        }    }    public function delRefreshResume(Request $request)    {        $user = $this->getUser();        $res = $this->queueAutoRefreshService->delRefreshResume($request->pid,$user);        if ($res) {            return $this->sendSuccessResponse('取消成功!');        } else {            return $this->sendErrorResponse('取消失败!');        }    }    public function delEntrustResume(Request $request)    {        $res = $this->resumeEntrustService->delEntrustResume($request->pid, $request->resume_id,auth('web-member')->user());        if ($res['code']==1) {            return $this->sendSuccessResponse($res['info']);        } else {            return $this->sendErrorResponse('取消失败!');        }    }    public function recruit()    {        $user = auth('web-member')->user();        $list = RecruitAppointInfo::where('uid',$user->id)                ->join('recruit', 'recruit.id', '=', 'recruit_appoint_info.recruit_id', 'left')                ->join('recruit_post', 'recruit_post.id', '=', 'recruit_appoint_info.post_id', 'left')                ->select('recruit.name as recruit_name','recruit_appoint_info.*','recruit_post.code','recruit_post.name')                ->get();        return view('app.person.recruit')->with(['list' => $list,'total' => count($list)]);    }    public function recruit_info(Request $request)    {        $user = auth('web-member')->user();        $info = RecruitAppointBasic::where('uid',$user->id)->first();        if(!$info){            $info = [                'realname' => '',                'sex' => '0',                'birthday' => '',                'avatar' => '',                'nation' => '',                'native_place' => '',                'political_affiliation' => '',                'titles' => '',                'work' => '',                'house_register' => '',                'join_time' => '',                'edu_type' => '',                'education' => '',                'school' => '',                'degree' => '',                'pro' => '',                'address' => '',                'card' => '',                'mobile' => '',                'email' => '',                'concat_name' => '',                'concat_mobile' => '',                'resume' => '',                'family' => [                    [                        'relation' => '',                        'realname' => '',                        'birthday' => '',                        'political_affiliation' => '',                        'work' => ''                    ]                ],                'is_push' => '1'            ];        }else{            $info->sex = (string)$info->sex;            $info->edu_type = (string)$info->edu_type;            $info->is_push = (string)$info->is_push;            $info->family = empty($info->family) ? [[                'relation' => '',                'realname' => '',                'birthday' => '',                'political_affiliation' => '',                'work' => ''            ]] : json_decode($info->family);        }        $recruit_id = $request->input('recruit_id',0);        return view('app.person.recruit_info',[            'info'      =>  json_encode($info),            'recruit_id'=>  $recruit_id        ]);    }    public function saveRecruitInfo(RecruitValidatorRequest $request)    {        $user = auth('web-member')->user();        $basic = RecruitAppointBasic::where('uid',$user->id)->first();        $data = $request->only('realname','sex','birthday','avatar','nation','native_place','political_affiliation','titles','work','house_register','join_time','education','school','degree','pro','address','card','mobile','email','concat_name','concat_mobile','resume','family','is_push');        if(count($data['family']) > 0){            $data['family'] = json_encode($data['family']);        }        if($basic){            //更新基础信息            $res = RecruitAppointBasic::where('uid',$user->id)->update($data);            if (!$res) {                return response()->json(['status'=>0,'msg'=>'保存失败,请联系客服']);            }else{                return response()->json(['status'=>1,'msg'=>'个人基础信息保存成功,快去报名吧!']);            }        }else{            //新增基础信息            $data['uid'] = $user->id;            $res = RecruitAppointBasic::create($data);            if (!$res) {                return response()->json(['status'=>0,'msg'=>'保存失败,请联系客服']);            }else{                return response()->json(['status'=>1,'msg'=>'个人基础信息保存成功,快去报名吧!']);            }        }    }}
 |