| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 | <?phpnamespace App\Http\Controllers\Mobile\Active;use App\Http\Controllers\Mobile\MobileBaseController;use App\Services\Common\CategoryService;use Illuminate\Http\Request;use Illuminate\Support\Facades\Cache;use Illuminate\Support\Facades\DB;class RecruitController extends MobileBaseController{    protected $categoryService;    public function __construct(CategoryService $categoryService)    {        $this->categoryService = $categoryService;    }    public function index(Request $request)    {        $offset = isset($request->page) ? $request->page : 0;        $limit  = 8;        $citycategory = 'jjkfq';        $trade        = $request->input('trade', '');        $param_array  = ['citycategory', 'trade', 'nature'];        $params = [];        if ($request->all()) {            foreach ($request->all() as $k => $v) {                if (in_array($k, $param_array) && $v) {                    $params[$k] = $v;                }            }        }        $filter_where = [            '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'];                }            }        }        $title = '晋江市新春招聘会';        $citys = $this->categoryService->getCitys($citycategory);        if (empty($citycategory)) {            $district_str = "(district like ? or district like ?)";            $district_arr = ["%.623%", "%623.%"];        } else {            $select_id    = $citys['select']['id'];            $district_str = "(district like ? or district like ?)";            $district_arr = ["%.{$select_id}%", "%{$select_id}.%"];            $title        = $citys['select']['name'] . '专区';        }        $whereRaw = "jobs.updated_at > '2022-06-01 00:00:00' and jobs.deleted_at is null and jobs.valid = 1 and jobs.audit = 1 and jobs.display = 1 and education > 68";        $companys = DB::table('jobs')->join('companys', 'jobs.company_id', '=', 'companys.id')->whereRaw($whereRaw)->groupBy('jobs.company_id')->select('jobs.company_id')->pluck('company_id')->toArray();        $where   = [];        $where[] = ['user_status', '=', 1];        $where[] = ['audit', '=', 1];        $where[] = ['deleted_at', '=', null];        if (!empty($trade)) {            $where[] = ['trade', '=', $trade];        }        $list = DB::table('companys')->where($where)->whereRaw($district_str, $district_arr)->whereIn('id', $companys)->orderBy('sort_index', 'desc')->orderBy('id', 'desc')->offset($limit * $offset)->limit($limit)->get();        $more = count($list) >= $limit ? true : false;        $res = [];        foreach ($list as $val) {            $item = [                'id'          => $val->id,                'companyname' => $val->companyname,                'jobs'        => [],                'tag_arr'     => [],            ];            //在招职位            $jobs_where = [                ['company_id', '=', $val->id],                ['valid', '=', 1],                ['display', '=', 1],                ['audit', '=', 1],                ['deleted_at', '=', null],                ['education', '>', 68],            ];            $jobs = DB::table('jobs')->where($jobs_where)->get();            if (!$jobs->isEmpty()) {                foreach ($jobs as $value) {                    $job = [                        'id'        => $value->id,                        'jobs_name' => $value->jobs_name,                        'amount'    => $value->amount,                        'wage'      => $value->wage,                        'wage_min'  => $value->wage_min,                        'wage_max'  => $value->wage_max,                    ];                    array_push($item['jobs'], $job);                }            }            //企业福利            if (!empty($val->tag)) {                $tags            = explode(',', $val->tag);                $tag_arr         = DB::table('categorys')->whereIn('id', $tags)->limit(3)->get(['demand'])->toArray();                $item['tag_arr'] = $tag_arr;            }            array_push($res, $item);        }        if ($request->ajax()) {            if (count($res)) {                return response()->json(['status' => 1, 'data' => view('mobile.app.active.ajax.ajax_recruit', [                    'res'        => $res,                    'city'       => $citys,                    'params'     => $params,                    'categories' => $categories,                    'more'       => $more,                ])->render()]);            }            return response()->json(['status' => 0]);        }        return view('mobile.app.active.recruit', [            'title'           => $title,            'res'             => $res,            'city'            => $citys,            'params'          => $params,            'categories'      => $categories,            'more'            => $more,            'share_title'     => "【{$title}】免费找工作",            'share_desc'      => '晋江好福利!免费找工作、找人才,还能抽奖,100%中奖,万份好礼免费拿!',            'share_image_url' => theme_asset('mobile/images/online2021/share_logo.jpg'),            'share_link'      => route('mobile.active.spring_special') . '?citycategory=' . $citycategory,        ]);    }}
 |