<?php

namespace App\Http\Middleware;

use App\Services\SubsiteService;
use Closure;

/**
 * 分站检查
 * Class SubsiteCheck
 * @package App\Http\Middleware
 * Auth Zhong
 * Date 2019/2/22
 */
class SubsiteCheck
{
    /**
     * @var SubsiteService
     */
    private $subsiteService;

    /**
     * SubsiteCheck constructor.
     * @param SubsiteService $subsiteService
     */
    public function __construct(SubsiteService $subsiteService)
    {
        $this->subsiteService = $subsiteService;
    }

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $subsite_id=$this->subsiteService->getSiteId();
        if ($subsite_id === false) {
            $data=[
                'message'=>"你访问的地址有误,正在为你重新跳转...",
                'jump_url'=>config('app.url'),
                'is_error'=>true,
                'return_page_name'=>"首页",
                'count_down'=>8
            ];
            return response()->view('app.show_message', $data);
        }

        //经济开发区分站
        if ($this->subsiteService->getSubsiteTpl($subsite_id) == 'jkq') {
            if ($request->route()->getName() == 'home') {
                return redirect(route('jkq.home'));
            }
        }

        if (isMobile()) {
            if ($request->route()->getName() == 'home') {
                return redirect(route('mobile.home'));
            }

            if ($request->route()->getName() == 'jobs.company'|| $request->route()->getName() == 'jobs.company.jobs') {
                return redirect(route('mobile.jobs.company', $request->all()));
            }

            //订单列表
            if ($request->route()->getName() == 'service.order.index') {
                return redirect(route('mobile.firm.service.order.index'));
            }

            if ($request->route()->getName() == 'person.order_list') {
                return redirect(route('mobile.person.order_list'));
            }
            //找工作列表页面
            if ($request->route()->getName() == 'jobs') {
                return redirect(route('mobile.jobs'));
            }
            //职位详情页面
            if ($request->route()->getName() == 'jobs.show') {
                return redirect(route('mobile.jobs.show',$request->all()));
            }
            //招人才列表页面
            if ($request->route()->getName() == 'resumes') {
                return redirect(route('mobile.resumes'));
            }
            //简历详情页面
            if ($request->route()->getName() == 'resumes.show') {
                return redirect(route('mobile.resumes.show',$request->all()));
            }
            //招聘会列表页面
            if ($request->route()->getName() == 'jobfair') {
                return redirect(route('mobile.jobfair.index'));
            }
            //招聘会详情页面
            if ($request->route()->getName() == 'jobfair.show.com') {
                return redirect(route('mobile.jobfair.detail',['id'=>$request->id]));
            }
            //参会企业详情页面
            if ($request->route()->getName() == 'jobfair.company') {
                return redirect(route('mobile.company.jobs',$request->all()));
            }
            //参会职位详情页面
            if ($request->route()->getName() == 'jobfair.show.quarters') {
                return redirect(route('mobile.jobfair.jobs.show',['id'=>$request->id]));
            }
            //职场资讯下面的分类列表页面
            if ($request->route()->getName() == 'news.list') {
                return redirect(route('mobile.news.list',['id'=>$request->id]));
            }
            //新闻资讯详情页面
            if ($request->route()->getName() == 'news.show') {
                return redirect(route('mobile.news.show',['id'=>$request->id]));
            }
            //个人会员登录页面
            if ($request->route()->getName() == 'login') {
                return redirect(route('mobile.login'));
            }
            //企业会员登录页面
            if ($request->route()->getName() == 'login.company') {
                return redirect(route('mobile.login.company'));
            }
            //个人注册页面
            if ($request->route()->getName() == 'register.person') {
                return redirect(route('mobile.register.person'));
            }
            //企业注册页面
            if ($request->route()->getName() == 'register.company') {
                return redirect(route('mobile.register.company'));
            }
            //忘记密码页面
            if ($request->route()->getName() == 'password.request') {
                return redirect(route('mobile.password.request'));
            }
            //申述账号页面
            if ($request->route()->getName() == 'appeal') {
                return redirect(route('mobile.appeal'));
            }
            //人才卡
            if ($request->route()->getName() == 'talentcard.index') {
                return redirect(route('mobile.talentcard.index'));
            }
            //线上招聘会
            if ($request->route()->getName() == 'active.jobfair.online_recruit') {
                return redirect(route('mobile.active.recruit'));
            }
        }

        return $next($request);
    }
}