| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382 | <?php/** * Created by PhpStorm. * User: Administrator * Date: 2019/7/31 * Time: 14:58 */namespace App\Http\Controllers\Web\Hardware\Pad;use App\Http\Controllers\Web\WebBaseController;use App\Repositories\MemberPointRepository;use App\Repositories\MemberSetmealRepository;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\ServiceService;use App\Services\Company\JobsService;use App\Services\Jobfair\JobfairCompanyService;use Carbon\Carbon;use Illuminate\Http\Request;use App\Services\Jobfair\JobfairJobsService;use App\Services\Jobfair\JobfairPersonalJopApplyService;use App\Validators\JobsSaveValidatorRequest;use App\Repositories\Jobfair\JobfairPutJobRepository;use App\Repositories\Jobfair\JobfairRepository;use App\Repositories\Jobfair\JobfairPersonalJobsApplyRepository;use App\Repositories\JobsRepository;use Illuminate\Support\Facades\Cache;class RecruitmentController extends WebBaseController{    protected $jobsfairPutJobService;    protected $categoryService;    protected $companyService;    protected $memberSetmealRepository;    protected $setmealIncrementsService;    protected $refreshLogRepository;    protected $memberPointRepository;    protected $setmealRepository;    protected $companyContactsRepository;    protected $serviceService;    protected $subsiteService;    protected $jobfairJobsService;    protected $jobfairRepository;    protected $jobfairPutJobRepository;    protected $jobfairPersonalJobsApplyRepository;    protected $jobsRepository;    protected $jobsService;    protected $jobfairCompanyService;    protected $jobfairPersonalJopApplyService;    /**     * JobsController constructor.     * @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 $jobfairRepository     * @param $jobfairPutJobRepository     * @param $jobfairPersonalJobsApplyRepository     * @param $jobsRepository     * @param $jobsService     * @param $jobfairPersonalJopApplyService     */    public function __construct(JobfairPutJobService $jobsfairPutJobService, ServiceService $serviceService, SetmealRepository $setmealRepository,CompanyContactsRepository $companyContactsRepository, MemberPointRepository $memberPointRepository, RefreshLogRepository $refreshLogRepository, CategoryService $categoryService, CompanyService $companyService, MemberSetmealRepository $memberSetmealRepository, SetmealIncrementsService $setmealIncrementsService,JobfairJobsService $jobfairJobsService,JobfairRepository $jobfairRepository,JobfairPutJobRepository $jobfairPutJobRepository,JobfairPersonalJobsApplyRepository $jobfairPersonalJobsApplyRepository,JobsRepository $jobsRepository,JobsService $jobsService,JobfairCompanyService $jobfairCompanyService,JobfairPersonalJopApplyService $jobfairPersonalJopApplyService)    {        $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->jobfairJobsService = $jobfairJobsService;        $this->jobfairRepository = $jobfairRepository;        $this->jobfairPutJobRepository = $jobfairPutJobRepository;        $this->jobfairPersonalJobsApplyRepository = $jobfairPersonalJobsApplyRepository;        $this->jobsRepository = $jobsRepository;        $this->jobsService = $jobsService;        $this->jobfairCompanyService = $jobfairCompanyService;        $this->jobfairPersonalJopApplyService = $jobfairPersonalJopApplyService;    }    public function index()    {        return view('app.hardware.pad.recruitment.index',['title'=>'现场招聘']);    }    public function jobs()    {        return view('app.hardware.pad.recruitment.jobs.index',['title'=>'招聘会职位管理']);    }    public function jobsAdd()    {        $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]);        return view('app.hardware.pad.recruitment.jobs.add',['title'=>'新增职位','contacts'=>$contacts,'district'=>$district]);    }    public function jobsSave(JobsSaveValidatorRequest $request)    {        $user = auth('web-company')->user()->toArray();        return $this->jobsfairPutJobService->jobfairJobsSave($request->all(),$user);    }    public function jobsList()    {        $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);        if(request()->ajax())        {            if ($jobs->isNotEmpty()) {                return response()->json(['status'=>1,'data'=>view('app.hardware.pad.recruitment.jobs.ajax_list', ['jobs'=>$jobs])->render()]);            }            return response()->json(['status'=>0]);        }        return view('app.hardware.pad.recruitment.jobs.list', ['title'=>'已发布职位','jobs' => $jobs]);    }    public function jobsEdit(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.recruitment.jobs.edit', ['title'=>'编辑职位','job_info' => $job_info,'page'=>$page,'contacts'=>$contacts]);    }    public function jobsUpdate(JobsSaveValidatorRequest $request)    {        $user = auth('web-company')->user();        $id = $request->id;        $this->jobfairJobsService->isOwn($id,$user);        return  $this->jobsfairPutJobService->jobfairPutJobsEdit($request,$user->toArray());    }    public function jobsDelete(Request $request)    {        $ids = $request->ids;        if(!$ids) {            return response()->json(['status' => 0, 'msg' => '请选择职位']);        }        $ids = explode(',',$ids);        $user = $this->getLoginUser();        $this->jobsfairPutJobService->isOwn($ids,$user->id);        if($this->jobfairPutJobRepository->delJobs($ids))        {            return response()->json(['status' => 1, 'msg' => '删除成功']);        }        return response()->json(['status' => 0, 'msg' => '删除失败']);    }    public function jobsDisplay(Request $request)    {        $user = $this->getLoginUser();        $this->jobsfairPutJobService->isOwn($request->id,$user->id);        return $this->jobsfairPutJobService->displayswitch($request->id,$request->display);    }    public function jobsDisplayAll(Request $request)    {        $ids = $request->ids;        if(!$ids) {            return response()->json(['status' => 0, 'msg' => '请选择职位']);        }        $ids = explode(',',$ids);        $user = $this->getLoginUser();        $this->jobsfairPutJobService->isOwn($ids,$user->id);        return $this->jobsfairPutJobService->displayAllSwitch($ids,$request->display);    }    //sync 是网络职位    public function jobsSyncList()    {        $job_where = [            ['company_id', '=', auth('web-company')->user()->id],            ['valid', '=', 1]        ];        if (config('aix.companyset.comset.show_set.jobs_display') == 1) {            $job_where[] = array('audit', '=', 1);        } else {            $job_where[] = array('audit', '<>', 3);        }        $list = $this->jobsRepository->getJobsList($job_where);        $exid = session('floorplan_stands.exid');        foreach ($list as &$val) {            $val->education_cn = get_category($val->education) ? get_category($val->education) : '不限';            $val->experience_cn = get_category($val->experience) ? get_category($val->experience) : '不限';            if($val->wage == -1)            {                $val->wage_cn = '面议';            }else{                if($val->wage_max) {                    $val->wage_cn = $val->wage_min .'-'.$val->wage_max.'/月';                }else{                    $val->wage_cn = $val->wage_min . '/月以上';                }            }            if($val->ygxs == 363) {                $val->wage_cn = $val->wage_min .'/小时';            }            $val->nature_cn = get_category($val->nature);            $val['is_sync'] = false;            if($this->jobfairPutJobRepository->isSync(['jobs_name'=>$val['jobs_name']],['exid'=>$exid])) {                $val['is_sync'] = true;            }        }        if(request()->ajax())        {            if ($list->isNotEmpty()) {                return response()->json(['status'=>1,'data'=>view('app.hardware.pad.recruitment.jobs.ajax_sync_list',['list'=>$list])->render()]);            }            return response()->json(['status'=>0]);        }        $res['title']= '网络职位';        $res['list']= $list;        return view('app.hardware.pad.recruitment.jobs.sync',$res);    }    public function jobsSync(Request $request)    {        if(!is_array($request->jobs_id)) {            $request->jobs_id = explode(',',$request->jobs_id);        }        $user = auth('web-company')->user();        $this->jobsService->isOwn( $request->jobs_id,$user);        $this->jobfairCompanyService->isOwn($request->exid, $user);        return $this->jobfairJobsService->jobsToJobfairPad($request,$user->toArray());    }//    public function jobsSyncEdit(Request $request)//    {//        $user = auth('web-company')->user();//        $job_info = $this->jobfairJobsService->jobfairJobsEdit($request->id,$user);//        if(!$job_info){//            return $this->notFount('参数错误');//        }//        $job_info['page'] = $request->page ?? 1;//        $job_info['title'] = '编辑职位库职位';//        return view('app.hardware.pad.recruitment.jobs.sync_edit',$job_info);//    }////////    public function jobsSyncDelete(Request $request)//    {//        return $this->jobfairJobsService->jobfairJobsDel($request);//    }    public function appointment(Request $request)    {        $user = auth('web-company')->user();        $status = $request->input('status','');        $where = [            'company_id'=>$user->id,            'jobfair_id'=>session('floorplan_stands.jobfair_id'),            'type'=>1,            'is_apply'=>1,        ];        $jobfair = $this->jobfairRepository->find(session('floorplan_stands.jobfair_id'));        $holddate_start = date('Y-m-d H:i:s',$jobfair->holddate_start);        if($status == 1){            $where[] = ['created_at','<',$holddate_start];        }elseif($status == 2){            $where[] = ['created_at','>=',$holddate_start];        }        $result = $this->jobfairPersonalJobsApplyRepository->padApplyJobs($where,10);        foreach($result as &$value)        {            //1.照片为空            //2.照片主动不显示            //3.照片审核不通过            //4.先审核后显示:照片不是审核通过的(不等于1)            $avatar_default = public_data_path('/data/upload/resource/no_photo_female.png');            if ($value->resumes->memberInfos->sex == 1) {                $avatar_default = public_data_path('/data/upload/resource/no_photo_male.png');            }            if ($value->resumes->memberInfos->images == '' || $value->resumes->memberInfos->display_images == 2 || $value->resumes->memberInfos->photo_audit == 0 || (config('aix.personal_set.per_set.show_set.resume_img_display') == 1 && $value->resumes->memberInfos->photo_audit != 2)) {                $value->resumes->photosrc = $avatar_default;    //不显示                $value->resumes->photosrc_show = false;            } else {                $value->resumes->photosrc = upload_asset($value->resumes->memberInfos->images);  //显示                $value->resumes->photosrc_show = true;            }            if($value->created_at < $holddate_start)            {                $value->is_network =true;            }else {                $value->is_network =false;            }        }        $params = array('status'=>$status);        if($request->ajax())        {            if ($result->isNotEmpty()) {                return response()->json(['status'=>1,'data'=>view('app.hardware.pad.recruitment.ajax_appointment_list', ['result'=>$result])->render()]);            }            return response()->json(['status'=>0]);        }        return view('app.hardware.pad.recruitment.appointment',['title'=>'预约管理','result' => $result,'params'=>$params]);    }    public function appointmentDelete(Request $request)    {        if(!$request->id)        {            return response()->json(['status' => 0, 'msg' => '请选择预约']);        }        $user = $this->getLoginUser();        $this->jobfairPersonalJopApplyService->isComOwn($request->id,$user);        if($this->jobfairPersonalJobsApplyRepository->delete(['id'=>$request->id]))        {            return response()->json(['status' => 1, 'msg' => '删除成功']);        }        return response()->json(['status' => 0, 'msg' => '删除失败']);    }    public function manage()    {        $user = auth('web-company')->user();        $view = Cache::get('jobfair-'.$user->id);        return view('app.hardware.pad.recruitment.manage',['title'=>'展示模板','view'=>$view]);    }    public function manageSetCache(Request $request)    {        $id = $request->input('id','');        if(!$id)        {            return response()->json(['status' => 0, 'msg' => '请选择模板']);        }        $user = auth('web-company')->user();        $jobfair = $this->jobfairRepository->find(session('floorplan_stands.jobfair_id'));        $holddate_end = date('Y-m-d H:i:s',$jobfair->holddate_end);        $time = Carbon::parse($holddate_end);        Cache::put('jobfair-'.$user['id'], $id,$time);        if(Cache::get('jobfair-'.$user['id'])){            Cache::put(session('floorplan_stands.jobfair_id').'-'.$user['id'], time(),120);            return response()->json(['status' => 1, 'msg' => '设置成功,请刷新']);        }        return response()->json(['status' => 0, 'msg' => '设置失败,请重新设置']);    }    public function refresh()    {        $user = auth('web-company')->user();        Cache::put(session('floorplan_stands.jobfair_id').'-'.$user['id'], time(),120);        if(Cache::get(session('floorplan_stands.jobfair_id').'-'.$user['id'])){            return response()->json(['status' => 1, 'msg' => '刷新成功']);        }        return response()->json(['status' => 0, 'msg' => '刷新失败']);    }}
 |