<?php
namespace App\Http\Controllers\Mobile\Content;

use App\Http\Controllers\Mobile\MobileBaseController;
use App\Services\Company\JobsService;
use Illuminate\Http\Request;
use App\Exceptions\ResponseException;
use App\Services\Company\CompanyService;
use App\Validators\Content\ReportValidatorRequest;

class CompanyController extends MobileBaseController
{
    protected $jobsService;
    protected $companyService;

    /**
     * JobsController constructor.
     * @param $jobsService
     * @param $companyService
     */
    public function __construct(JobsService $jobsService, CompanyService $companyService)
    {
        $this->jobsService = $jobsService;
        $this->companyService = $companyService;
    }
    public function companyShow(Request $request)
    {
        //获取企业信息
        $company_id = $request->input('id');
        $company_info = $this->companyService->getCompanyInfo(array(array('id','=',$company_id)));
        $this->putSeoData('company', $company_info);

        //在招职位
        $jobs_where = array(
            array('company_id','=',$company_info->id),
            array('valid','=',1),
            array('display','=',1)
        );
        $jobs_display = config('aix.companyset.comset.show_set.jobs_display');
        if ($jobs_display == 1) {
            $jobs_where[] = array('audit','=','1');
        } else {
            $jobs_where[] = array('audit','<>','3');
        }
        $jobs = $this->jobsService->getOtherJobs($jobs_where);

        //看过该公司的人还看过(获取相同行业的企业)
        $company_where = array(
            'trade' => $company_info->trade,
            'except_id' =>$company_info->id
        );
        //$other_companys = $this->companyService->getOtherCompanies($company_where, 5);

        $return_data = array(
            'info'=>$company_info,
            'jobs'=>$jobs,
            'user'=> $this->getUser(),
            //'other_companys'=>$other_companys
        );
        //$tpl = $company_info->tpl;
        return view('mobile.app.content.jobs.comshow', $return_data);
    }
    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 companyFocus(Request $request)
    {
        $company_id = $request->input('company_id');
        if (!$company_id) {
            throw new ResponseException('请选择要关注的企业!');
        }

        $rst = $this->companyService->focusCompany($company_id, auth('web-member')->user()->id);
        return response()->json($rst);
    }
    //企业访客统计
    public function addStatistics(Request $request)
    {
        $company_id = $request->input('company_id');
        $rst = $this->companyService->addStatistics($company_id, 0, $this->getUser(), 0, 3);
    }
    //在招职位页面
    public function jobs(Request $request)
    {
        //获取企业信息
        $company_id = $request->input('id');
        $company_info = $this->companyService->getCompanyInfo(array(array('id','=',$company_id)));
        $this->putSeoData('company', $company_info);

        //在招职位
        $jobs_where = array(
            array('company_id','=',$company_info->id),
            array('valid','=',1),
            array('display','=',1)
        );
        $jobs_display = config('aix.companyset.comset.show_set.jobs_display');
        if ($jobs_display == 1) {
            $jobs_where[] = array('audit','=','1');
        } else {
            $jobs_where[] = array('audit','<>','3');
        }
        $jobs = $this->jobsService->getOtherJobs($jobs_where);

        //看过该公司的人还看过(获取相同行业的企业)
        $company_where = array(
            'trade' => $company_info->trade,
            'except_id' =>$company_info->id
        );
        $other_companys = $this->companyService->getOtherCompanies($company_where, 5);

        $return_data = array(
            'info'=>$company_info,
            'jobs'=>$jobs,
            'other_companys'=>$other_companys
        );
        $tpl = $company_info->tpl;
        return view('app.common.tpl_company.'.$tpl.'.company_jobs', $return_data);
    }
}