companyService = $companyService; $this->jobsService = $jobsService; $this->categoryService = $categoryService; $this->searchService = $searchService; } /**2020新春线上招聘会 * @param Request $request * @param int $id * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\JsonResponse|\Illuminate\View\View * @throws \Throwable */ public function online2020(Request $request) { $offset = isset($request->page)?$request->page:0; $limit = 20; $citycategory = $request->input('citycategory'); $trade = $request->input('trade'); $param_array = array('citycategory','trade','nature'); $params= array(); if ($request->all()) { foreach ($request->all() as $k => $v) { if (in_array($k, $param_array) && $v) { $params[$k] = $v; } } } $subsites = Cache::get('subsites_list'); if ($subsites) { if (!array_has($params, 'citycategory')) { if (get_subsite_id() > 0) { $citycategory = $subsites[get_subsite_id()]['district']; } } $is_subsite = 1; } $citys = $this->categoryService->getCitys($citycategory); $companys = DB::table('jobs')->join('companys','jobs.company_id','=','companys.id')->whereRaw("jobs.created_at > '2020-01-01 00:00:00'")->groupBy('jobs.company_id')->select('jobs.company_id')->pluck('company_id')->toArray(); // echo '
';
//
//        var_dump($companys);die;

        $where = array();
        $where[] = array('reg_time', '>', 1577808000);
        $where[] = array('user_status', '=', 1);
        $where[] = array('subsite_id', '=', get_subsite_id());
        $where[] = array('audit','=',1);
        $where[] = array('deleted_at','=',null);
        if(!empty($trade)){
            $where[] = array('trade','=',$trade);
        }
        //$where[] = array('id','in',$companys);
        $order_by = array('id','desc');

        //$list = $this->searchService->search('Company', $where, $order_by, '');

        //$list = DB::table('companys')->where($where)->whereRaw("(district like ? or district like ?)",["%.{$citys['select']['id']}%","%{$citys['select']['id']}.%"])->whereIn('id',$companys)->orderBy('id','desc')->offset($limit*$offset)->limit($limit)->get();
        $list = DB::table('companys')->where($where)->whereIn('id',$companys)->orderBy('id','desc')->offset($limit*$offset)->limit($limit)->get();

//        echo '
';
//
//        var_dump($list);die;

        $more = count($list) >= $limit ? true : false;

//        if ($list->total() >0) {
//            //处理企业信息
//            $list_items = $this->companyService->dealCompanyFields($list->items());
//        } else {
//            $list_items = array();
//        }

        $res = [];
        foreach ($list as $val) {
            $item = array(
                'id'    =>  $val->id,
                'companyname'   =>  $val->companyname,
                'jobs'  =>  []
            );

            //在招职位
            $jobs_where = array(
                array('company_id','=',$val->id),
                array('valid','=',1),
                array('display','=',1),
                array('audit','=',1)
            );

            //$jobs = $this->jobsService->getOtherJobs($jobs_where);
            $jobs = DB::table('jobs')->where($jobs_where)->get();
            if($jobs){
                foreach ($jobs as $value) {
                    $job = array(
                        'id'    =>  $value->id,
                        'jobs_name' =>  $value->jobs_name,
                        'amount'    =>  $value->amount
                    );
                    array_push($item['jobs'],$job);
                }
            }

            array_push($res,$item);
        }

        $filter_where = array(
            'AIX_trade'         => 100,
            'AIX_company_type'  => 100
        );
        $categories = $this->categoryService->getCategories($filter_where);

        if ($request->ajax()) {
            if (count($res)) {
                return response()->json(['status'=>1,'data'=>view('app.active.ajax.ajax_jobfair_com', [
                    'res'           =>  $res,
                    'city'          =>  $citys,
                    'params'        =>  $params,
                    'categories'    =>  $categories,
                    'more'          =>  $more
                ])->render()]);
            }
            return response()->json(['status'=>0]);
        }


        return view('app.active.online2020',[
            'res'           =>  $res,
            'city'          =>  $citys,
            'params'        =>  $params,
            'categories'    =>  $categories,
            'more'          =>  $more
            //'list_items'    => $list_items,
            //'list'          => $list,
        ]);

    }

    public function online2020m(Request $request){
        $offset = isset($request->page)?$request->page:0;
        $limit = 20;

        $citycategory = $request->input('citycategory');
        $trade = $request->input('trade');
        $param_array = array('citycategory','trade','nature');

        $params= array();
        if ($request->all()) {
            foreach ($request->all() as $k => $v) {
                if (in_array($k, $param_array) && $v) {
                    $params[$k] = $v;
                }
            }
        }

        $filter_where = array(
            'AIX_trade'         => 100,
            'AIX_company_type'  => 100
        );
        $categories = $this->categoryService->getCategories($filter_where);

        $subsites = Cache::get('subsites_list');
        if ($subsites) {
            if (!array_has($params, 'citycategory')) {
                if (get_subsite_id() > 0) {
                    $citycategory = $subsites[get_subsite_id()]['district'];
                }
            }
            $is_subsite = 1;
        }

        $citys = $this->categoryService->getCitys($citycategory);
        if(empty($citycategory)){
            $citys['select']['id'] = 623;
        }


        $companys = DB::table('jobs')->join('companys','jobs.company_id','=','companys.id')->whereRaw("jobs.created_at > '2020-01-01 00:00:00'")->groupBy('jobs.company_id')->select('jobs.company_id')->pluck('company_id')->toArray();

        $where = array();
        $where[] = array('reg_time', '>', 1577808000);
        $where[] = array('user_status', '=', 1);
        $where[] = array('subsite_id', '=', get_subsite_id());
        $where[] = array('audit','=',1);
        $where[] = array('deleted_at','=',null);
        if(!empty($trade)){
            $where[] = array('trade','=',$trade);
        }

        //$list = DB::table('companys')->where($where)->whereIn('id',$companys)->orderBy('id','desc')->offset($limit*$offset)->limit($limit)->get();
        $list = DB::table('companys')->where($where)->whereIn('id',$companys)->whereRaw("(district like ? or district like ? or district like ? or district like ?)",["%.{$citys['select']['id']}%","%{$citys['select']['id']}.%","%.245%","%245.%"])->orderBy('id','desc')->offset($limit*$offset)->limit($limit)->get();

//        echo '
';
//        var_dump($citys);die;

        $more = count($list) >= $limit ? true : false;

        $res = [];
        foreach ($list as $val) {

            $item = array(
                'id'    =>  $val->id,
                'companyname'   =>  $val->companyname,
                'trade'     =>  $val->trade ? $categories['AIX_trade'][$val->trade]['demand'] : '未分类',
                'jobs_num'  =>  0,
                'amount_num'    =>  0,
                'jobs'  =>  []
            );

            //在招职位
            $jobs_where = array(
                array('company_id','=',$val->id),
                array('valid','=',1),
                array('display','=',1),
                array('audit','=',1)
            );

            //$jobs = $this->jobsService->getOtherJobs($jobs_where);
            $jobs = DB::table('jobs')->where($jobs_where)->get();
            if($jobs){
                $amount = 0;
                foreach ($jobs as $value) {
                    $job = array(
                        'id'    =>  $value->id,
                        'jobs_name' =>  $value->jobs_name,
                        'amount'    =>  $value->amount,
                        'wage'      =>  $value->wage_str
                    );
                    $amount += $value->amount;
                    array_push($item['jobs'],$job);
                }
                $item['jobs_num'] = count($item['jobs']);
                $item['amount_num'] = $amount;
            }

            array_push($res,$item);
        }

        if ($request->ajax()) {
            if (count($res)) {
                return response()->json(['status'=>1,'data'=>view('mobile.app.active.ajax.ajax_jobfair_com', [
                    'res'           =>  $res,
                    'city'          =>  $citys,
                    'params'        =>  $params,
                    'categories'    =>  $categories,
                    'more'          =>  $more
                ])->render()]);
            }
            return response()->json(['status'=>0]);
        }



        return view('mobile.app.active.online2020m',[
            'res'           =>  $res,
            'city'          =>  $citys,
            'params'        =>  $params,
            'categories'    =>  $categories,
            'more'          =>  $more
        ]);
    }

}