123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325 |
- <?php
- namespace App\Http\Controllers\Mobile\Active;
- use App\Exceptions\ResponseException;
- use App\Http\Controllers\Mobile\MobileBaseController;
- use App\Services\Common\CategoryService;
- use App\Services\Common\SearchService;
- use App\Services\Company\JobsService;
- use Illuminate\Http\Request;
- use App\Services\Company\CompanyService;
- use Illuminate\Support\Facades\Cache;
- use Illuminate\Support\Facades\DB;
- class JobfairController extends MobileBaseController
- {
- protected $companyService;
- protected $jobsService;
- protected $categoryService;
- protected $searchService;
-
-
- public function __construct(
- CompanyService $companyService,
- JobsService $jobsService,
- CategoryService $categoryService,
- SearchService $searchService
- )
- {
- $this->companyService = $companyService;
- $this->jobsService = $jobsService;
- $this->categoryService = $categoryService;
- $this->searchService = $searchService;
- }
-
- 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();
- $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);
- }
-
- $order_by = array('id','desc');
-
-
- $list = DB::table('companys')->where($where)->whereIn('id',$companys)->orderBy('id','desc')->offset($limit*$offset)->limit($limit)->get();
- $more = count($list) >= $limit ? true : false;
- $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 = 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
-
-
- ]);
- }
- 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)->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();
- $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 = 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
- ]);
- }
- }
|