<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/3/22
 * Time: 10:00
 */

namespace App\Http\Controllers\Web\Hardware\Pad;

use App\Http\Controllers\Web\WebBaseController;
use App\Repositories\MemberPointRepository;
use App\Repositories\MemberSetmealRepository;
use App\Repositories\QueueAutoRefreshRepository;
use App\Repositories\RefreshLogRepository;
use App\Repositories\SetmealRepository;
use App\Repositories\CompanyContactsRepository;
use App\Services\Common\CategoryService;
use App\Services\Jobfair\JobfairPutJobService;
use App\Services\Common\SetmealIncrementsService;
use App\Services\Company\CompanyService;
use App\Services\Company\JobsService;
use App\Services\Company\ServiceService;
use Illuminate\Http\Request;
use App\Services\Jobfair\JobfairService;
use App\Services\Jobfair\JobfairJobsService;
use App\Validators\JobsSaveValidatorRequest;
use App\Repositories\Jobfair\JobfairPutJobRepository;
class PadJobController extends WebBaseController
{
    /**
     * @var JobsService
     */
    protected $jobsService;
    protected $jobsfairPutJobService;
    protected $categoryService;
    protected $companyService;
    protected $memberSetmealRepository;
    protected $setmealIncrementsService;
    protected $refreshLogRepository;
    protected $memberPointRepository;
    protected $setmealRepository;
    protected $companyContactsRepository;
    protected $queueAutoRefreshRepository;
    protected $serviceService;
    protected $subsiteService;
    protected $jobfairService;
    protected $jobfairJobsService;
    protected $jobfairPutJobRepository;

    /**
     * JobsController constructor.
     * @param JobsService $jobsService
     * @param JobfairPutJobService $jobsfairPutJob
     * @param CategoryService $categoryService
     * @param CompanyService $companyService
     * @param $memberSetmealRepository
     * @param $setmealIncrementsService
     * @param $refreshLogRepository
     * @param $memberPointRepository
     * @param $setmealRepository
     * @param $companyContactsRepository
     * @param $queueAutoRefreshRepository
     * @param $serviceService
     * @param $subsiteService
     * @param $jobfairPutJobRepository
     */
    public function __construct(JobsService $jobsService, JobfairPutJobService $jobsfairPutJobService, ServiceService $serviceService, QueueAutoRefreshRepository $queueAutoRefreshRepository, SetmealRepository $setmealRepository,CompanyContactsRepository $companyContactsRepository, MemberPointRepository $memberPointRepository, RefreshLogRepository $refreshLogRepository, CategoryService $categoryService, CompanyService $companyService, MemberSetmealRepository $memberSetmealRepository, SetmealIncrementsService $setmealIncrementsService,JobfairService $jobfairService,JobfairJobsService $jobfairJobsService,JobfairPutJobRepository $jobfairPutJobRepository)
    {
        $this->jobsService = $jobsService;
        $this->jobsfairPutJobService = $jobsfairPutJobService;
        $this->categoryService = $categoryService;
        $this->companyService = $companyService;
        $this->memberSetmealRepository = $memberSetmealRepository;
        $this->setmealIncrementsService = $setmealIncrementsService;
        $this->refreshLogRepository = $refreshLogRepository;
        $this->memberPointRepository = $memberPointRepository;
        $this->setmealRepository = $setmealRepository;
        $this->setmealRepository = $setmealRepository;
        $this->companyContactsRepository = $companyContactsRepository;
        $this->serviceService = $serviceService;
        $this->jobfairService = $jobfairService;
        $this->jobfairJobsService = $jobfairJobsService;
        $this->jobfairPutJobRepository = $jobfairPutJobRepository;
    }

    public function jobsList(Request $request)
    {
        $jobfair_id = session('floorplan_stands.jobfair_id');
        //在招职位
        $where['jobfair_id'] = [$jobfair_id];
        $user = auth('web-company')->user();
        $where1 = ['position_id'=>session('floorplan_stands.id')];
        $jobs = $this->jobsfairPutJobService->jobfairCompany($where,$user,$where1,10);
        $jobs = is_null($jobs) ? [] : $jobs;
        return view('app.hardware.pad.jobs_list', ['jobs' => $jobs]);
    }

    public function edidDisplay(Request $request)
    {
        return $this->jobsfairPutJobService->displayswitch($request->id,$request->display);
    }

    public function jobShow($id){
        $job_info = $this->jobfairService->jobfairShowJob($id);
        return view('app.hardware.pad.jobs_show', ['job_info' => $job_info['jobInfo']]);
    }

    public function jobAdd(Request $request){
        $district = config('aix.system.site_other.site_other.district');
        if($district && substr_count($district,'.') == 1){
            $district .= '.0';
        }elseif ($district && substr_count($district,'.') == 0){
            $district .= '.0.0';
        }
        $user = auth('web-company')->user();
        $contacts = $this->companyContactsRepository->getContacts(['company_id'=>$user->id]);
        $district_cn = get_district_cn($district);
        return view('app.hardware.pad.jobs_add',['contacts'=>$contacts,'district'=>$district,'district_cn'=>$district_cn]);
    }

    public function jobAddSave(JobsSaveValidatorRequest $request)
    {
        $user = auth('web-company')->user()->toArray();
        return $this->jobsfairPutJobService->jobfairJobsSave($request->all(),$user);;
    }

    public function jobEdit(Request $request){
        $job_info = $this->jobsfairPutJobService->jobfairJobsEdit($request->id);
        $page = $request->page ?? 1;
        if(!$job_info){
            return $this->notFount('参数错误');
        }
        $user = auth('web-company')->user();
        $contacts = $this->companyContactsRepository->getContacts(['company_id'=>$user->id]);
        return view('app.hardware.pad.jobs_edit', ['job_info' => $job_info,'page'=>$page,'contacts'=>$contacts]);
    }

    public function jobEditSave(JobsSaveValidatorRequest $request){
        $user = auth('web-company')->user()->toArray();
        return  $this->jobsfairPutJobService->jobfairPutJobsEdit($request,$user);
    }

}