| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608 | <?phpnamespace App\Http\Controllers\Mobile\Person;use App\Http\Controllers\Mobile\MobileBaseController;use App\Models\LotteryWin;use App\Models\Pms;use App\Models\RecuperateApply;use App\Models\RecuperateLog;use App\Models\RecuperateTime;use App\Models\Resume;use App\Services\Common\EmailService;use App\Services\Common\PayService;use App\Services\Common\SmsService;use App\Services\Company\CompanyInterviewService;use App\Services\Jobfair\JobfairPersonalJopApplyService;use App\Services\Person\MemberInfoService;use App\Services\Person\MemberPointService;use App\Services\Person\MemberService;use App\Services\Person\PersonFavoriteService;use App\Services\Person\PersonJobsApplyService;use App\Services\Person\ResumePrivacyService;use App\Services\Person\ResumeService;use App\Services\Recuperate\RecuperateApplyService;use App\Validators\PersonValidatorRequest;use Illuminate\Http\Request;class CompanyInterviewController extends MobileBaseController{    /**     * @var ResumeService     */    protected $ResumeService;    protected $ResumePrivacyService;    protected $companyInterviewService;    protected $personalJobsApplyService;    protected $memberPointService;    protected $personFavoriteService;    protected $memberInfoService;    protected $memberService;    protected $smsService;    protected $emailService;    protected $payService;    protected $jobfairPersonalJopApplyService;    protected $recuperateApplyService;    public function __construct(        ResumeService $ResumeService,        ResumePrivacyService $ResumePrivacyService,        CompanyInterviewService $companyInterviewService,        PersonJobsApplyService $personalJobsApplyService,        MemberPointService $memberPointService,        PersonFavoriteService $personFavoriteService,        MemberInfoService $memberInfoService,        MemberService $memberService,        SmsService $smsService,        EmailService $emailService,        PayService $payService,        JobfairPersonalJopApplyService $jobfairPersonalJopApplyService,        RecuperateApplyService $recuperateApplyService    )    {        $this->ResumeService                  = $ResumeService;        $this->ResumePrivacyService           = $ResumePrivacyService;        $this->companyInterviewService        = $companyInterviewService;        $this->personalJobsApplyService       = $personalJobsApplyService;        $this->memberPointService             = $memberPointService;        $this->personFavoriteService          = $personFavoriteService;        $this->memberInfoService              = $memberInfoService;        $this->memberService                  = $memberService;        $this->smsService                     = $smsService;        $this->emailService                   = $emailService;        $this->payService                     = $payService;        $this->jobfairPersonalJopApplyService = $jobfairPersonalJopApplyService;        $this->recuperateApplyService         = $recuperateApplyService;    }    public function jobsInterview(Request $request)    {        $resume    = $this->ResumeService->myResumeAjax(auth('web-member')->user());        $interview = $this->companyInterviewService->getInterviewByUid(auth('web-member')->user(), $request->all());        if ($request->ajax()) {            if ($interview['interview']->lastPage() < $interview['interview']->currentPage()) {                return response()->json(['status' => 0]);            }            return response()->json([                'status' => 1,                'data'   => view('mobile.app.person.ajax_tpl.ajax_jobs_interview',                    [                        'resume'    => $resume,                        'interview' => $interview['interview'],                    ])->render(),                'params' => $interview['params'],            ]);        }        return view('mobile.app.person.jobs_interview', [            'resume'    => $resume,            'interview' => $interview['interview'], 'count' => $interview['count'], 'params' => $interview['params'],            'wap_title' => '面试邀请']);    }    public function delInterview(Request $request)    {        $res = $this->companyInterviewService->delInterview($request->id, auth('web-member')->user());        if ($res) {            return $this->sendSuccessResponse('删除成功');        } else {            return $this->sendErrorResponse('删除失败');        }    }    public function setInterview(Request $request)    {        $res = $this->companyInterviewService->setInterview($request->id, auth('web-member')->user());        if ($res) {            return $this->sendSuccessResponse('设置成功');        } else {            return $this->sendErrorResponse('设置失败');        }    }    public function attentionMe(Request $request)    {        $resume = $this->ResumeService->myResumeAjax(auth('web-member')->user());        $res    = $this->ResumeService->attentionMe(auth('web-member')->user(), $request->all());        if ($request->ajax()) {            if ($res['content']->lastPage() < $res['content']->currentPage()) {                return response()->json(['status' => 0]);            }            return response()->json([                'status' => 1,                'data'   => view('mobile.app.person.ajax_tpl.ajax_attention_me',                    [                        'resume'  => $resume,                        'content' => $res['content'],                    ])->render(),                'params' => $res['params']]);        }        return view('mobile.app.person.attention_me', [            'content'   => $res['content'],            'resume'    => $resume,            'params'    => $res['params'],            'wap_title' => '谁看过我',        ]);    }    public function delAttention()    {        $res = $this->ResumeService->delAttention(request()->id, auth('web-member')->user());        if ($res) {            return $this->sendSuccessResponse('删除成功');        } else {            return $this->sendErrorResponse('删除失败');        }    }    public function jobsApply(Request $request)    {        $resume    = $this->ResumeService->myResumeAjax(auth('web-member')->user());        $applyJobs = $this->personalJobsApplyService->getJobsApply(auth('web-member')->user(), $request->all());        if ($request->ajax()) {            if ($applyJobs['applyJobs']->lastPage() < $applyJobs['applyJobs']->currentPage()) {                return response()->json(['status' => 0]);            }            return response()->json([                'status' => 1,                'data'   => view('mobile.app.person.ajax_tpl.ajax_jobs_apply',                    [                        'resume'    => $resume,                        'applyJobs' => $applyJobs['applyJobs'],                    ])->render(),                'params' => $applyJobs['params']]);        }        return view('mobile.app.person.jobs_apply', [            'resume'    => $resume,            'applyJobs' => $applyJobs['applyJobs'],            'count'     => $applyJobs['count'],            'params'    => $applyJobs['params'],            'wap_title' => '求职反馈',        ]);    }    public function order_list(Request $request)    {        $res = $this->memberPointService->order_list(auth('web-member')->user(), $request->all());        if ($request->ajax()) {            if ($res['order']->lastPage() < $res['order']->currentPage()) {                return response()->json(['status' => 0]);            }            return response()->json([                'status' => 1,                'data'   => view('mobile.app.person.ajax_tpl.ajax_order_list',                    [                        'order' => $res['order'],                    ])->render(),                'params' => $res['params']]);        }        return view('mobile.app.person.service.order_list', [            'order'     => $res['order'],            'params'    => $res['params'],            'wap_title' => '我的订单',        ]);    }    public function order_detail(Request $request)    {        $res = $this->memberPointService->order_detail($request->id, auth('web-member')->user());        return view('mobile.app.person.service.order_detail', ['order' => $res, 'wap_title' => '订单详情']);    }    public function order_cancel(Request $request)    {        $res = $this->memberPointService->order_cancel($request->id, auth('web-member')->user());        if ($res) {            return $this->sendSuccessResponse('取消成功!');        } else {            return $this->sendErrorResponse('取消失败!');        }    }    public function jobsF(Request $request)    {        $res     = $this->personFavoriteService->jobsF(auth('web-member')->user());        $resumes = $this->ResumeService->myResumeAjax(auth('web-member')->user());        if ($request->ajax()) {            if ($res->lastPage() < $res->currentPage()) {                return response()->json(['status' => 0]);            }            return response()->json([                'status' => 1,                'data'   => view('mobile.app.person.ajax_tpl.ajax_jobsF', ['content' => $res])->render()]);        }        return view('mobile.app.person.jobs_favorites', ['content' => $res, 'resumes' => $resumes, 'wap_title' => '职位收藏夹']);    }    public function resumeApply()    {        $res = $this->personFavoriteService->resumeApply(request()->all(), auth('web-member')->user());        if ($res['code'] == 1) {            return $this->sendSuccessResponse($res['info']);        } else {            return $this->sendErrorResponse($res['info']);        }    }    public function resumeApplyAjax()    {        $res        = $this->ResumeService->myResumeAjax(auth('web-member')->user());        $def_resume = Resume::where(['uid' => auth('web-member')->user()->id, 'def' => 1])->first();        $html       = view('mobile.app.person.ajax_tpl.ajax_apply_job', ['resumes' => $res, 'def_resume' => $def_resume])            ->render();        return $this->sendSuccessResponse($html);    }    public function attentionCom(Request $request)    {        $res = $this->personFavoriteService->attentionCom(auth('web-member')->user());        if ($request->ajax()) {            if ($res->lastPage() < $res->currentPage()) {                return response()->json(['status' => 0]);            }            return response()->json([                'status' => 1,                'data'   => view('mobile.app.person.ajax_tpl.ajax_attention_com', ['content' => $res])->render()]);        }        return view('mobile.app.person.attention_com', ['content' => $res, 'wap_title' => '关注的企业']);    }    public function shieldCompany()    {        $shieldCompany = $this->ResumePrivacyService->getShieldCompany(auth('web-member')->user());        return view('mobile.app.person.shield_company', ['shieldCompany' => $shieldCompany, 'wap_title' => '屏蔽企业']);    }    public function saveShieldCompany()    {        $res = $this->ResumePrivacyService->saveShieldCompany(request()->company_id, auth('web-member')->user());        if ($res) {            return $this->sendSuccessResponse($res);        } else {            return $this->sendErrorResponse('企业关键字添加失败', '', 400);        }    }    public function memberSafe()    {        return view('mobile.app.person.per_security', [            'member'    => $this->memberInfoService->memberSafe(auth('web-member')->user()),            'wap_title' => '账号安全',        ]);    }    public function bind()    {        $qq     = $this->memberInfoService->qq(auth('web-member')->user(), [1]);        $weixin = $this->memberInfoService->weixin(auth('web-member')->user(), [2, 3, 4]);        return view('mobile.app.person.per_binding', ['wap_title' => '账号绑定', 'qq' => $qq, 'weixin' => $weixin]);    }    public function perSecTel()    {        return view('mobile.app.person.per_security_tel', ['wap_title' => '手机认证']);    }    public function mobileAudit(PersonValidatorRequest $request)    {        $mobile = trim(request()->mobile);        $id     = trim(request()->id);        if (!$this->memberService->findByField($id, $mobile)->isEmpty()) {            return $this->sendErrorResponse('该手机已经认证!', '', 400);        }        $this->smsService->sendAuthSms($mobile, 'sms_auth_check');        return response()->json(['code' => 1]);    }    public function mobileAuditCode(PersonValidatorRequest $request)    {        $mobile     = trim(request()->mobile);        $verifycode = trim(request()->verifycode);        $res        = $this->smsService->checkAuthSms($mobile, 'sms_auth_check', $verifycode);        if (!$res) {            return $this->sendErrorResponse('验证码错误!', '', 400);        }        $res = $this->memberInfoService->mobileAuditCode($mobile);        if ($res['code'] == 1) {            return $this->sendSuccessResponse($res['points']);        } else {            return $this->sendErrorResponse('手机认证失败!', '', 400);        }    }    public function perSecEmail()    {        return view('mobile.app.person.per_security_email', ['wap_title' => '邮箱认证']);    }    public function emailAudit()    {        $email = trim(request()->email);        $id    = trim(request()->id);        if (!$this->memberService->findByEmail($id, $email)->isEmpty()) {            return $this->sendErrorResponse('该邮箱已经认证!', '', 400);        }        $this->emailService->setAuthTag('personal')            ->setCallback('App\Services\Person\MemberInfoService', 'sendAuthEmailHook', [$email, auth('web-member')->user()])            ->sendAuthMail($email, EmailService::TEMPLATE_VALIDATION);        return response()->json(['status' => 1]);    }    public function perSecPwd()    {        return view('mobile.app.person.per_security_pwd', ['wap_title' => '修改密码']);    }    public function passwordInfo(PersonValidatorRequest $request)    {        $res = $this->memberInfoService->updatePassword($request->oldpassword,            $request->password, $request->password1, auth('web-member')->user());        return response()->json($res);    }    public function memberLog(Request $request)    {        $content = $this->memberInfoService->getMemberLog(auth('web-member')->user(), $request->route());        if ($request->ajax()) {            if ($content['last_page'] < $content['current_page']) {                return response()->json(['status' => 0]);            }            return response()->json([                'status' => 1,                'data'   => view('mobile.app.person.ajax_tpl.ajax_member_log', ['content' => $content])->render()]);        }        return view('mobile.app.person.per_security_log')->with(['content' => $content, 'wap_title' => '会员登录日志']);    }    public function pms(Request $request)    {        if ($request->type == 1) {            $res = $this->memberInfoService->mobileMsg(auth('web-member')->user());            if ($request->ajax()) {                if ($res->lastPage() < $res->currentPage()) {                    return response()->json(['status' => 0]);                }                return response()->json([                    'status' => 1,                    'data'   => view('mobile.app.person.ajax_tpl.ajax_pms_type', ['pms' => $res])->render()]);            }        } else {            $res = $this->memberInfoService->pms(auth('web-member')->user());            if ($request->ajax()) {                if ($res->lastPage() < $res->currentPage()) {                    return response()->json(['status' => 0]);                }                return response()->json([                    'status' => 1,                    'data'   => view('mobile.app.person.ajax_tpl.ajax_pms', ['pms' => $res])->render()]);            }        }        return view('mobile.app.person.pms_list', ['pms' => $res, 'wap_title' => '消息提醒']);    }    public function pmsShow(Request $request)    {        $res = Pms::find($request->id);        return view('mobile.app.person.pms_show', ['pms' => $res, 'wap_title' => '系统消息']);    }    public function feedback()    {        return view('mobile.app.person.feedback', ['wap_title' => '意见反馈']);    }    public function feedbackCreate(Request $request)    {        $res = $this->memberInfoService->feedbackCreate($request->all());        if ($res) {            return $this->sendSuccessResponse('提交成功!');        } else {            return $this->sendErrorResponse('提交失败!', '', 400);        }    }    public function msg(Request $request)    {        $res = $this->memberInfoService->mobileMsgShow(            auth('web-member')->user(), $request->parent_id);        if ($request->ajax()) {            if ($res['res']->lastPage() < $res['res']->currentPage()) {                return response()->json(['status' => 0]);            }            return response()->json([                'status' => 1,                'data'   => view('mobile.app.person.ajax_tpl.ajax_msg_show', ['msg' => $res['res']])->render()]);        }        return view('mobile.app.person.msg', ['msg' => $res['res'], 'company' => $res['company'], 'wap_title' => '留言咨询']);    }    public function personJobfair(Request $request)    {        $jobApply = $this->jobfairPersonalJopApplyService->personJobfair();        if ($request->ajax()) {            if ($jobApply['interview']->lastPage() < $jobApply['interview']->currentPage()) {                return response()->json(['status' => 0]);            }            return response()->json([                'status' => 1,                'data'   => view('mobile.app.person.ajax_tpl.jobfair',                    ['content' => $jobApply['interview']])->render()]);        }        return view('mobile.app.person.service.jobfair', ['content' => $jobApply['interview'], 'wap_title' => '招聘会']);    }    public function msgSend(Request $request)    {        $res = $this->memberInfoService->msgSend(auth('web-member')->user(), request()->all());        if ($res) {            return $this->sendSuccessResponse('留言成功!');        } else {            return $this->sendErrorResponse('留言失败!', '', 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 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 pay(Request $request)    {        $order   = $this->memberPointService->pay($request->all(), auth('web-member')->user());        $tradeNo = $this->payService->getTradeNo($order['order']->id);        $res     = $this->memberPointService->updateOrder($tradeNo, $order['input'], $order['order'], $request->route());        if ($res['code'] == 'wechat') {            if ($res['type'] == 'wap') {                return $res['tradeCode'];            } elseif ($res['type'] == 'official') {                return json_encode(['tradeCode' => $res['tradeCode']]);            } else {                return json_encode(['tradeCode' => $res['tradeCode'], 'tradeNo' => $res['tradeNo']]);            }        } else {            return $res['tradeCode'];        }    }    public function payStatus(Request $request)    {        $res = $this->memberPointService->payStatus($request->tradeNo);        if ($res) {            return json_encode(['code' => 1]);        } else {            return json_encode(['code' => 0]);        }    }    public function payAgain(Request $request)    {        $res = $this->memberPointService->payAgain(request()->id, $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 recuperate(Request $request)    {        $res = $this->recuperateApplyService->list($request->input('status',null),$request->input('year',null), 8, ['recuperate']);//        $year_arr=RecuperateTime::where('uid',auth('web-member')->id())->orderBy('year', 'DESC')->select('id','year','price')->get();        if ($request->ajax()) {            if ($res->count() == 0) {                return response()->json(['status' => 0]);            }            return response()->json([                'status' => 1,                'data'   => view('mobile.app.person.ajax_tpl.ajax_recuperate', ['order' => $res['order']])->render(),            ]);        }        $return_data = [            'back_url'=>route('mobile.person.index'),            'list'   => $res,            'params' => $request->all(),        ];        return view('mobile.app.person.recuperate', $return_data);    }    public function audit_qx(Request $request)    {        $id     = $request->id;        if (empty($id)) {            return response()->json(['status'=>0,'msg'=>'数据异常']);        }        $uid = auth('web-member')->id();        $result = RecuperateApply::where('id', '=', $id)->update(['status' => 3]);        $auditData = array(            'type' => 1,            'admin_id' => $uid,            'sid' => $uid,            'content' => "取消活动"        );        RecuperateLog::create($auditData);        if ($result) {            return response()->json(['status'=>1,'msg'=>'活动已取消']);        } else {            return response()->json(['status'=>0,'msg'=>'该信息不存在或已审核']);        }    }    /**     * 中奖列表     */    public function lottery(Request $request)    {        $size = 8;        $user_id = auth('web-member')->user()->id;        $rst  = LotteryWin::where('member_id',$user_id)->orderBy('status','asc')->orderBy('created_at','desc')->paginate($size);        if ($request->ajax()) {            if ($rst->lastPage() < $rst->currentPage()) {                return response()->json(['status' => 0]);            }            return response()->json(['status' => 1, 'data' => view('mobile.app.person.ajax_tpl.ajax_lottery', ['list' => $rst])->render()]);        }        $mobile_dropload = false;        if ($rst->total() > $size) {            $mobile_dropload = true;        }        $return_data = [            'list'            => $rst,            'current_url'     => \Illuminate\Support\Facades\Request::getRequestUri(),            'wap_title'       => '中奖列表',            'mobile_dropload' => $mobile_dropload,        ];        return view('mobile.app.person.lottery', $return_data);    }}
 |