jobfairPersonSignedRepository = $jobfairPersonSignedRepository;
        $this->jobfairPersonalJobsApplyRepository = $jobfairPersonalJobsApplyRepository;
        $this->jobfairPersonalJopApplyService = $jobfairPersonalJopApplyService;
        $this->jobfairPutJobRepository = $jobfairPutJobRepository;
        $this->resumeRepository = $resumeRepository;
        $this->memberInfoService = $memberInfoService;
        $this->CategoryService = $CategoryService;
        $this->memberInfoRepository = $memberInfoRepository;
        $this->companyRepository = $companyRepository;
        $this->resumeService = $resumeService;
        $this->searchService = $searchService;
        $this->companyDownResumeRepository = $companyDownResumeRepository;
        $this->membersSetmealService = $membersSetmealService;
        $this->companyDownResumeService = $companyDownResumeService;
        $this->feedbackService = $feedbackService;
        $this->jobsService = $jobsService;
        $this->companyService = $companyService;
        $this->setmealIncrementsService = $setmealIncrementsService;
        $this->viewDownApplyRepository = $viewDownApplyRepository;
        $this->personalJobsApplyRepository = $personalJobsApplyRepository;
        $this->jobfairPutJobService = $jobfairPutJobService;
    }
    public function index()
    {
        return view('app.hardware.pad.interview.index',['title'=>'面试管理']);
    }
    //面试邀请列表(签到的人)
    public function resume(Request $request)
    {
        $jobfair_id = session('floorplan_stands.jobfair_id');
        $user = auth('web-company')->user();
        $whereResumes = array_filter($request->all());
        foreach ($whereResumes as $key=>$value) {
            if($value == 'null')
            {
                unset($whereResumes[$key]);
            }
        }
        $whereApply= [];
        if(isset($whereResumes['page'])){
            unset($whereResumes['page']);
        }
        $is_interview = '';
        if(isset($whereResumes['is_interview'])){
            $is_interview = $whereResumes['is_interview'];
            unset($whereResumes['is_interview']);
            $whereApply = [
                'company_id'=>$user->id,
                'jobfair_id'=>$jobfair_id,
            ];
        }
        $result = $this->jobfairPersonSignedRepository->getSignedInterview(['jobfairid'=>$jobfair_id,'utype'=>2],$whereResumes,$whereApply,$is_interview);
        $where = [
            'jobfair_id'=>$jobfair_id,
            'company_id'=>$user->id,
        ];
        foreach ($result as $key=>&$value){
            $where['personal_uid'] = $value->uid;
            $value['flag'] =  $this->jobfairPersonalJobsApplyRepository->interviewFind($where);
            //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;    //不显示
            } else {
                $value->resumes->photosrc = upload_asset($value->resumes->memberInfos->images);  //显示
            }
        }
        $param_array = array('education'=>'','experience'=>'','sex'=>'','nature'=>'','is_interview'=>'');
        $params = array_merge($param_array,$request->all());
        if($request->ajax())
        {
            if ($result->isNotEmpty()) {
                return response()->json(['status'=>1,'data'=>view('app.hardware.pad.interview.ajax_resume_list', ['result'=>$result])->render()]);
            }
            return response()->json(['status'=>0]);
        }
        return view('app.hardware.pad.interview.resume',['title'=>'邀约面试','result' => $result,'params'=>$params]);
    }
    //投递或邀请操作
    public function invitation(Request $request)
    {
        $user = auth('web-company')->user();
        if ($request->method() == 'POST') {
            $data['jobs_id'] = $request->input('job_id');
            $this->jobfairPutJobService->isOwn( $data['jobs_id'],$user->id);
            $data['personal_uid'] = $request->input('personal_uid');
            $data['company_id'] = $user->id;
            $data['position_id'] = session('floorplan_stands.id');
            $data['jobfair_id'] = session('floorplan_stands.jobfair_id');
            $data['is_apply'] = $request->input('is_apply',2);
            if($res = $this->jobfairPersonalJobsApplyRepository->applyFind($data)) {
                return response()->json(['status' => 0, 'msg' => '该用户已邀请或投递过该岗位']);
            }
            //获取他的默认简历id
            if($request->input('resume_id')) {
                $data['resume_id'] = $request->input('resume_id');
                $data['is_apply'] = 1;
            }else{
                $reusme = $this->resumeRepository->getResumeInfo(['uid'=>$data['personal_uid']]);
                $data['resume_id'] = $reusme->id;
                $data['is_apply'] = 2;
            }
            $data['type'] = 2;
            if($this->jobfairPersonalJobsApplyRepository->interviewAdd($data)) {
                return response()->json(['status' => 1, 'msg' => '邀请成功']);
            }
            return response()->json(['status' => 0, 'msg' => '邀请失败']);
        }
        //获取在招职位
        $exid = session('floorplan_stands.exid');
        $jobfair_id = session('floorplan_stands.jobfair_id');
        $jobs = $this->jobfairPutJobRepository->getJobfairJob($exid,$jobfair_id);
        return response()->json(['status'=>1,'data'=>['html'=>view('app.hardware.pad.interview.ajax_resume', ['jobs'=>$jobs])->render()]]);
    }
    //刷二维码或身份证
    public function delivery()
    {
        return view('app.hardware.pad.interview.delivery',['title'=>'接收简历']);
    }
    /**
     * 简历详情
     * @param $id
     * @param Request $request
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
     * @throws \App\Exceptions\ResponseException
     */
    public function resumeShow($id,Request $request){
        /**
         * type:
         * 1:正常流程,判断是否可以下载、邀请面试
         * 2:直接邀请,不判断是否下载(已收到简历跳转)
         * 3:直接邀请,不判断是否下载(面试邀请跳转)
         * 4:只显示详情,不给任何操作
         * 5:直接邀请,不判断是否下载(已收到简历跳转)
         */
        $type = $request->input('type');
        $res = $this->resumeService->padResumeShow($id,$type, '', getUser());
        $this->putSeoData('resume', $res['resume']);
        //获取在招职位
        $exid = session('floorplan_stands.exid');
        $jobfair_id = session('floorplan_stands.jobfair_id');
        $jobs = $this->jobfairPutJobRepository->getJobfairJob($exid,$jobfair_id);
        $html = '';
        if(count($jobs) == 1) {
            $job_id = current($jobs->toArray())['id'];
        } elseif(count($jobs)>1){
            $job_id = 0;
            foreach ($jobs as $val){
                $html .= "";
            }
        }else{
            $job_id = -1;
        }
        $is_down = false;
        if($type == 1)
        {
            $user = auth('web-company')->user();
            if($this->companyDownResumeRepository->getDownResume(['resume_id'=>$id,'company_uid'=>$user->id]))
            {
                $is_down = true;
            }else {
                $is_down = false;
                $member_setmeal =  $this->membersSetmealService->getUserSetmeal($user, '1');
                if($member_setmeal->show_apply_contact == 1)
                {
                    $has = $this->personalJobsApplyRepository->checkJobsApply($id, $user->id);
                    if ($has) {
                        $is_down = true;
                    }
                }
            }
        }
        return view('app.hardware.pad.interview.resume_show', ['content'=>$res,'resume'=>$res['resume'],'html'=>$html,'job_id'=>$job_id,'type'=>$type,'is_down'=>$is_down]);
    }
    public function deliveryQrcode(Request $request){
        $res =  hashid_decode($request->hashid);
        if(!$res){
            return response()->json(['status'=>-1, 'msg'=>'二维码出错,请刷新重试...']);
        }
        $info = $this->memberInfoService->getInfo(['uid' => $res['id']]);
        if(!$info){
            return response()->json(['status'=>-1, 'msg'=>'二维码出错,请刷新重试...']);
        }
        $resumes = $this->resumeRepository->getSuccessResume($info['uid'],getResumeStatus());
        if($resumes->isEmpty()){
            $wxcode = '
暂无您的简历信息,请扫码创建简历!
).')
';
        foreach ($resumes as $value) {
            $html .= '- 
                            ' . $value['title'] . '        ' . $value['intention_jobs'] .' 经验:' . $value['experience_cn'] . '    学历:' . $value['education_cn'] . '    所在地区:' . $value['district_cn'] . '    更新时间:' . substr($value['updated_at'],0,10) . ' 
';
        }
        $html .= '
';
        return response()->json(['status'=>1, 'msg'=>'成功','data'=>$resumes,'html'=>$html]);
    }
    public function deliveryCard(Request $request){
        $id_card = $request->cardId;
        $info = $this->memberInfoService->getInfo( ['id_card' => $id_card]);
        $wxcode = '暂无您的简历信息,请扫码创建简历!
).')
';
        foreach ($resumes as $value) {
            $html .= '- 
                            ' . $value['title'] . '        ' . $value['intention_jobs'] .' 性别:' . $value['sex_cn'] . '    经验:' . $value['experience_cn'] . '    学历:' . $value['education_cn'] . '    期望地区:' . $value['district_cn'] . '    更新时间:' . $value['updated_at'] . ' 
';
        }
        $html .= '
';
        return response()->json(['status'=>1, 'msg'=>'成功','data'=>$resumes,'html'=>$html]);
    }
    public function search(Request $request)
    {
        $data = array_filter($request->all());
        if(isset($data['page'])){
            $page = $data['page'];
            unset($data['page']);
        }
        foreach ($data as $key=>$value)
        {
            if($value == 'null')
            {
                unset($data[$key]);
            }else{
                $where[] =  array($key,'=',$value);
            }
        }
        $order_by = array('stime'=>'desc', 'updated_at'=>'desc');
        if (config('aix.personal_set.per_set.show_set.resume_display')=='1') {
            $where[] = array('audit','=','2');
        } else {
            $where[] = array('audit','<>','0');
        }
        $where[] = array('display','=',1);
        $where[] = array('subsite_ids','=',get_subsite_id());
        $list = $this->searchService->search('Resume',$where,$order_by,'',10,$page ?? 1);
        $user = auth('web-company')->user();
        $member_setmeal =  $this->membersSetmealService->getUserSetmeal($user, '1');
        foreach ($list as &$value) {
            if($this->companyDownResumeRepository->getDownResume(['resume_id'=>$value->id,'company_uid'=>$user->id]))
            {
                $value->is_down = true;
            }else {
                $value->is_down = false;
                if($member_setmeal->show_apply_contact == 1)
                {
                    $has = $this->personalJobsApplyRepository->checkJobsApply($value->id, $user->id);
                    if ($has) {
                        $value->is_down = true;
                    }
                }
            }
            //1.照片为空
            //2.照片主动不显示
            //3.照片审核不通过
            //4.先审核后显示:照片不是审核通过的(不等于1)
            $avatar_default = public_data_path('/data/upload/resource/no_photo_female.png');
            if ($value->memberInfos->sex == 1) {
                $avatar_default = public_data_path('/data/upload/resource/no_photo_male.png');
            }
            if ($value->memberInfos->images == '' || $value->memberInfos->display_images == 2 || $value->memberInfos->photo_audit == 0 || (config('aix.personal_set.per_set.show_set.resume_img_display') == 1 && $value->memberInfos->photo_audit != 2)) {
                $value->photosrc = $avatar_default;    //不显示
            } else {
                $value->photosrc = upload_asset($value->memberInfos->images);  //显示
            }
        }
        $param_array = array('education'=>'','experience'=>'','sex'=>'','nature'=>'');
        $params = array_merge($param_array,$request->all());
        if($request->ajax())
        {
            if ($list->isNotEmpty()) {
                return response()->json(['status'=>1,'data'=>view('app.hardware.pad.interview.ajax_search_list', ['list'=>$list])->render()]);
            }
            return response()->json(['status'=>0]);
        }
        return view('app.hardware.pad.interview.search',['title'=>'人才搜索','params'=>$params,'list'=>$list]);
    }
    public function searchDown(Request $request)
    {
        $resume_id = $request->input('rid');
        if (!$resume_id) {
            return response()->json(['status'=>0, 'msg'=>'请选择简历!']);
        }
        $rid = is_array($resume_id)?$resume_id:explode(",", $resume_id);
        $resume_num =count($rid);
        $user = auth('web-company')->user();
        $member_setmeal =  $this->membersSetmealService->getUserSetmeal($user, '1');
        if ($request->method() == 'POST') {
            $addarr['rid'] = $rid;
            $rst = $this->companyDownResumeService->addDownResume($addarr, $user, $member_setmeal);
            if (array_get($rst, 'status')==1) {
                if ($resume_num == 1) {
                    if ($member_setmeal->download_resume > 0) {
                        $this->membersSetmealService->actionUserSetmeal($user->id, 'download_resume', 2);   //修改会员套餐信息中的下载简历数量
                        $log_value = '下载简历【'.array_get($rst, 'msg')->resume_name.'】(简历id:'.$addarr['rid'][0].'),消耗简历下载数:1,套餐剩余:'.($member_setmeal->download_resume-1);
                        //添加会员日志
                        $member_log = array(
                            'uid' =>$user->id,
                            'utype' =>1,
                            'username' => $user->username,
                            'ip' => ip2long($request->getClientIp()),
                            'log_address'=>'本机地址'
                        );
                        $this->feedbackService->addMembersLog($member_log, '1012', $log_value);
                    }
                }
            }
            return response()->json($rst);
        } else {
            //判断是否开通会员服务
            if (!$member_setmeal) {
                return response()->json(['status'=>0, 'msg'=>'您还没有开通服务,请开通!']);
            }
            //判断服务是否到期
            if ($member_setmeal->expire == 1) {
                return response()->json(['status'=>0, 'msg'=>'您的服务已经到期,请重新开通!']);
            }
            //后台简历下载设置判断
            if (config('aix.personal_set.per_set.resume_download_set.down_resume_limit') == 1) {
                //判断企业是否有通过审核的职位(已登录且有发布职位的企业)
                $jobs_num = $this->jobsService->getAuditJobsNum($user->id);
                if ($jobs_num==0) {
                    return response()->json(['status'=>0, 'msg'=>'你没有发布职位或职位审核未通过导致无法下载简历!']);
                }
            } elseif (config('aix.personal_set.per_set.resume_download_set.down_resume_limit') == 3) {
                //判断是否是认证企业(已认证企业)
                $company_info = $this->companyService->getInfoById($user);
                if ($company_info && $company_info->audit != 1) {
                    return response()->json(['status'=>0, 'msg'=>'你的营业执照未通过认证导致无法下载简历!']);
                }
            }
            if ($member_setmeal->download_resume_max > 0) {     //判断当天简历下载数量是否已达上限
                $downwhere = array(
                    array('down_addtime','>=',strtotime('today')),
                    array('down_addtime','<',strtotime('tomorrow')),
                    array('company_uid','=',$user->id)
                );
                $downnum = $this->companyDownResumeService->getCompanyDownResumeNum($downwhere);        //获取当天企业已下载简历数
                if ($resume_num>1 && $resume_num+$downnum > $member_setmeal->download_resume_max && $downnum < $member_setmeal->download_resume_max) {
                    return response()->json(['status'=>0, 'msg'=>'您今天剩余的下载简历数量不足,请选择单个简历下载!']);
                } elseif ($downnum>= $member_setmeal->download_resume_max) {
                    return response()->json(['status'=>0, 'msg'=>'您今天已下载 '.$downnum.' 份简历,已达到每天下载上限,请先收藏该简历,明天继续下载。']);
                }
            }
            $mode = 'setmeal';
            if ($member_setmeal->download_resume == 0) {    //套餐中简历下载数已用完
                return response()->json(['status'=>0, 'msg'=>'您套餐中剩余的下载简历数量不足,请升级套餐后继续下载!']);
            }
            $view_data = array();
            $free_time = $member_setmeal->download_resume;
            $view_data['free_time'] = $free_time;
            $view_data['resume_num'] = $resume_num;
            $view_data['resume_id'] = implode(",", $rid);
            $view_data['uid'] = $user->id;
            $view_data['is_free'] = $member_setmeal->is_free;
            $view_data['my_setmeal'] = $member_setmeal;
            $view_data['to_detail'] = $request->input('to_detail', '');
            $max_discount = $this->setmealIncrementsService->getMaxDiscount('download_resume');
            $view_data['max_discount'] = $max_discount?$max_discount:0;
            $view_data['mode'] = $mode;
            $html =  view('mobile.app.content.resume.ajax_resume_download', $view_data)->render();
            $return_data = array( 'status'=>1, 'html' => $html,'params'=>$view_data);
            return response()->json($return_data);
        }
    }
    public function manage(Request $request)
    {
        $user = auth('web-company')->user();
        $status = $request->input('status','');
        if($status == 1){
            $where = [
                'jobfair_id'=>session('floorplan_stands.jobfair_id'),
                'type'=>2,
                'company_id'=>$user->id
            ];
        }elseif($status == 2){
            $where = [
                'type'=>0,
                'company_id'=>$user->id
            ];
        }else{
            $where = [
                'company_id'=>$user->id
            ];
        }
        $list = $this->viewDownApplyRepository->getResult($where);
        foreach($list 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;
            }
        }
        $params = array('status'=>$status);
        if($request->ajax())
        {
            if ($list->isNotEmpty()) {
                return response()->json(['status'=>1,'data'=>view('app.hardware.pad.interview.ajax_manage_list', ['list'=>$list])->render()]);
            }
            return response()->json(['status'=>0]);
        }
        return view('app.hardware.pad.interview.manage',['title'=>'简历管理','list'=>$list,'params'=>$params]);
    }
    public function manageDelete(Request $request)
    {
        $id = $request->id;
        $type = $request->type;
        $user = $this->getLoginUser();
        if($type == 0)
        {
            $downResume = $this->companyDownResumeRepository->getDownResume(['id'=>$id]);
            if(!$downResume)
            {
                throw new ResponseException('参数错误!');
            }
            if($downResume->company_uid != $user->id)
            {
                throw new ResponseException('抱歉,您只能操作自己的招聘会职位!');
            }
            if($this->companyDownResumeRepository->delete($id))
            {
                return response()->json(['status'=>1, 'msg'=>'删除成功']);
            }
            return response()->json(['status'=>0, 'msg'=>'删除失败']);
        }else {
            $this->jobfairPersonalJopApplyService->isComOwn($id,$user);
            if($this->jobfairPersonalJobsApplyRepository->delete(['id'=>$id]))
            {
                return response()->json(['status'=>1, 'msg'=>'删除成功']);
            }
            return response()->json(['status'=>0, 'msg'=>'删除失败']);
        }
    }
}