| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722 | <?php/** * Created by PhpStorm. * User: xiaaomi * Date: 2019/3/12 * Time: 14:07 */namespace App\Http\Controllers\Mobile\Person;use App\Exceptions\ResponseException;use App\Http\Controllers\Mobile\MobileBaseController;use App\Models\CategoryDistrict;use App\Models\PersonalTalents;use App\Models\RecruitAppointBasic;use App\Models\RecruitAppointInfo;use App\Models\Resume;use App\Services\Common\CategoryService;use App\Services\Person\MemberInfoService;use App\Services\Person\MemberPointService;use App\Services\Person\ResumeCredentService;use App\Services\Person\ResumeEducationService;use App\Services\Person\ResumeImageService;use App\Services\Person\ResumeLanguageService;use App\Services\Person\ResumeService;use App\Services\Person\ResumeTrainService;use App\Services\Person\ResumeWorkService;use App\Services\Person\SubsiteResumeService;use App\Services\SubsiteService;use App\Validators\PersonValidatorRequest;use App\Validators\RecruitValidatorRequest;use Illuminate\Http\Request;class ResumeController extends MobileBaseController{    protected $resumeService;    protected $memberPointService;    protected $categoryService;    protected $subsiteService;    protected $resumeWorkService;    protected $educationService;    protected $subsiteResumeService;    protected $resumeEducationService;    protected $resumeTrainService;    protected $resumeCredentService;    protected $resumeLanguageService;    protected $memberInfoService;    protected $resumeImageService;    public function __construct(        ResumeService $resumeService,        MemberPointService $memberPointService,        CategoryService $categoryService,        SubsiteService $subsiteService,        ResumeWorkService $resumeWorkService,        ResumeEducationService $educationService,        SubsiteResumeService $subsiteResumeService,        ResumeEducationService $resumeEducationService,        ResumeTrainService $resumeTrainService,        ResumeCredentService $resumeCredentService,        ResumeLanguageService $resumeLanguageService,        MemberInfoService $memberInfoService,        ResumeImageService $resumeImageService    )    {        $this->resumeService          = $resumeService;        $this->memberPointService     = $memberPointService;        $this->categoryService        = $categoryService;        $this->subsiteService         = $subsiteService;        $this->resumeWorkService      = $resumeWorkService;        $this->educationService       = $educationService;        $this->subsiteResumeService   = $subsiteResumeService;        $this->resumeEducationService = $resumeEducationService;        $this->resumeTrainService     = $resumeTrainService;        $this->resumeCredentService   = $resumeCredentService;        $this->resumeLanguageService  = $resumeLanguageService;        $this->memberInfoService      = $memberInfoService;        $this->resumeImageService     = $resumeImageService;    }    public function index()    {        if (get_subsite_id() > 0) {            return view('mobile.app.jkq.person_index');        } else {            $personaltalents = PersonalTalents::where('uid', auth('web-member')->user()->id)->first();            return view('mobile.app.person.index', ['talents' => $personaltalents]);        }    }    public function signIn()    {        if (request()->method() == 'POST') {            $res = $this->resumeService->signIn(auth('web-member')->user());            if ($res['code'] == 1) {                return $this->sendSuccessResponse($res['info']);            } else {                return $this->sendErrorResponse($res['info']);            }        } else {            return view('mobile.app.person.service.index', ['wap_title' => '我的积分']);        }    }    public function task()    {        return view('mobile.app.person.service.gold_task', $this->memberPointService->getTask(auth('web-member')->user(), 1));    }    public function taskDetail(Request $request)    {        $res    = $this->memberPointService->getPointsById(auth('web-member')->user());        $result = $res['memhanselGet'];        if ($request->has('operate') && !empty($request->operate)) {            $result = $res['memhanselPo'];        }        if ($request->ajax()) {            if ($result->lastPage() < $result->currentPage()) {                return response()->json(['status' => 0]);            }            return response()->json([                'status'                                          => 1,                'data'                                            => view('mobile.app.person.ajax_tpl.ajax_gold_log',                    ['result' => $result])->render(), 'wap_title' => '积分收支明细']);        }        return view('mobile.app.person.service.gold_log')->with([            'result'    => $result,            'pointGet'  => $res['pointGet'],            'pointPo'   => $res['pointPo'],            'wap_title' => '积分收支明细',        ]);    }    public function incrementAdd()    {        $res = $this->memberPointService->increment_add(request()->type, auth('web-member')->user());        return view('mobile.app.person.service.' . $res['tpl'], ['resume' => $res['resume'],                                                                 'info'   => $res['info'], 'points' => $res['points'], 'payment' => $res['payment'], 'wap_title' => $res['wap_title']]);    }    public function resumeAdd()    {        $res       = $this->resumeService->loginValidate(auth('web-member')->user());        $district  = $this->categoryService->getDefaultDistrict();        $subsite   = $this->subsiteService->getSubsite(auth('web-member')->user());        $deSubsite = [];        foreach ($subsite as $key => $val) {            $deSubsite[] = $val['id'] . ',' . $val['sitename'];        }        return view('mobile.app.person.resume_add', [                'member'      => $res['member'],                'resume'      => $res['resume'],                'defaultCity' => $district->defaultCity,                'disCity'     => $district->disCity,                'disHan'      => $district->disHan,                'resumeTitle' => $res['resumeTitle'],                'subsite'     => $deSubsite,                'wap_title'   => '创建简历',            ]        );    }    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('mobile.app.person.resume_guidance', ['wap_title' => '完善简历']);    }    public function resume_add_success()    {        return view('mobile.app.person.resume_add_success', ['wap_title' => '创建简历']);    }    public function resumeWorkAdd()    {        $res = $this->resumeWorkService->resumeWorkAdd(request()->all(), auth('web-member')->user());        if ($res['code'] == 1) {            $html = view('mobile.app.person.ajax_tpl.ajax_get_work_list', ['content' => $res['info']])->render();            return $this->sendSuccessResponse($html);        } else {            return $this->sendErrorResponse('更新失败', '', 400);        }    }    public function resumeEducationAdd()    {        $res = $this->educationService->resumeEducationAdd(request()->all(), auth('web-member')->user());        if ($res['code'] == 1) {            $html = view('mobile.app.person.ajax_tpl.ajax_get_education_list', ['content' => $res['info']])->render();            return $this->sendSuccessResponse($html);        } else {            return $this->sendErrorResponse('更新失败', '', 400);        }    }    public function resumeTrainAdd()    {        $res = $this->resumeTrainService->resumeTrainAdd(request()->all(), auth('web-member')->user());        if ($res['code'] == 1) {            $html = view('mobile.app.person.ajax_tpl.ajax_get_training_list', ['content' => $res['info']])->render();            return $this->sendSuccessResponse($html);        } else {            return $this->sendErrorResponse('更新失败', '', 400);        }    }    public function resumeCredentAdd()    {        $res = $this->resumeCredentService->resumeCredentAdd(request()->all(), auth('web-member')->user());        if ($res['code'] == 1) {            $html = view('mobile.app.person.ajax_tpl.ajax_get_credent_list', ['content' => $res['info']])->render();            return $this->sendSuccessResponse($html);        } else {            return $this->sendErrorResponse('更新失败', '', 400);        }    }    public function saveLanguage()    {        $res = $this->resumeLanguageService->mobileSaveLanguage(request()->all(), auth('web-member')->user());        if ($res['code'] == 1) {            $html = view('mobile.app.person.ajax_tpl.ajax_get_language_list', ['content' => $res['info']])->render();            return $this->sendSuccessResponse($html);        } else {            return $this->sendErrorResponse('添加失败', '', 400);        }    }    public function updateSpecialty()    {        $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 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 resume()    {        $content = $this->resumeService->myResume(auth('web-member')->user());        return view('mobile.app.person.resume_list', ['content' => $content, 'wap_title' => '简历管理']);    }    public function set_entrust()    {        $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 set_entrust_del()    {        $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 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 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());        return view('mobile.app.person.resume_edit', [            'resume'        => $res['resume'],            'member'        => $res['member'],            'imgs'          => $res['imgs'],            'defaultCity'   => $district->defaultCity,            'subsiteResume' => $subsiteResume['sub'],            'subsiteAll'    => $subsiteAll,            'subId'         => $subsiteResume['subId'],            'wap_title'     => '编辑简历',        ]);    }    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 resumeEducation()    {        $res = $this->resumeEducationService->getResumeEducationByResumeId(request()->resume_id, auth('web-member')->user());        return view('mobile.app.person.ajax_tpl.default_education', ['content' => $res]);    }    public function resumeWork()    {        $res = $this->resumeWorkService->getResumeWorkByResumeId(request()->resume_id, auth('web-member')->user());        return view('mobile.app.person.ajax_tpl.default_work', ['content' => $res]);    }    public function resumeTrain()    {        $res = $this->resumeTrainService->getResumeTrainByResumeId(request()->resume_id, auth('web-member')->user());        return view('mobile.app.person.ajax_tpl.default_train', ['content' => $res]);    }    public function resumeCredent()    {        $res = $this->resumeCredentService->getResumeCredentByResumeId(request()->resume_id, auth('web-member')->user());        return view('mobile.app.person.ajax_tpl.default_credent', ['content' => $res]);    }    public function getLanguageL()    {        $res = $this->resumeLanguageService->getLanguageL(request()->resume_id, auth('web-member')->user());        return view('mobile.app.person.ajax_tpl.default_language', ['content' => $res]);    }    public function memberInfo()    {        $resume_id = [];        $resume    = $this->resumeService->myResumeAjax(auth('web-member')->user());        if (!$resume->isEmpty()) {            $resume_id = array_column($resume->toArray(), 'id');        }        $res      = $this->resumeService->getUserInfo(auth('web-member')->user(), $resume_id);        $district = $this->categoryService->getDefaultDistrict();        return view('mobile.app.person.resume_edit_basis')->with([            'content'     => $res->member,            'defaultCity' => $district->defaultCity,            'memberInfo'  => $res,            'resume_id'   => request()->resume_id,            'wap_title'   => '个人资料',        ]);    }    public function uploadHead()    {        $res = $this->memberInfoService->updateHead(request()->pic1, auth('web-member')->user());        return response()->json($res);    }    public function updateInfo(PersonValidatorRequest $request)    {        $res = $this->memberInfoService->updateInfo(request()->all(), auth('web-member')->user());        if ($res['code']) {            return $this->sendSuccessResponse($res['info']);        } else {            return $this->sendErrorResponse('更新失败', '', 400);        }    }    public function updateHunt()    {        $res           = Resume::findOrFail(request()->resume_id);        $district      = $this->categoryService->getDefaultDistrict();        $subsiteResume = $this->subsiteResumeService->getSubsiteResumeById(            auth('web-member')->user(), request()->resume_id);        $SubsitTitle = '';        foreach ($subsiteResume['sub'] as $key => $val) {            if ($val['subsites']) {                $SubsitTitle .= $val['subsites']['sitename'] . ',';            } else {                $SubsitTitle .= '总站' . ',';            }        }        $subsiteAll = $this->subsiteService->getSubsite(auth('web-member')->user());        $deSubsite  = [];        foreach ($subsiteAll as $key => $val) {            $deSubsite[] = $val['id'] . ',' . $val['sitename'];        }        return view('mobile.app.person.resume_edit_intent', [            'resume'      => $res,            'defaultCity' => $district->defaultCity,            'subsite'     => $deSubsite,            'SubsitTitle' => trim($SubsitTitle, ','),            'subsiteId'   => implode(',', $subsiteResume['subId']),            'wap_title'   => '求职意向',        ]);    }    public function updHunt()    {        $res = $this->resumeService->updateHunting(request()->except('_token'), auth('web-member')->user());        if ($res) {            return $this->sendSuccessResponse('更新成功');        } else {            return $this->sendErrorResponse('更新失败', '', 400);        }    }    public function updateDescription()    {        $res = Resume::findOrFail(request()->resume_id);        return view('mobile.app.person.resume_edit_description', [            'resume'    => $res,            'wap_title' => '自我描述',        ]);    }    public function educationEdit(Request $request)    {        $resumeEdu = $this->resumeEducationService->educationEdit($request->id);        return view('mobile.app.person.resume_edit_edu', [            'resume_id' => request()->resume_id,            'resumeEdu' => $resumeEdu,            'wap_title' => '教育经历',        ]);    }    public function workEdit(Request $request)    {        $workEdu = $this->resumeWorkService->workEdit($request->id);        return view('mobile.app.person.resume_edit_work', [            'resume_id' => request()->resume_id,            'workEdu'   => $workEdu,            'wap_title' => '工作经历',        ]);    }    public function trainEdit(Request $request)    {        $trainEdu = $this->resumeTrainService->trainEdit($request->id);        return view('mobile.app.person.resume_edit_train', [            'resume_id' => request()->resume_id,            'trainEdu'  => $trainEdu,            'wap_title' => '培训经历',        ]);    }    public function certificate(Request $request)    {        $certificateEdu = $this->resumeCredentService->certificate($request->id);        return view('mobile.app.person.resume_edit_certificate', [            'resume_id'      => request()->resume_id,            'certificateEdu' => $certificateEdu,            'wap_title'      => '获得证书',        ]);    }    public function language(Request $request)    {        $languageEdu = $this->resumeLanguageService->language($request->id);        return view('mobile.app.person.resume_edit_lang', [            'resume_id'   => request()->resume_id,            'languageEdu' => $languageEdu,            'wap_title'   => '语言能力',        ]);    }    public function speciality()    {        $resume = Resume::findOrFail(request()->resume_id);        return view('mobile.app.person.resume_edit_speciality', [            'resume'    => $resume,            'wap_title' => '特长标签',        ]);    }    public function tagSave()    {        $resume_id = request()->resume_id;        $this->resumeService->isOwn($resume_id, auth('web-member')->user());        $res = $this->resumeService->tagSave(request()->all());        if ($res['code'] == 1) {            return $this->sendSuccessResponse('更新成功');        } else {            return $this->sendErrorResponse('更新失败', '', 400);        }    }    public function tagDelete(Request $request)    {        $res = $this->resumeService->tagDelete($request->input('resume_id', ''), $request->input('tag_cn', ''), auth('web-member')->user());        if ($res['code'] == 1) {            return $this->sendSuccessResponse('删除成功');        } else {            return $this->sendErrorResponse('删除失败', '', 400);        }    }    public function images(Request $request)    {        $imagesEdu = $this->resumeImageService->images($request->id);        return view('mobile.app.person.resume_edit_img', [            'resume_id' => $request->resume_id,            'imagesEdu' => $imagesEdu,            'wap_title' => '照片作品',        ]);    }    public function resumeImages(Request $request)    {        $res = $this->resumeImageService->resumeImages        (            $request->input('images', ''),            $request->input('title', ''),            $request->input('id', ''),            $request->input('resume_id', ''),            auth('web-member')->user()        );        return response()->json($res);    }    public function recruit(Request $request)    {        $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('mobile.app.person.recruit')->with(['list' => $list, 'total' => count($list)]);    }    public function recruit_info(Request $request)    {        $info       = $this->_getRecruitInfo();        $recruit_id = $request->input('recruit_id', 0);        return view('mobile.app.person.recruit_info', [            'info'                  => $info,            'recruit_id'            => $recruit_id,            'political_affiliation' => RecruitAppointBasic::$political_affiliation,        ]);    }    public function recruit_family(Request $request)    {        $key        = $request->input('key', '');        $recruit_id = $request->input('recruit_id', 0);        if ($key !== '') {            $user   = auth('web-member')->user();            $basic  = RecruitAppointBasic::where('uid', $user->id)->first();            $family = json_decode($basic->family, true);            $info   = $family[$key];        } else {            $info = [                'work'                  => '',                'birthday'              => '',                'realname'              => '',                'relation'              => '',                'political_affiliation' => '13',            ];        }        return view('mobile.app.person.recruit_family', [            'info'                  => $info,            'key'                   => $key,            'recruit_id'            => $recruit_id,            'political_affiliation' => RecruitAppointBasic::$political_affiliation,        ]);    }    public function delRecruitFamily(Request $request)    {        $key    = $request->input('key');        $user   = auth('web-member')->user();        $info   = RecruitAppointBasic::where('uid', $user->id)->first();        $family = json_decode($info->family, true);        unset($family[$key]);        RecruitAppointBasic::where('uid', $user->id)->update(['family' => json_encode($family)]);        return response()->json(['status' => 1]);    }    public function postRecruitFamily(Request $request)    {        $data   = $request->post();        $user   = auth('web-member')->user();        $info   = RecruitAppointBasic::where('uid', $user->id)->first();        $family = json_decode($info->family, true);        if (isset($data['key'])) {            $key = $data['key'];            unset($data['key']);            $family[$key] = $data;        } else {            $family[] = $data;        }        RecruitAppointBasic::where('uid', $user->id)->update(['family' => json_encode($family)]);        return response()->json(['status' => 1]);    }    public function recruit_basic(Request $request)    {        $info = $this->_getRecruitInfo();        $recruit_id = $request->input('recruit_id', 0);        return view('mobile.app.person.recruit_basic', [            'info'                  => $info,            'recruit_id'            => $recruit_id,            'political_affiliation' => RecruitAppointBasic::$political_affiliation,            'edu_type'              => RecruitAppointBasic::$edu_type,            'education'             => RecruitAppointBasic::$education,        ]);    }    public function saveRecruitBasic(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', 'edu_type', 'education', 'school', 'degree', 'pro', 'address', 'card', 'mobile', 'email', 'concat_name', 'concat_mobile', 'resume', 'is_push');        $data['avatar'] = $data['avatar'] ?: '';        if ($basic) {            //更新基础信息            $res = RecruitAppointBasic::where('uid', $user->id)->update($data);            if (!$res) {                return response()->json(['status' => 0, 'msg' => '保存失败,请联系客服']);            } else {                return response()->json(['status' => 1]);            }        } else {            //新增基础信息            $data['uid'] = $user->id;            $res         = RecruitAppointBasic::create($data);            if (!$res) {                return response()->json(['status' => 0, 'msg' => '保存失败,请联系客服']);            } else {                return response()->json(['status' => 1]);            }        }    }    private function _getRecruitInfo()    {        $user = auth('web-member')->user();        $info = RecruitAppointBasic::where('uid', $user->id)->first();        if (!$info) {            $info = [                'uid'                   => $user->id,                'realname'              => '',                'sex'                   => 0,                'birthday'              => '',                'avatar'                => '',                'nation'                => '',                'native_place'          => '',                'political_affiliation' => '13',                'titles'                => '',                'work'                  => '',                'house_register'        => '',                'join_time'             => '',                'edu_type'              => 1,                'education'             => '本科',                'school'                => '',                'degree'                => '',                'pro'                   => '',                'address'               => '',                'card'                  => '',                'mobile'                => '',                'email'                 => '',                'concat_name'           => '',                'concat_mobile'         => '',                'resume'                => '',                'family'                => [],                'is_push'               => 1,            ];            RecruitAppointBasic::create($info);        } 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) ? [] : json_decode($info->family,true);        }        return $info;    }}
 |