| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494 | 
							- <?php
 
- namespace App\Http\Controllers\Statistics;
 
- use App\Admin\Exports\Caiqing\TechLevelExport;
 
- use App\Http\Controllers\Statistics\StatisticsBaseController;
 
- use Illuminate\Http\Request;
 
- use App\Services\Statistics\CompanyService;
 
- use App\Services\Statistics\JobsService;
 
- use App\Services\Statistics\ResumeService;
 
- use App\Services\Statistics\MemberService;
 
- use App\Services\Statistics\CategoryService;
 
- use App\Services\Common\SearchService;
 
- use Illuminate\Support\Collection;
 
- use App\Admin\Exports\Caiqing\OverallExport;
 
- use App\Admin\Exports\Caiqing\JobGapExport;
 
- use App\Admin\Exports\Caiqing\ResumeGapExport;
 
- use App\Admin\Exports\Caiqing\IndustryExport;
 
- use App\Admin\Exports\Caiqing\TradeExport;
 
- use App\Admin\Exports\Caiqing\CompanyTypeExport;
 
- use App\Admin\Exports\Caiqing\TypeExport;
 
- use App\Admin\Exports\Caiqing\EducationExport;
 
- use App\Admin\Exports\Caiqing\PersonTypeExport;
 
- use App\Admin\Exports\Caiqing\AgeExport;
 
- class DemandController extends StatisticsBaseController
 
- {
 
-     protected $jobsService;
 
-     protected $resumeService;
 
-     protected $memberService;
 
-     protected $companyService;
 
-     protected $apply_state;
 
-     protected $searchService;
 
-     protected $categoryService;
 
-     
 
-     public function __construct(JobsService $jobsService, ResumeService $resumeService, MemberService $memberService, CompanyService $companyService, SearchService $searchService, CategoryService $categoryService)
 
-     {
 
-         $this->jobsService = $jobsService;
 
-         $this->resumeService = $resumeService;
 
-         $this->memberService = $memberService;
 
-         $this->companyService = $companyService;
 
-         $this->searchService  = $searchService;
 
-         $this->categoryService = $categoryService;
 
-         $this->apply_state = ['1' => '合适', '2' => '不合适', '3' => '待定', '4' => '未接通'];
 
-     }
 
-     public function index(Request $request)
 
-     {
 
-         $subsite_id = session('caiqing_susbite_id');
 
-         if ($subsite_id === null) {
 
-             $subsite_id = -1;
 
-         }
 
-         
 
-         $end_date = date('Y-m', time());
 
-         $end_time = date("Y-m-d H:i:s", strtotime("$end_date +1 month")-1);
 
-         $start_time = date("Y-m-d H:i:s", strtotime("$end_date -11 month"));
 
-         
 
-         $job_where = [
 
-             ['created_at','<=',$end_time],
 
-             ['created_at','>=',$start_time],
 
-             ['valid','=',1],
 
-             ['display','=',1]
 
-         ];
 
-         if (config('aix.companyset.comset.show_set.jobs_display')==1) {
 
-             $job_where[] = array('audit','=',1);
 
-         } else {
 
-             $job_where[] = array('audit','<>',3);
 
-         }
 
-         $company_where = ['utype'=>1,'user_status'=>1];
 
-         if ($subsite_id != -1) {
 
-             $company_where[] = ['subsite_id','=',$subsite_id];
 
-         }
 
-         $job_group = "create_month";
 
-         $job_fields = 'count(id),sum(amount) as num,date_format(created_at, "%y-%m") as create_month';
 
-         $job_order  = 'create_month asc';
 
-         $jobs_rst = $this->jobsService->getJobNumsByGroup($job_where, $company_where, $job_fields, $job_group, $job_order);
 
-         $jobs_res = [];
 
-         if ($jobs_rst) {
 
-             foreach ($jobs_rst as $k => $v) {
 
-                 $jobs_res[$v['create_month']] = $v['num']?$v['num']:0;
 
-             }
 
-         }
 
-         
 
-         $resume_where = [
 
-             ['created_at', '<=', $end_time],
 
-             ['created_at', '>=', $start_time],
 
-         ];
 
-         if (config('aix.personal_set.per_set.show_set.resume_display')=='1') {
 
-             $resume_where[] = array('audit','=','2');
 
-         } else {
 
-             $resume_where[] = array('audit','<>','0');
 
-         }
 
-         $member_where = array(
 
-             ['utype','=',2],
 
-             ['status','=',1]
 
-         );
 
-         if ($subsite_id != -1) {
 
-             $member_where[] = ['subsite_id','=',$subsite_id];
 
-         }
 
-         $resume_group = "create_month";
 
-         $resume_fields = 'count(id) as num,date_format(created_at, "%y-%m") as create_month';
 
-         $resume_order  = 'create_month asc';
 
-         $resume_rst = $this->resumeService->getResumeNumsByGroup($resume_where, $member_where, $resume_fields, $resume_group, $resume_order);
 
-         
 
-         $start_date = date("Y-m", strtotime($start_time));
 
-         $date_arr = [];
 
-         $multiple = [];
 
-         $job_num  = [];
 
-         $resume_num = [];
 
-         for ($i=0; $i<12; $i++) {
 
-             $start = date("y.n", strtotime($start_date));
 
-             $s_date = date("y-m", strtotime($start_date));
 
-             $date_arr[] = $start;
 
-             if (!array_has($jobs_res, $s_date)) {
 
-                 $job_num[$start] = 0;
 
-             } else {
 
-                 $job_num[$start] = $jobs_res[$s_date];
 
-             }
 
-             if (!array_has($resume_rst, $s_date)) {
 
-                 $resume_num[$start] = 0;
 
-             } else {
 
-                 $resume_num[$start] = $resume_rst[$s_date];
 
-             }
 
-             $jnum = $job_num[$start];
 
-             $rnum = $resume_num[$start];
 
-             if ($jnum==0 || $rnum==0) {
 
-                 $multiple[$start] = 0;
 
-             } else {
 
-                 $multiple[$start] = sprintf("%.2f", (int)$jnum/(int)$rnum);
 
-             }
 
-             $start_date = date("Y-m", strtotime("$start_date +1 month"));
 
-         }
 
-         $return_data = [
 
-             'jobs_data'   => $job_num,
 
-             'resume_data' => $resume_num,
 
-             'multiple'    => $multiple,
 
-             'date_arr'    => $date_arr,
 
-             'job_total'   => array_sum($job_num),
 
-             'resume_total'=> array_sum($resume_num),
 
-         ];
 
-         if ($request->input('isExcel')==1) {
 
-             $data = [];
 
-             if ($date_arr) {
 
-                 foreach ($date_arr as $k => $v) {
 
-                     $job_amount = array_has($job_num, $v)?$job_num[$v]:'0';
 
-                     $resume_amount = array_has($resume_num, $v)?$resume_num[$v]:'0';
 
-                     $multiple = '0';
 
-                     if ($job_amount==0 || $resume_amount==0) {
 
-                         $multiple = '0';
 
-                     } else {
 
-                         $multiple = sprintf("%.2f", (int)$job_amount/(int)$resume_amount);
 
-                     }
 
-                     $data[] = ['date_time'=>$v,'job_num'=>$job_amount.'','resume_num'=>$resume_amount.'','multiple'=>$multiple];
 
-                 }
 
-                 
 
-                 $all_multiple = 0;
 
-                 if ($resume_num > 0) {
 
-                     $all_multiple = sprintf("%.2f", (int)array_sum($job_num)/(int)array_sum($resume_num));
 
-                 }
 
-                 $data[] = ['date_time'=>'合计','job_num'=>array_sum($job_num).'','resume_num'=>array_sum($resume_num).'','multiple'=>$all_multiple];
 
-             }
 
-             
 
-             $export = new OverallExport('总体分析 - 近一年的供求情况');
 
-             $c = new Collection($data);
 
-             $export->setCustomerData($c)->export();
 
-         } else {
 
-             return view('statistics.app.demand.basic_analysis', $return_data);
 
-         }
 
-     }
 
-     public function compareEducation(Request $request)
 
-     {
 
-         $subsite_id = session('caiqing_susbite_id');
 
-         if ($subsite_id === null) {
 
-             $subsite_id = -1;
 
-         }
 
-         
 
-         $date_aprams = $this->getDateParams($request->all());
 
-         $start_time = date('Y-m-d H:i:s', strtotime($date_aprams['start_year'].'-'.$date_aprams['start_month']));
 
-         $EndDate = date('Y-m-d H:i:s', strtotime($date_aprams['end_year'].'-'.$date_aprams['end_month']));
 
-         $end_time = date('Y-m-d H:i:s', strtotime("$EndDate +1 month")-1);
 
-         
 
-         $cates = $this->companyService->getCategories(['AIX_education'=>100]);
 
-         $edu_cates = [];
 
-         if (array_has($cates, 'AIX_education')) {
 
-             $edu_cates = $cates['AIX_education'];
 
-             $edu_cates['0'] = ['id'=>0, 'demand'=>'无要求'];
 
-         }
 
-         
 
-         $job_where = array(
 
-             array('valid','=','1'),
 
-             array('display','=',1),
 
-             array('created_at','>=',$start_time),
 
-             array('created_at','<=',$end_time)
 
-         );
 
-         if (config('aix.companyset.comset.show_set.jobs_display')==1) {
 
-             $job_where[] = array('audit','=',1);
 
-         } else {
 
-             $job_where[] = array('audit','<>',3);
 
-         }
 
-         $company_where = ['utype'=>1,'user_status'=>1];
 
-         if ($subsite_id != -1) {
 
-             $job_where[] = ['subsite_id','=',$subsite_id];
 
-             $company_where[] = ['subsite_id','=',$subsite_id];
 
-         }
 
-         $edu_fields = 'sum(amount) as num, education';
 
-         $edu_group = 'education';
 
-         $edu_order  = 'education asc';
 
-         $edu_rst = $this->jobsService->getJobNumsByGroup($job_where, $company_where, $edu_fields, $edu_group, $edu_order);
 
-         $job_data = [];
 
-         if ($edu_rst) {
 
-             foreach ($edu_rst as $k => $v) {
 
-                 $job_data[$v['education']] = $v['num'];
 
-             }
 
-         }
 
-         
 
-         $member_where = [
 
-             ['m.utype','=',2],
 
-             ['m.status','=',1],
 
-             ['r.created_at','>=',$start_time],
 
-             ['r.created_at','<=',$end_time]
 
-         ];
 
-         if ($subsite_id !='-1') {
 
-             $member_where[] = ['m.subsite_id','=',$subsite_id];
 
-         }
 
-         $edu_fields = 'count(r.id) as num, mi.education,mi.education_cn';
 
-         $edu_group = 'mi.education';
 
-         $where_str = 'm.deleted_at IS NULL AND mi.deleted_at IS NULL AND r.deleted_at IS NULL';
 
-         if (config('aix.personal_set.per_set.show_set.resume_display')=='1') {
 
-             $member_where[] = array('r.audit','=','2');
 
-         } else {
 
-             $member_where[] = array('r.audit','<>','0');
 
-         }
 
-         
 
-         $resume_rst = $this->memberService->getJobSeekersByGroup($member_where, $where_str, $edu_fields, $edu_group);
 
-         $resume_data = $resume_rst->pluck('num', 'education')->toArray();
 
-         $table_data = [];
 
-         if ($edu_cates) {
 
-             foreach ($edu_cates as $k => $v) {
 
-                 $job_num = array_has($job_data, $k)?$job_data[$k]:0;
 
-                 $resume_num = array_has($resume_data, $k)?$resume_data[$k]:0;
 
-                 if ($resume_num==0 || $job_num==0) {
 
-                     $rate = 0;
 
-                 } else {
 
-                     $rate = $resume_num>0?sprintf("%.2f", (int)$job_num/(int)$resume_num):'0';
 
-                 }
 
-                 $table_data[] = ['education'=>$k,'education_cn'=>$v['demand'], 'job_num'=>$job_num?$job_num:0, 'resume_num'=>$resume_num?$resume_num:0, 'rate'=>$rate];
 
-             }
 
-         }
 
-         $return_data = [
 
-             'date_aprams'      => $date_aprams,
 
-             'action_name'      => app('request')->route()->getName(),
 
-             'data'             => $table_data,
 
-             'resume_total'     => array_sum($resume_data),
 
-             'job_total'        => array_sum($job_data)
 
-         ];
 
-         return view('statistics.app.demand.education_compare', $return_data);
 
-     }
 
-     
 
-     public function jobGap(Request $request)
 
-     {
 
-         $subsite_id = session('caiqing_susbite_id');
 
-         if ($subsite_id === null) {
 
-             $subsite_id = -1;
 
-         }
 
-         
 
-         $date_aprams = $this->getDateParams($request->all());
 
-         $start_time = date('Y-m-d H:i:s', strtotime($date_aprams['start_year'].'-'.$date_aprams['start_month']));
 
-         $EndDate = date('Y-m-d H:i:s', strtotime($date_aprams['end_year'].'-'.$date_aprams['end_month']));
 
-         $end_time = date('Y-m-d H:i:s', strtotime("$EndDate +1 month")-1);
 
-         
 
-         $job_where = [
 
-             ['created_at', '<=', $end_time],
 
-             ['created_at', '>=', $start_time],
 
-             ['valid', '=', 1],
 
-             ['display', '=', 1],
 
-             ['category','<>',0]
 
-         ];
 
-         if (config('aix.companyset.comset.show_set.jobs_display') == 1) {
 
-             $job_where[] = array('audit', '=', 1);
 
-         } else {
 
-             $job_where[] = array('audit', '<>', 3);
 
-         }
 
-         $company_where = [
 
-             ['utype', '=', 1],
 
-             ['user_status', '=', 1]
 
-         ];
 
-         if ($subsite_id != -1) {
 
-             $company_where['subsite_id'] = $subsite_id;
 
-         }
 
-         $job_field = "IFNULL(sum(amount),0) as num,category,CONCAT_WS('.',topclass,category) as cate";
 
-         $job_group = 'category';
 
-         $job_rst = $this->jobsService->getJobNumsByCategory($job_where, $company_where, $job_field, $job_group);
 
-         
 
-         $resume_where = [
 
-             ['created_at', '<=', $end_time],
 
-             ['created_at', '>=', $start_time],
 
-         ];
 
-         if (config('aix.personal_set.per_set.show_set.resume_display')=='1') {
 
-             $resume_where[] = array('audit','=','2');
 
-         } else {
 
-             $resume_where[] = array('audit','<>','0');
 
-         }
 
-         $member_where = array(
 
-             ['utype','=',2],
 
-             ['status','=',1]
 
-         );
 
-         if ($subsite_id != -1) {
 
-             
 
-             $member_where[] = ['subsite_id','=',$subsite_id];
 
-         }
 
-         $resume_group = "job_cate";
 
-         $resume_fields = "count(id) as num,SUBSTRING_INDEX(intention_jobs_id, '.', 2) as job_cate";
 
-         $resume_order  = '';
 
-         $resume_rst = $this->resumeService->getResumeNumsGroup($resume_where, $member_where, $resume_fields, $resume_group, $resume_order);
 
-         $resume_data = $resume_rst->pluck('num', 'job_cate')->toArray();
 
-         
 
-         $table_data = [];
 
-         if ($job_rst) {
 
-             foreach ($job_rst as $k => $v) {
 
-                 $resume_num = 0;
 
-                 if (array_has($resume_data, $k)) {
 
-                     $resume_num = $resume_data[$k];
 
-                 }
 
-                 if ($v > $resume_num) {
 
-                     $rate = sprintf("%.2f", $resume_num>0?((int)$v/(int)$resume_num):'0');
 
-                     $table_data[$k] = ['cate'=>$k,'job_num'=>$v, 'resume_num'=>$resume_num, 'gap'=>$v-$resume_num, 'rate'=>$rate];
 
-                 }
 
-             }
 
-         }
 
-         
 
-         usort($table_data, function ($a, $b) {
 
-             if ($a['gap'] == $b['gap']) {
 
-                 return 0;
 
-             }
 
-             return ($a['gap'] > $b['gap']) ? -1 : 1;
 
-         });
 
-         $data = array_slice($table_data, 0, 10);    
 
-         
 
-         $res_data = $this->resumeService->dealJobCategory($data);
 
-         $return_data = [
 
-             'date_aprams'      => $date_aprams,
 
-             'action_name'      => app('request')->route()->getName(),
 
-             'res_data'         => $res_data
 
-         ];
 
-         if ($request->input('isExcel')==1) {
 
-             
 
-             if ($res_data) {
 
-                 $total_job = 0;
 
-                 $total_resume = 0;
 
-                 foreach ($res_data as $k => $v) {
 
-                     $total_job = (int)$total_job + (int)$v['job_num'];
 
-                     $total_resume = (int)$total_resume + (int)$v['resume_num'];
 
-                 }
 
-                 
 
-                 $total_gap = $total_job - $total_resume;
 
-                 $total_rate = 0;
 
-                 if ($total_resume>0) {
 
-                     $total_rate = sprintf("%.2f", ((int)$total_job/(int)$total_resume));
 
-                 }
 
-                 $res_data[] = ['cate_name'=>'合计','job_num'=>$total_job, 'resume_num'=>$total_resume, 'gap'=>$total_gap, 'rate'=>$total_rate];
 
-             }
 
-             $export = new JobGapExport("总体分析 - ".$date_aprams['start_year']."年".$date_aprams['start_month']."月到".$date_aprams['end_year']."年".$date_aprams['end_month']."月求职缺口最大的前十个职业");
 
-             $c = new Collection($res_data);
 
-             $export->setCustomerData($c)->export();
 
-         } else {
 
-             return view('statistics.app.demand.job_gap', $return_data);
 
-         }
 
-     }
 
-     
 
-     public function resumeGap(Request $request)
 
-     {
 
-         $subsite_id = session('caiqing_susbite_id');
 
-         if ($subsite_id === null) {
 
-             $subsite_id = -1;
 
-         }
 
-         
 
-         $date_aprams = $this->getDateParams($request->all());
 
-         $start_time = date('Y-m-d H:i:s', strtotime($date_aprams['start_year'].'-'.$date_aprams['start_month']));
 
-         $EndDate = date('Y-m-d H:i:s', strtotime($date_aprams['end_year'].'-'.$date_aprams['end_month']));
 
-         $end_time = date('Y-m-d H:i:s', strtotime("$EndDate +1 month")-1);
 
-         
 
-         $resume_where = [
 
-             ['created_at', '<=', $end_time],
 
-             ['created_at', '>=', $start_time],
 
-         ];
 
-         if (config('aix.personal_set.per_set.show_set.resume_display')=='1') {
 
-             $resume_where[] = array('audit','=','2');
 
-         } else {
 
-             $resume_where[] = array('audit','<>','0');
 
-         }
 
-         $member_where = array(
 
-             ['utype','=',2],
 
-             ['status','=',1]
 
-         );
 
-         if ($subsite_id != -1) {
 
-             $member_where[] = ['subsite_id','=',$subsite_id];
 
-         }
 
-         $resume_group = "job_cate";
 
-         $resume_fields = "count(id) as num,SUBSTRING_INDEX(intention_jobs_id, '.', 2) as job_cate";
 
-         $resume_order  = '';
 
-         $resume_rst = $this->resumeService->getResumeNumsGroup($resume_where, $member_where, $resume_fields, $resume_group, $resume_order);
 
-         $resume_data = $resume_rst->pluck('num', 'job_cate')->toArray();
 
-         $job_where = [
 
-             ['created_at', '<=', $end_time],
 
-             ['created_at', '>=', $start_time],
 
-             ['valid', '=', 1],
 
-             ['display', '=', 1],
 
-             ['category','<>',0]
 
-         ];
 
-         if (config('aix.companyset.comset.show_set.jobs_display') == 1) {
 
-             $job_where[] = array('audit', '=', 1);
 
-         } else {
 
-             $job_where[] = array('audit', '<>', 3);
 
-         }
 
-         $company_where = [
 
-             ['utype', '=', 1],
 
-             ['user_status', '=', 1]
 
-         ];
 
-         if ($subsite_id != -1) {
 
-             $company_where['subsite_id'] = $subsite_id;
 
-         }
 
-         $job_field = "IFNULL(sum(amount),0) as num,CONCAT_WS('.',topclass,category) as cate";
 
-         $job_group = 'category';
 
-         $job_rst = $this->jobsService->getJobNumsByCategory($job_where, $company_where, $job_field, $job_group);
 
-         
 
-         $data = [];
 
-         if ($resume_data) {
 
-             foreach ($resume_data as $k => $v) {
 
-                 $job_num = 0;
 
-                 if (array_has($job_rst, $k)) {
 
-                     $job_num = $job_rst[$k];
 
-                 }
 
-                 if ($v > $job_num) {
 
-                     $rate = sprintf("%.2f", $v>0?((int)$job_num/(int)$v):'0');
 
-                     $data[$k] = ['cate'=>$k,'job_num'=>$job_num, 'resume_num'=>$v, 'gap'=>$v-$job_num, 'rate'=>$rate];
 
-                 }
 
-             }
 
-         }
 
-         
 
-         usort($data, function ($a, $b) {
 
-             if ($a['gap'] == $b['gap']) {
 
-                 return 0;
 
-             }
 
-             return ($a['gap'] > $b['gap']) ? -1 : 1;
 
-         });
 
-         $table_data = array_slice($data, 0, 10);    
 
-         
 
-         $res_data = $this->resumeService->dealJobCategory($table_data);
 
-         $return_data = [
 
-             'date_aprams'      => $date_aprams,
 
-             'action_name'      => app('request')->route()->getName(),
 
-             'res_data'         => $res_data
 
-         ];
 
-         if ($request->input('isExcel')==1) {
 
-             if ($res_data) {
 
-                 $total_job = 0;
 
-                 $total_resume = 0;
 
-                 $total_gap = 0;
 
-                 foreach ($res_data as $k => $v) {
 
-                     $total_job = $total_job + (int)$v['job_num'];
 
-                     $total_resume = $total_resume + (int)$v['resume_num'];
 
-                 }
 
-                 $total_gap = $total_resume - $total_job;
 
-                 $total_rate = 0;
 
-                 if ($total_resume>0) {
 
-                     $total_rate = sprintf("%.2f", ((int)$total_job/(int)$total_resume));
 
-                 }
 
-                 $res_data[] = ['cate_name'=>'合计','job_num'=>$total_job, 'resume_num'=>$total_resume, 'gap'=>$total_gap, 'rate'=>$total_rate];
 
-             }
 
-             
 
-             $export = new ResumeGapExport("总体分析 - ".$date_aprams['start_year']."年".$date_aprams['start_month']."月到".$date_aprams['end_year']."年".$date_aprams['end_month']."月需求缺口最大的前十个职业");
 
-             $c = new Collection($res_data);
 
-             $export->setCustomerData($c)->export();
 
-         } else {
 
-             return view('statistics.app.demand.resume_gap', $return_data);
 
-         }
 
-     }
 
-     public function dealResume(Request $request)
 
-     {
 
-         
 
-         $subsite_id = session('caiqing_susbite_id');
 
-         if ($subsite_id === null) {
 
-             $subsite_id = -1;
 
-         }
 
-         
 
-         $date_aprams = $this->getDateParams($request->all());
 
-         $date_aprams = $this->getDateDetail($request->all());
 
-         $start_time  = $date_aprams['start_date']?date('Y-m-d H:i:s', strtotime($date_aprams['start_date'])):$date_aprams['start_date'];
 
-         $end_time    = date('Y-m-d H:i:s', strtotime($date_aprams['end_date'].' +1 day')-1);
 
-         $company_where = [['utype','=','1'],['audit','<>','3']];
 
-         if ($subsite_id != '-1') {
 
-             $company_where[] = ['subsite_id','=',$subsite_id];
 
-         }
 
-         
 
-         $apply_where = [
 
-             ['created_at', '<=', $end_time],
 
-             ['created_at', '>=', $start_time]
 
-         ];
 
-         $apply_nums = $this->resumeService->getApplyNum($apply_where, $company_where);
 
-         
 
-         $processed_where = [
 
-             ['created_at', '<=', $end_time],
 
-             ['created_at', '>=', $start_time],
 
-             ['is_reply', '>', 0]
 
-         ];
 
-         $processed_nums = $this->resumeService->getApplyNum($processed_where, $company_where);
 
-         
 
-         $unprocessed_where = [
 
-             ['created_at', '<=', $end_time],
 
-             ['created_at', '>=', $start_time],
 
-             ['is_reply', '=', 0]
 
-         ];
 
-         $unprocessed_nums = $this->resumeService->getApplyNum($unprocessed_where, $company_where);
 
-         
 
-         $processed_rst = $this->resumeService->getApplyNumByGroup($processed_where, $company_where, 'count(id) as count, is_reply', ['is_reply'], 'is_reply asc');
 
-         $processed_res = $processed_rst->pluck('count', 'is_reply')->toArray();
 
-         $apply_state = $this->apply_state;
 
-         $processed_arr = [];
 
-         foreach ($apply_state as $k => $v) {
 
-             $count = 0;
 
-             if (array_has($processed_res, $k)) {
 
-                 $count = $processed_res[$k];
 
-             }
 
-             $processed_arr[$k] = ['name'=>$v.'简历数', 'count'=>$count];
 
-         }
 
-         
 
-         $unprocessed_companys = $this->resumeService->getApplyNumByCompanyGroup($unprocessed_where, $company_where, 'count(id) as count, company_id', ['company_id'], 'count(id) desc', 10);
 
-         
 
-         $apt_where = array(
 
-             array('created_at', '<=', $end_time),
 
-             array('created_at', '>=', $start_time),
 
-             array('is_reply', '=', 1)
 
-         );
 
-         $apt_companys = $this->resumeService->getApplyNumByCompanyGroup($apt_where, $company_where, 'count(id) as count, company_id', ['company_id'], 'count(id) desc', 20);
 
-         $return_data = [
 
-             'date_aprams'          => $date_aprams,
 
-             'action_name'          => app('request')->route()->getName(),
 
-             'apply_nums'           => $apply_nums,
 
-             'processed_nums'       => $processed_nums,
 
-             'unprocessed_nums'     => $unprocessed_nums,
 
-             'processed_arr'        => $processed_arr,
 
-             'unprocessed_companys' => $unprocessed_companys,
 
-             'apt_companys'         => $apt_companys
 
-         ];
 
-         return view('statistics.app.demand.resume_deal', $return_data);
 
-     }
 
-     public function applyCompany(Request $request)
 
-     {
 
-         $subsite_id = session('caiqing_susbite_id');
 
-         if ($subsite_id === null) {
 
-             $subsite_id = -1;
 
-         }
 
-         
 
-         $date_aprams = $this->getDateDetail($request->all());
 
-         $start_time  = $date_aprams['start_date']?date('Y-m-d H:i:s', strtotime($date_aprams['start_date'])):$date_aprams['start_date'];
 
-         $end_time    = date('Y-m-d H:i:s', strtotime($date_aprams['end_date'].' +1 day')-1);
 
-         $company_where = [['utype','=','1'],['user_status','=','1']];
 
-         if ($subsite_id != '-1') {
 
-             $company_where[] = ['subsite_id','=',$subsite_id];
 
-         }
 
-         $apply_where = [
 
-             ['created_at', '<=', $end_time],
 
-             ['created_at', '>=', $start_time]
 
-         ];
 
-         
 
-         $company_applys = $this->resumeService->getApplyNumByCompanyGroup($apply_where, $company_where, 'count(id) as count, company_id', ['company_id'], 'count(id) desc', 50);
 
-         $return_data = [
 
-             'date_aprams'      => $date_aprams,
 
-             'action_name'      => app('request')->route()->getName(),
 
-             'company_applys'   => $company_applys
 
-         ];
 
-         return view('statistics.app.demand.company_apply', $return_data);
 
-     }
 
-     
 
-     public function industry(Request $request)
 
-     {
 
-         $subsite_id = session('caiqing_susbite_id');
 
-         if ($subsite_id === null) {
 
-             $subsite_id = -1;
 
-         }
 
-         
 
-         $date_aprams = $this->getDateParams($request->all());
 
-         $start_time = date('Y-m-d H:i:s', strtotime($date_aprams['start_year'].'-'.$date_aprams['start_month']));
 
-         $EndDate = date('Y-m-d H:i:s', strtotime($date_aprams['end_year'].'-'.$date_aprams['end_month']));
 
-         $end_time = date('Y-m-d H:i:s', strtotime("$EndDate +1 month")-1);
 
-         
 
-         $job_where = [
 
-             ['created_at', '<=', $end_time],
 
-             ['created_at', '>=', $start_time],
 
-             ['valid', '=', 1],
 
-             ['display', '=', 1]
 
-         ];
 
-         if (config('aix.companyset.comset.show_set.jobs_display') == 1) {
 
-             $job_where[] = array('audit', '=', 1);
 
-         } else {
 
-             $job_where[] = array('audit', '<>', 3);
 
-         }
 
-         $company_where = [
 
-             ['utype', '=', 1],
 
-             ['user_status', '=', 1]
 
-         ];
 
-         if ($subsite_id != '-1') {
 
-             $company_where['subsite_id'] = $subsite_id;
 
-         }
 
-         $first_industry_num = $this->jobsService->getIndustryAmount($job_where, $company_where, [44]);
 
-         $second_industry_num = $this->jobsService->getIndustryAmount($job_where, $company_where, [6,7,13,14,15,16,17,18,19,21,25,27,28,39,40,41]);
 
-         $third_industry_num = $this->jobsService->getIndustryAmount($job_where, $company_where, [1,2,3,4,5,8,9,10,11,12,20,22,23,24,26,29,30,31,32,33,34,35,36,37,38,42,43,45]);
 
-         $total_num = (int)$first_industry_num + (int)$second_industry_num + (int)$third_industry_num;
 
-         $table_data = [
 
-             ['name'=>'第一产业', 'value'=>$first_industry_num, 'rate'=> $total_num>0?sprintf("%.4f", (int)$first_industry_num/(int)$total_num)*100:0.00],
 
-             ['name'=>'第二产业', 'value'=>$second_industry_num , 'rate'=> $total_num>0?sprintf("%.4f", (int)$second_industry_num/(int)$total_num)*100:0.00],
 
-             ['name'=>'第三产业', 'value'=>$third_industry_num , 'rate'=> $total_num>0?sprintf("%.4f", (int)$third_industry_num/(int)$total_num)*100:0.00]
 
-         ];
 
-         $return_data = [
 
-             'date_aprams'      => $date_aprams,
 
-             'action_name'      => app('request')->route()->getName(),
 
-             'table_data'       => $table_data,
 
-             'total_num'        => $total_num
 
-         ];
 
-         if ($request->input('isExcel')==1) {
 
-             if ($table_data) {
 
-                 $rate = 0;
 
-                 if ($total_num>0) {
 
-                     $rate = 100;
 
-                 }
 
-                 $table_data[] = ['name'=>'合计','value'=>$total_num, 'rate'=>$rate];
 
-             }
 
-             
 
-             $export = new IndustryExport("总体分析 - ".$date_aprams['start_year']."年".$date_aprams['start_month']."月到".$date_aprams['end_year']."年".$date_aprams['end_month']."月按产业分组的需求人数");
 
-             $c = new Collection($table_data);
 
-             $export->setCustomerData($c)->export();
 
-         } else {
 
-             return view('statistics.app.demand.industry', $return_data);
 
-         }
 
-     }
 
-     
 
-     public function tradeGroup(Request $request)
 
-     {
 
-         $subsite_id = session('caiqing_susbite_id');
 
-         if ($subsite_id === null) {
 
-             $subsite_id = -1;
 
-         }
 
-         
 
-         $date_aprams = $this->getDateParams($request->all());
 
-         $start_time = date('Y-m-d H:i:s', strtotime($date_aprams['start_year'].'-'.$date_aprams['start_month']));
 
-         $EndDate = date('Y-m-d H:i:s', strtotime($date_aprams['end_year'].'-'.$date_aprams['end_month']));
 
-         $end_time = date('Y-m-d H:i:s', strtotime("$EndDate +1 month")-1);
 
-         $rst = $this->jobsService->getTradeAmount($start_time, $end_time, $subsite_id);
 
-         $return_data = [
 
-             'date_aprams'      => $date_aprams,
 
-             'action_name'      => app('request')->route()->getName(),
 
-             'table_data'       => $rst['data'],
 
-             'total_amount'     => $rst['total']
 
-         ];
 
-         if ($request->input('isExcel')==1) {
 
-             $export_data = $rst['data'];
 
-             if ($export_data) {
 
-                 $export_total = $rst['total'];
 
-                 $export_rate = 0;
 
-                 if ($export_total>0) {
 
-                     $export_rate = 100;
 
-                 }
 
-                 $export_data[] = ['name'=>'合计','number'=>count($export_data)+1,'job_amount'=>$export_total,'rate'=>$export_rate];
 
-             }
 
-             
 
-             $export = new TradeExport("总体分析 - ".$date_aprams['start_year']."年".$date_aprams['start_month']."月到".$date_aprams['end_year']."年".$date_aprams['end_month']."月按行业分组的需求人数");
 
-             $c = new Collection($export_data);
 
-             $export->setCustomerData($c)->export();
 
-         } else {
 
-             return view('statistics.app.demand.trade', $return_data);
 
-         }
 
-     }
 
-     
 
-     public function companyGroup(Request $request)
 
-     {
 
-         $subsite_id = session('caiqing_susbite_id');
 
-         if ($subsite_id === null) {
 
-             $subsite_id = -1;
 
-         }
 
-         
 
-         $date_aprams = $this->getDateParams($request->all());
 
-         $start_time = date('Y-m-d H:i:s', strtotime($date_aprams['start_year'].'-'.$date_aprams['start_month']));
 
-         $EndDate = date('Y-m-d H:i:s', strtotime($date_aprams['end_year'].'-'.$date_aprams['end_month']));
 
-         $end_time = date('Y-m-d H:i:s', strtotime("$EndDate +1 month")-1);
 
-         $rst = $this->jobsService->getEconomicAmount($start_time, $end_time, $subsite_id);
 
-         $return_data = [
 
-             'date_aprams'      => $date_aprams,
 
-             'action_name'      => app('request')->route()->getName(),
 
-             'chart_data'       => $rst['chart_data'],
 
-             'table_data'       => $rst['table_data'],
 
-             'nature_total'     => $rst['nature_total'],
 
-             'domestic_data'    => $rst['domestic_data'],
 
-         ];
 
-         if ($request->input('isExcel')==1) {
 
-             
 
-             $export = new CompanyTypeExport("总体分析 - ".$date_aprams['start_year']."年".$date_aprams['start_month']."月到".$date_aprams['end_year']."年".$date_aprams['end_month']."月按经济类型分组的需求人数");
 
-             $c = new Collection($rst['table_data']);
 
-             $export->setCustomerData($c)->export();
 
-         } else {
 
-             return view('statistics.app.demand.economic', $return_data);
 
-         }
 
-     }
 
-     
 
-     public function jobTypeGroup(Request $request)
 
-     {
 
-         $subsite_id = session('caiqing_susbite_id');
 
-         if ($subsite_id === null) {
 
-             $subsite_id = -1;
 
-         }
 
-         
 
-         $date_aprams = $this->getDateParams($request->all());
 
-         $start_time = date('Y-m-d H:i:s', strtotime($date_aprams['start_year'].'-'.$date_aprams['start_month']));
 
-         $EndDate = date('Y-m-d H:i:s', strtotime($date_aprams['end_year'].'-'.$date_aprams['end_month']));
 
-         $end_time = date('Y-m-d H:i:s', strtotime("$EndDate +1 month")-1);
 
-         $job_num1 = $this->jobsService->getJobTypeAmount($start_time, $end_time, [20], $subsite_id);  
 
-         $job_num2 = $this->jobsService->getJobTypeAmount($start_time, $end_time, [29,31,33,35,36,37,38,39,41,42,43,44,45,46,47,48,49], $subsite_id);  
 
-         $job_num3 = $this->jobsService->getJobTypeAmount($start_time, $end_time, [18,23,25], $subsite_id);  
 
-         $job_num4 = $this->jobsService->getJobTypeAmount($start_time, $end_time, [11,12,13,14,15,16,17,21,22,24,26,27,28,32,40,50], $subsite_id);  
 
-         $job_num5 = $this->jobsService->getJobTypeAmount($start_time, $end_time, [51], $subsite_id);  
 
-         $job_num6 = $this->jobsService->getJobTypeAmount($start_time, $end_time, [19,30,34], $subsite_id);  
 
-         $job_num7 = $this->jobsService->getJobTypeAmount($start_time, $end_time, [0,52], $subsite_id);  
 
-         $job_total = (int)$job_num1 + (int)$job_num2 + (int)$job_num3 + (int)$job_num4 + (int)$job_num5 + (int)$job_num6 + (int)$job_num7;
 
-         $resume_num1 = $this->getResumeTypeAmount($start_time, $end_time, [20], $subsite_id);  
 
-         $resume_num2 = $this->getResumeTypeAmount($start_time, $end_time, [29,31,33,35,36,37,38,39,41,42,43,44,45,46,47,48,49], $subsite_id);  
 
-         $resume_num3 = $this->getResumeTypeAmount($start_time, $end_time, [18,23,25], $subsite_id);  
 
-         $resume_num4 = $this->getResumeTypeAmount($start_time, $end_time, [11,12,13,14,15,16,17,21,22,24,26,27,28,32,40,50], $subsite_id);  
 
-         $resume_num5 = $this->getResumeTypeAmount($start_time, $end_time, [51], $subsite_id);  
 
-         $resume_num6 = $this->getResumeTypeAmount($start_time, $end_time, [19,30,34], $subsite_id);  
 
-         $resume_num7 = $this->getResumeTypeAmount($start_time, $end_time, [0,52], $subsite_id);  
 
-         $resume_total = (int)$resume_num1 + (int)$resume_num2 + (int)$resume_num3 + (int)$resume_num4 + (int)$resume_num5 + (int)$resume_num6 + (int)$resume_num7;
 
-         
 
-         $data = [
 
-             ['name'=>'单位负责人',          'job_amount'=>$job_num1, 'resume_num'=>$resume_num1, 'multiple'=>$resume_num1>0?sprintf("%.2f", (int)$job_num1/(int)$resume_num1):'0'],
 
-             ['name'=>'专业技术人员',        'job_amount'=>$job_num2, 'resume_num'=>$resume_num2, 'multiple'=>$resume_num2>0?sprintf("%.2f", (int)$job_num2/(int)$resume_num2):'0'],
 
-             ['name'=>'办事人员和有关人员',  'job_amount'=>$job_num3, 'resume_num'=>$resume_num3, 'multiple'=>$resume_num3>0?sprintf("%.2f", (int)$job_num3/(int)$resume_num3):'0'],
 
-             ['name'=>'商业和服务业人员',    'job_amount'=>$job_num4, 'resume_num'=>$resume_num4, 'multiple'=>$resume_num4>0?sprintf("%.2f", (int)$job_num4/(int)$resume_num4):'0'],
 
-             ['name'=>'农林牧渔水利生产人员','job_amount'=>$job_num5, 'resume_num'=>$resume_num5, 'multiple'=>$resume_num5>0?sprintf("%.2f", (int)$job_num5/(int)$resume_num5):'0'],
 
-             ['name'=>'生产运输设备操作工',  'job_amount'=>$job_num6, 'resume_num'=>$resume_num6, 'multiple'=>$resume_num6>0?sprintf("%.2f", (int)$job_num6/(int)$resume_num6):'0'],
 
-             ['name'=>'其他',                 'job_amount'=>$job_num7, 'resume_num'=>$resume_num7, 'multiple'=>$resume_num7>0?sprintf("%.2f", (int)$job_num7/(int)$resume_num7):'0'],
 
-         ];
 
-         $return_data = [
 
-             'date_aprams'      => $date_aprams,
 
-             'action_name'      => app('request')->route()->getName(),
 
-             'job_amount'       => $job_total,
 
-             'resume_total'     => $resume_total,
 
-             'data'             => $data
 
-         ];
 
-         if ($request->input('isExcel')==1) {
 
-             if ($data) {
 
-                 foreach ($data as $k => $v) {
 
-                     $job_rate = '0';
 
-                     if ($job_total !=0) {
 
-                         $job_rate = sprintf("%.4f", $v['job_amount']>0?((int)$v['job_amount']/(int)$job_total):'0')*100;
 
-                     }
 
-                     $data[$k]['job_rate'] = $job_rate;
 
-                     $resume_rate = '0';
 
-                     if ($resume_total !=0) {
 
-                         $resume_rate = sprintf("%.4f", $v['resume_num']>0?((int)$v['resume_num']/(int)$resume_total):'0')*100;
 
-                     }
 
-                     $data[$k]['resume_rate'] = $resume_rate;
 
-                 }
 
-                 
 
-                 $all_multiple = 0;
 
-                 if ($resume_total !=0) {
 
-                     $all_multiple = sprintf("%.2f", $resume_total>0?((int)$job_total/(int)$resume_total):'0');
 
-                 }
 
-                 $all_job_rate = '0';
 
-                 if ($job_total>0) {
 
-                     $all_job_rate = '100';
 
-                 }
 
-                 $all_resume_rate = '0';
 
-                 if ($resume_total>0) {
 
-                     $all_resume_rate = '100';
 
-                 }
 
-                 $data[] = [
 
-                     'name'       => '合计',
 
-                     'job_amount' => $job_total,
 
-                     'resume_num' => $resume_total,
 
-                     'job_rate'   => $all_job_rate,
 
-                     'resume_rate'=> $all_resume_rate,
 
-                     'multiple'   => $all_multiple
 
-                 ];
 
-             }
 
-             
 
-             $export = new TypeExport("总体分析 - ".$date_aprams['start_year']."年".$date_aprams['start_month']."月到".$date_aprams['end_year']."年".$date_aprams['end_month']."月按职业分组的供求人数");
 
-             $c = new Collection($data);
 
-             $export->setCustomerData($c)->export();
 
-         } else {
 
-             return view('statistics.app.demand.job_type', $return_data);
 
-         }
 
-     }
 
-     public function getResumeTypeAmount($start_time, $end_time, $types, $subsite_id)
 
-     {
 
-         $resume_where = [
 
-             ['created_at', '<=', $end_time],
 
-             ['created_at', '>=', $start_time],
 
-         ];
 
-         if (config('aix.personal_set.per_set.show_set.resume_display')=='1') {
 
-             $resume_where[] = array('audit','=','2');
 
-         } else {
 
-             $resume_where[] = array('audit','<>','0');
 
-         }
 
-         $resume_where[] = ['intention_jobs_id','in',$types];
 
-         if ($subsite_id != '-1') {
 
-             $resume_where[] = array('subsite_id','=',$subsite_id);
 
-         }
 
-         $list = $this->searchService->search('Resume', $resume_where, ['id'=>'asc'], '');
 
-         return $list->total();
 
-     }
 
-     public function getEducationJobNums($start_time, $end_time, $subsite_id)
 
-     {
 
-         $where = $this->getJobWhere($subsite_id, $start_time, $end_time);
 
-         $job_where = $where['job_where'];
 
-         $company_where = $where['company_where'];
 
-         $edu_fields = 'sum(amount) as num, education';
 
-         $edu_group = 'education';
 
-         $edu_order  = 'education asc';
 
-         $edu_rst = $this->jobsService->getJobNumsByGroup($job_where, $company_where, $edu_fields, $edu_group, $edu_order);
 
-         $job_data = [];
 
-         if ($edu_rst) {
 
-             foreach ($edu_rst as $k => $v) {
 
-                 $job_data[$v['education']] = $v['num'];
 
-             }
 
-         }
 
-         return $job_data;
 
-     }
 
-     public function getEducationResumeNums($start_time, $end_time, $subsite_id)
 
-     {
 
-         $member_where = [
 
-             ['m.utype','=',2],
 
-             ['r.created_at','>=',$start_time],
 
-             ['r.created_at','<=',$end_time]
 
-         ];
 
-         if ($subsite_id !='-1') {
 
-             $member_where[] = ['m.subsite_id','=',$subsite_id];
 
-         }
 
-         if (config('aix.personal_set.per_set.show_set.resume_display')=='1') {
 
-             $member_where[] = array('r.audit','=','2');
 
-         } else {
 
-             $member_where[] = array('r.audit','<>','0');
 
-         }
 
-         $edu_fields = 'count(r.id) as num, mi.education,mi.education_cn';
 
-         $edu_group = 'mi.education';
 
-         $where_str = 'm.deleted_at IS NULL AND mi.deleted_at IS NULL AND r.deleted_at IS NULL';
 
-         $resume_rst = $this->memberService->getJobSeekersByGroup($member_where, $where_str, $edu_fields, $edu_group);
 
-         $resume_data = $resume_rst->pluck('num', 'education')->toArray();
 
-         return $resume_data;
 
-     }
 
-     
 
-     public function educationGroup(Request $request)
 
-     {
 
-         $subsite_id = session('caiqing_susbite_id');
 
-         if ($subsite_id === null) {
 
-             $subsite_id = -1;
 
-         }
 
-         
 
-         $date_aprams = $this->getDateParams($request->all());
 
-         $start_time = date('Y-m-d H:i:s', strtotime($date_aprams['start_year'].'-'.$date_aprams['start_month']));
 
-         $EndDate = date('Y-m-d H:i:s', strtotime($date_aprams['end_year'].'-'.$date_aprams['end_month']));
 
-         $end_time = date('Y-m-d H:i:s', strtotime("$EndDate +1 month")-1);
 
-         $date_params = $this->getCompareDate($request->all());
 
-         $compare_start_date = $date_params['start_date_arr']?implode(' - ', $date_params['start_date_arr']):'';
 
-         $compare_end_date   = $date_params['end_date_arr']?implode(' - ', $date_params['end_date_arr']):'';
 
-         if ($date_params['end_date_arr']) {
 
-             $start_time = date('Y-m-d H:i:s', strtotime($date_params['end_date_arr'][0]));
 
-             $end_time = date('Y-m-d H:i:s', strtotime($date_params['end_date_arr'][1]." +1 day")-1);
 
-         } else {
 
-             $start_time = date('Y-m-d H:i:s', strtotime($date_params['start_date_arr'][0]));
 
-             $end_time = date('Y-m-d H:i:s', strtotime($date_params['start_date_arr'][1]." +1 day")-1);
 
-         }
 
-         
 
-         $compare_flag = false;
 
-         if (($date_params['end_date_arr'] != $date_params['start_date_arr']) && $date_params['end_date_arr'] && $date_params['start_date_arr']) {
 
-             $compare_flag = true;
 
-         }
 
-         
 
-         $cates = $this->companyService->getCategories(['AIX_education'=>100]);
 
-         $edu_cates = [];
 
-         if (array_has($cates, 'AIX_education')) {
 
-             $edu_cates = $cates['AIX_education'];
 
-             $edu_cates['0'] = ['id'=>0, 'demand'=>'无要求'];
 
-         }
 
-         
 
-         $job_data = $this->getEducationJobNums($start_time, $end_time, $subsite_id);
 
-         
 
-         $resume_data = $this->getEducationResumeNums($start_time, $end_time, $subsite_id);
 
-         $compare_job_data = array();
 
-         $compare_resume_data = array();
 
-         if ($compare_flag) {
 
-             $c_stime = date('Y-m-d H:i:s', strtotime($date_params['start_date_arr'][0]));
 
-             $c_etime = date('Y-m-d H:i:s', strtotime($date_params['start_date_arr'][1]." +1 day")-1);
 
-             $compare_job_data = $this->getEducationJobNums($c_stime, $c_etime, $subsite_id);
 
-             $compare_resume_data = $this->getEducationResumeNums($c_stime, $c_etime, $subsite_id);
 
-         }
 
-         $resume_total   = array_sum($resume_data);
 
-         $job_total      = array_sum($job_data);
 
-         $c_job_total    = array_sum($compare_job_data);
 
-         $c_resume_total = array_sum($compare_resume_data);
 
-         $c_table_data = [];
 
-         $table_data = [];
 
-         if ($edu_cates) {
 
-             foreach ($edu_cates as $k => $v) {
 
-                 $job_num = array_has($job_data, $k)?$job_data[$k]:0;
 
-                 $resume_num = array_has($resume_data, $k)?$resume_data[$k]:0;
 
-                 if ($resume_num==0 || $job_num==0) {
 
-                     $rate = 0;
 
-                 } else {
 
-                     $rate = $resume_num>0?sprintf("%.2f", (int)$job_num/(int)$resume_num):'0';
 
-                 }
 
-                 $job_rate = 0;
 
-                 if ($job_total) {
 
-                     $job_rate = sprintf("%.4f", (int)$job_num/(int)$job_total)*100;
 
-                 }
 
-                 $resume_rate = 0;
 
-                 if ($resume_total) {
 
-                     $resume_rate = sprintf("%.4f", (int)$resume_num/(int)$resume_total)*100;
 
-                 }
 
-                 $table_data[] = ['name'=>$v['demand'], 'job_amount'=>$job_num?$job_num:0,'job_rate'=>$job_rate, 'resume_num'=>$resume_num?$resume_num:0, 'resume_rate'=>$resume_rate,'multiple'=>$rate];
 
-                 
 
-                 $c_job_num = array_has($compare_job_data, $k)?$compare_job_data[$k]:0;
 
-                 $c_resume_num = array_has($compare_resume_data, $k)?$compare_resume_data[$k]:0;
 
-                 if ($c_job_num==0 || $c_resume_num==0) {
 
-                     $c_rate = 0;
 
-                 } else {
 
-                     $c_rate = $c_resume_num>0?sprintf("%.2f", (int)$c_job_num/(int)$c_resume_num):'0';
 
-                 }
 
-                 $c_job_rate = 0;
 
-                 if ($c_job_total) {
 
-                     $c_job_rate = sprintf("%.4f", (int)$c_job_num/(int)$c_job_total)*100;
 
-                 }
 
-                 $c_resume_rate = 0;
 
-                 if ($c_resume_total) {
 
-                     $c_resume_rate = sprintf("%.4f", (int)$c_resume_num/(int)$c_resume_total)*100;
 
-                 }
 
-                 $c_table_data[] = ['name'=>$v['demand'], 'job_amount'=>$c_job_num?$c_job_num:0, 'job_rate'=>$c_job_rate,'resume_num'=>$c_resume_num?$c_resume_num:0, 'resume_rate'=>$c_resume_rate,'multiple'=>$c_rate];
 
-             }
 
-         }
 
-         $return_data = [
 
-             'date_aprams'          => $date_aprams,
 
-             'date_params'          => $date_params,
 
-             'compare_flag'         => $compare_flag,
 
-             'compare_start_date'   => $compare_start_date,
 
-             'compare_end_date'     => $compare_end_date,
 
-             'compare_table_data'   => $c_table_data,
 
-             'compare_job_total'    => $c_job_total,
 
-             'compare_resume_total' => $c_resume_total,
 
-             'compare_flag'         => $compare_flag,
 
-             'action_name'          => app('request')->route()->getName(),
 
-             'table_data'           => $table_data,
 
-             'resume_total'         => $resume_total,
 
-             'job_total'            => $job_total
 
-         ];
 
-         if ($request->input('isExcel')==1) {
 
-             if ($table_data) {
 
-                 foreach ($table_data as $k => $v) {
 
-                     $job_rate = '0';
 
-                     if ($job_total !=0) {
 
-                         $job_rate = sprintf("%.4f", $v['job_amount']>0?((int)$v['job_amount']/(int)$job_total):'0')*100;
 
-                     }
 
-                     $table_data[$k]['job_rate'] = $job_rate;
 
-                     $resume_rate = '0';
 
-                     if ($resume_total !=0) {
 
-                         $resume_rate = sprintf("%.4f", $v['resume_num']>0?((int)$v['resume_num']/(int)$resume_total):'0')*100;
 
-                     }
 
-                     $table_data[$k]['resume_rate'] = $resume_rate;
 
-                 }
 
-                 
 
-                 $all_multiple = 0;
 
-                 if ($resume_total !=0) {
 
-                     $all_multiple = sprintf("%.2f", $resume_total>0?((int)$job_total/(int)$resume_total):'0');
 
-                 }
 
-                 $all_job_rate = '0';
 
-                 if ($job_total>0) {
 
-                     $all_job_rate = '100';
 
-                 }
 
-                 $all_resume_rate = '0';
 
-                 if ($resume_total>0) {
 
-                     $all_resume_rate = '100';
 
-                 }
 
-                 $table_data[] = [
 
-                     'name'       => '合计',
 
-                     'job_amount' => $job_total,
 
-                     'resume_num' => $resume_total,
 
-                     'job_rate'   => $all_job_rate,
 
-                     'resume_rate'=> $all_resume_rate,
 
-                     'multiple'   => $all_multiple
 
-                 ];
 
-             }
 
-             
 
-             $export = new EducationExport("总体分析 - ".$date_aprams['start_year']."年".$date_aprams['start_month']."月到".$date_aprams['end_year']."年".$date_aprams['end_month']."月按文化程度分组的需求人数");
 
-             $c = new Collection($table_data);
 
-             $export->setCustomerData($c)->export();
 
-         } else {
 
-             return view('statistics.app.demand.education', $return_data);
 
-         }
 
-     }
 
-     
 
-     public function personTypeGroup(Request $request)
 
-     {
 
-         $subsite_id = session('caiqing_susbite_id');
 
-         if ($subsite_id === null) {
 
-             $subsite_id = -1;
 
-         }
 
-         
 
-         $date_aprams = $this->getDateParams($request->all());
 
-         $start_time = date('Y-m-d H:i:s', strtotime($date_aprams['start_year'].'-'.$date_aprams['start_month']));
 
-         $endDate = date('Y-m-d H:i:s', strtotime($date_aprams['end_year'].'-'.$date_aprams['end_month']));
 
-         $end_time = date('Y-m-d H:i:s', strtotime("$endDate +1 month")-1);
 
-         
 
-         $resume_where = [
 
-             ['created_at', '<=', $end_time],
 
-             ['created_at', '>=', $start_time],
 
-         ];
 
-         if (config('aix.personal_set.per_set.show_set.resume_display')=='1') {
 
-             $resume_where[] = array('audit','=','2');
 
-         } else {
 
-             $resume_where[] = array('audit','<>','0');
 
-         }
 
-         $member_where = array(
 
-             ['utype','=',2],
 
-             ['status','=',1]
 
-         );
 
-         if ($subsite_id != -1) {
 
-             $member_where[] = ['subsite_id','=',$subsite_id];
 
-         }
 
-         $resume_group = "current";
 
-         $resume_fields = "count(id) as num,current,current_cn";
 
-         $resume_order  = 'current desc';
 
-         $resume_rst = $this->resumeService->getResumeNumsGroup($resume_where, $member_where, $resume_fields, $resume_group, $resume_order);
 
-         $chart_data = [
 
-             ['name'=>'新成长失业青年','value'=>0],
 
-             ['name'=>'就业专业人员','value'=>0],
 
-             ['name'=>'在业人员','value'=>0],
 
-         ];
 
-         $resume_num1 = 0;
 
-         $resume_num2 = 0;
 
-         $resume_num3 = 0;
 
-         $resume_total = 0;
 
-         if ($resume_rst->isNotEmpty()) {
 
-             foreach ($resume_rst->toArray() as $k => $v) {
 
-                 if ($v['current_cn'] == '应届毕业生') {  
 
-                     $resume_num1 = (int)$resume_num1 + (int)$v['num'];
 
-                 } elseif ($v['current_cn'] == '我目前已离职,可快速到岗') {     
 
-                     $resume_num2 = (int)$resume_num2 + (int)$v['num'];
 
-                 } else {    
 
-                     $resume_num3 = (int)$resume_num3 + (int)$v['num'];
 
-                 }
 
-                 $resume_total = (int)$resume_total + (int)$v['num'];
 
-             }
 
-             $chart_data = [
 
-                 ['name'=>'新成长失业青年','value'=>$resume_num1],
 
-                 ['name'=>'就业专业人员','value'=>$resume_num2],
 
-                 ['name'=>'在业人员','value'=>$resume_num3],
 
-             ];
 
-         }
 
-         $return_data = [
 
-             'date_aprams'      => $date_aprams,
 
-             'action_name'      => app('request')->route()->getName(),
 
-             'chart_data'       => $chart_data,
 
-             'resume_total'     => $resume_total
 
-         ];
 
-         if ($request->input('isExcel')==1) {
 
-             if ($chart_data) {
 
-                 foreach ($chart_data as $k => $v) {
 
-                     $rate = 0;
 
-                     if ($resume_total>0) {
 
-                         $rate = sprintf("%.4f", $v['value']>0?((int)$v['value']/(int)$resume_total):'0')*100;
 
-                     }
 
-                     $chart_data[$k]['rate'] = $rate;
 
-                 }
 
-                 $all_rate = 0;
 
-                 if ($resume_total>0) {
 
-                     $all_rate = 100;
 
-                 }
 
-                 $chart_data[] = array('name'=>'合计','value'=>$resume_total,'rate'=>$all_rate);
 
-             }
 
-             $export = new PersonTypeExport("总体分析 - ".$date_aprams['start_year']."年".$date_aprams['start_month']."月到".$date_aprams['end_year']."年".$date_aprams['end_month']."月按人员类别分组的供求人数");
 
-             $c = new Collection($chart_data);
 
-             $export->setCustomerData($c)->export();
 
-         } else {
 
-             return view('statistics.app.demand.person_type', $return_data);
 
-         }
 
-     }
 
-     
 
-     
 
-     public function ageGroup(Request $request)
 
-     {
 
-         $subsite_id = session('caiqing_susbite_id');
 
-         if ($subsite_id === null) {
 
-             $subsite_id = -1;
 
-         }
 
-         
 
-         $date_aprams = $this->getDateParams($request->all());
 
-         $start_time = date('Y-m-d H:i:s', strtotime($date_aprams['start_year'].'-'.$date_aprams['start_month']));
 
-         $endDate = date('Y-m-d H:i:s', strtotime($date_aprams['end_year'].'-'.$date_aprams['end_month']));
 
-         $end_time = date('Y-m-d H:i:s', strtotime("$endDate +1 month")-1);
 
-         
 
-         $cates = $this->categoryService->getCategories(['AIX_age'=>100]);
 
-         if (array_has($cates, 'AIX_age')) {
 
-             $age_cates = $cates['AIX_age'];
 
-         } else {
 
-             $age_cates = [];
 
-         }
 
-         $age_arr = [];
 
-         $age_val_arr = [];
 
-         if ($age_cates) {
 
-             foreach ($age_cates as $k => $v) {
 
-                 $age_arr[] = $v['demand'];
 
-                 if (preg_match_all('(\d+)', $v['demand'], $reg)) {
 
-                     $reg = $reg[0];
 
-                     if (count($reg)>1) {
 
-                         $min_age = $reg[0];
 
-                         $max_age = $reg[1];
 
-                     } else {
 
-                         $min_age = $reg[0];
 
-                         $max_age = '';
 
-                     }
 
-                     $age_val_arr[] = array('min_age'=>$min_age, 'max_age'=>$max_age);
 
-                 }
 
-             }
 
-         }
 
-         
 
-         $where_arr = $this->getJobWhere($subsite_id, $start_time, $end_time);
 
-         
 
-         $job_amounts = $this->jobsService->getJobAmountByAge($where_arr, $age_val_arr, $age_arr);
 
-         
 
-         $resume_nums = $this->resumeService->getResumeNumsByAgeGroup($subsite_id, $start_time, $end_time, $age_val_arr, $age_arr);
 
-         $job_total = array_sum($job_amounts);
 
-         $resume_total = array_sum($resume_nums);
 
-         $table_data = [];
 
-         foreach ($age_arr as $k => $v) {
 
-             $job_num = array_has($job_amounts, $v)?$job_amounts[$v]:0;
 
-             $resume_num = array_has($resume_nums, $v)?$resume_nums[$v]:0;
 
-             $job_rate = 0;
 
-             if ($job_total) {
 
-                 $job_rate = sprintf("%.4f", (int)$job_num/(int)$job_total)*100;
 
-             }
 
-             $resume_rate = 0;
 
-             if ($resume_total) {
 
-                 $resume_rate = sprintf("%.4f", (int)$resume_num/(int)$resume_total)*100;
 
-             }
 
-             $multiple = 0;
 
-             if ($resume_num) {
 
-                 $multiple = sprintf("%.2f", (int)$job_num/(int)$resume_num);
 
-             }
 
-             $table_data[] = ['name'=>$v, 'job_amount'=>$job_num,'job_rate'=>$job_rate, 'resume_num'=>$resume_num,'resume_rate'=>$resume_rate, 'multiple'=>$multiple];
 
-         }
 
-         $chart_data = $table_data;
 
-         
 
-         $total_job_rate = 0;
 
-         if ($job_total) {
 
-             $total_job_rate = 100;
 
-         }
 
-         $total_resume_rate = 0;
 
-         $total_multiple = 0;
 
-         if ($resume_total) {
 
-             $total_resume_rate = 100;
 
-             $total_multiple = sprintf("%.2f", (int)$job_total/(int)$resume_total);
 
-         }
 
-         $table_data[] = ['name'=>'合计', 'job_amount'=>$job_total, 'job_rate'=>$total_job_rate, 'resume_num'=>$resume_total, 'resume_rate'=>$total_resume_rate, 'multiple'=>$total_multiple];
 
-         $return_data = [
 
-             'date_aprams'      => $date_aprams,
 
-             'action_name'      => app('request')->route()->getName(),
 
-             'table_data'       => $table_data,
 
-             'chart_data'       => $chart_data
 
-         ];
 
-         if ($request->input('isExcel')==1) {
 
-             $export = new AgeExport("总体分析 - ".$date_aprams['start_year']."年".$date_aprams['start_month']."月到".$date_aprams['end_year']."年".$date_aprams['end_month']."月按年龄分组的供求人数");
 
-             $c = new Collection($table_data);
 
-             $export->setCustomerData($c)->export();
 
-         } else {
 
-             return view('statistics.app.demand.age', $return_data);
 
-         }
 
-     }
 
-     
 
-     public function sexGroup(Request $request)
 
-     {
 
-         $subsite_id = session('caiqing_susbite_id');
 
-         if ($subsite_id === null) {
 
-             $subsite_id = -1;
 
-         }
 
-         
 
-         $date_params = $this->getCompareDate($request->all());
 
-         $compare_start_date = $date_params['start_date_arr']?implode(' - ', $date_params['start_date_arr']):'';
 
-         $compare_end_date   = $date_params['end_date_arr']?implode(' - ', $date_params['end_date_arr']):'';
 
-         if ($date_params['end_date_arr']) {
 
-             $start_time = date('Y-m-d H:i:s', strtotime($date_params['end_date_arr'][0]));
 
-             $end_time = date('Y-m-d H:i:s', strtotime($date_params['end_date_arr'][1]." +1 day")-1);
 
-         } else {
 
-             $start_time = date('Y-m-d H:i:s', strtotime($date_params['start_date_arr'][0]));
 
-             $end_time = date('Y-m-d H:i:s', strtotime($date_params['start_date_arr'][1]." +1 day")-1);
 
-         }
 
-         
 
-         $compare_flag = false;
 
-         if (($date_params['end_date_arr'] != $date_params['start_date_arr']) && $date_params['end_date_arr'] && $date_params['start_date_arr']) {
 
-             $compare_flag = true;
 
-         }
 
-         
 
-         $resume_rst = $this->resumeService->getResumeBySexGroup($subsite_id, $start_time, $end_time);
 
-         $resume_data = $this->dealSexData($resume_rst, 1);
 
-         $resume_total = array_sum($resume_data);
 
-         $c_resume_data  = [];
 
-         $c_resume_total = 0;
 
-         $c_job_data     = [];
 
-         $c_job_total    = 0;
 
-         
 
-         $job_rst = $this->getJobNumsBySexGroup($subsite_id, $start_time, $end_time);
 
-         $job_data = $this->dealSexData($job_rst, 2);
 
-         $job_total = array_sum($job_data);
 
-         if ($compare_flag) {
 
-             $c_stime = date('Y-m-d H:i:s', strtotime($date_params['start_date_arr'][0]));
 
-             $c_etime = date('Y-m-d H:i:s', strtotime($date_params['start_date_arr'][1]." +1 day")-1);
 
-             $c_resume_rst = $this->resumeService->getResumeBySexGroup($subsite_id, $c_stime, $c_etime);
 
-             $c_resume_data = $this->dealSexData($c_resume_rst);
 
-             $c_resume_total = array_sum($c_resume_data);
 
-             $c_job_rst = $this->getJobNumsBySexGroup($subsite_id, $c_stime, $c_etime);
 
-             $c_job_data = $this->dealSexData($c_job_rst, 2);
 
-             $c_job_total = array_sum($c_job_data);
 
-         }
 
-         
 
-         $sex_cates = array('0'=>'不限','1'=>'男','2'=>'女');
 
-         $table_data = array();
 
-         $c_table_data = array();
 
-         foreach ($sex_cates as $k => $v) {
 
-             $job_amount = array_has($job_data, $k)?$job_data[$k]:0;
 
-             $resume_num = array_has($resume_data, $k)?$resume_data[$k]:0;
 
-             $job_rate = 0;
 
-             if ($job_total>0) {
 
-                 $job_rate = sprintf("%.4f", (int)$job_amount/(int)$job_total)*100;
 
-             }
 
-             $resume_rate = 0;
 
-             if ($resume_total>0) {
 
-                 $resume_rate = sprintf("%.4f", (int)$resume_num/(int)$resume_total)*100;
 
-             }
 
-             if ($resume_num==0 || $job_amount==0) {
 
-                 $multiple = 0;
 
-             } else {
 
-                 $multiple = $resume_num>0?sprintf("%.2f", (int)$job_amount/(int)$resume_num):'0';
 
-             }
 
-             $table_data[] = array(
 
-                 'name'=>$v,
 
-                 'job_amount'=>$job_amount,
 
-                 'job_rate'=>$job_rate,
 
-                 'resume_num'=>$resume_num,
 
-                 'resume_rate'=>$resume_rate,
 
-                 'multiple'=>$multiple
 
-             );
 
-             
 
-             $c_job_amount = array_has($c_job_data, $k)?$c_job_data[$k]:0;
 
-             $c_resume_num = array_has($c_resume_data, $k)?$c_resume_data[$k]:0;
 
-             $c_job_rate = 0;
 
-             if ($c_job_total>0) {
 
-                 $c_job_rate = sprintf("%.4f", (int)$c_job_amount/(int)$c_job_total)*100;
 
-             }
 
-             $c_resume_rate = 0;
 
-             if ($c_resume_total>0) {
 
-                 $c_resume_rate = sprintf("%.4f", (int)$c_resume_num/(int)$c_resume_total)*100;
 
-             }
 
-             if ($c_resume_num==0 || $c_job_amount==0) {
 
-                 $c_multiple = 0;
 
-             } else {
 
-                 $c_multiple = $c_resume_num>0?sprintf("%.2f", (int)$c_job_amount/(int)$c_resume_num):'0';
 
-             }
 
-             $c_table_data[] = array(
 
-                 'name'=>$v,
 
-                 'job_amount'=>$c_job_amount,
 
-                 'job_rate'=>$c_job_rate,
 
-                 'resume_num'=>$c_resume_num,
 
-                 'resume_rate'=>$c_resume_rate,
 
-                 'multiple'=>$c_multiple
 
-             );
 
-         }
 
-         
 
-         $all_job_rate = 0;
 
-         if ($job_total>0) {
 
-             $all_job_rate = sprintf("%.4f", (int)$job_total/(int)$job_total)*100;
 
-         }
 
-         $all_resume_rate = 0;
 
-         if ($resume_total>0) {
 
-             $all_resume_rate = sprintf("%.4f", (int)$resume_total/(int)$resume_total)*100;
 
-         }
 
-         $all_multiple = 0;
 
-         if ($resume_total>0) {
 
-             $all_multiple = sprintf("%.2f", (int)$job_total/(int)$resume_total);
 
-         }
 
-         $table_data[] = array(
 
-             'name'=>'合计',
 
-             'job_amount'=>$job_total,
 
-             'job_rate'=>$all_job_rate,
 
-             'resume_num'=>$resume_total,
 
-             'resume_rate'=>$all_resume_rate,
 
-             'multiple'=>$all_multiple
 
-         );
 
-         $call_job_rate = 0;
 
-         if ($c_job_total>0) {
 
-             $call_job_rate = sprintf("%.4f", (int)$c_job_total/(int)$c_job_total)*100;
 
-         }
 
-         $call_resume_rate = 0;
 
-         if ($c_resume_total>0) {
 
-             $call_resume_rate = sprintf("%.4f", (int)$c_resume_total/(int)$c_resume_total)*100;
 
-         }
 
-         $call_multiple = 0;
 
-         if ($c_resume_total>0) {
 
-             $call_multiple = sprintf("%.2f", (int)$c_job_total/(int)$c_resume_total);
 
-         }
 
-         $c_table_data[] = array(
 
-             'name'=>'合计',
 
-             'job_amount'=>$c_job_total,
 
-             'job_rate'=>$call_job_rate,
 
-             'resume_num'=>$c_resume_total,
 
-             'resume_rate'=>$call_resume_rate,
 
-             'multiple'=>$call_multiple
 
-         );
 
-         $return_data = [
 
-             'date_params'          => $date_params,
 
-             'compare_start_date'   => $compare_start_date,
 
-             'compare_end_date'     => $compare_end_date,
 
-             'action_name'          => app('request')->route()->getName(),
 
-             'compare_flag'         => $compare_flag,
 
-             'table_data'           => $table_data,
 
-             'compare_table_data'   => $c_table_data,
 
-             'job_total'            => $job_total,
 
-             'compare_job_total'    => $c_job_total,
 
-             'resume_total'         => $resume_total,
 
-             'compare_resume_total' => $c_resume_total
 
-         ];
 
-         return view('statistics.app.demand.sex', $return_data);
 
-     }
 
-     public function getJobNumsBySexGroup($subsite_id, $start_time, $end_time)
 
-     {
 
-         $job_where = [
 
-             ['created_at','<=',$end_time],
 
-             ['created_at','>=',$start_time],
 
-             ['valid','=',1]
 
-         ];
 
-         if (config('aix.companyset.comset.show_set.jobs_display')==1) {
 
-             $job_where[] = array('audit','=',1);
 
-         } else {
 
-             $job_where[] = array('audit','<>',3);
 
-         }
 
-         $company_where = array(array('utype','=',1),array('audit','<>',3));
 
-         if ($subsite_id != -1) {
 
-             $company_where[] = ['subsite_id','=',$subsite_id];
 
-         }
 
-         $fields = 'sum(amount) as num,sex';
 
-         $group_by = 'sex';
 
-         return $this->jobsService->getJobNumsByGroup($job_where, $company_where, $fields, $group_by);
 
-     }
 
-     public function dealSexData($data, $type = 1)
 
-     {
 
-         $rst = array();
 
-         if ($type == 1) {
 
-             if (count($data)) {
 
-                 foreach ($data as $k => $v) {
 
-                     $rst[$v->sex] = $v->num;
 
-                 }
 
-             }
 
-         } else {
 
-             if (count($data)) {
 
-                 foreach ($data as $k => $v) {
 
-                     $rst[$v['sex']] = $v['num'];
 
-                 }
 
-             }
 
-         }
 
-         return $rst;
 
-     }
 
-     public function getJobWhere($subsite_id, $start_time, $end_time)
 
-     {
 
-         $job_where = [
 
-             ['created_at','<=',$end_time],
 
-             ['created_at','>=',$start_time],
 
-             ['valid','=',1],
 
-             
 
-         ];
 
-         if (config('aix.companyset.comset.show_set.jobs_display')==1) {
 
-             $job_where[] = array('audit','=',1);
 
-         } else {
 
-             $job_where[] = array('audit','<>',3);
 
-         }
 
-         
 
-         $company_where = [['utype','=',1],['audit','<>',3]];
 
-         if ($subsite_id != -1) {
 
-             $company_where[] = ['subsite_id','=',$subsite_id];
 
-         }
 
-         return ['job_where'=>$job_where, 'company_where'=>$company_where];
 
-     }
 
-     public function getJobfairs($subsite_id)
 
-     {
 
-         $j_where = array();
 
-         if ($subsite_id != -1) {
 
-             $j_where[] = ['subsite_id','=',$subsite_id];
 
-         }
 
-         $j_where[] = ['holddate_end','<=',time()];
 
-         $j_order = 'id desc';
 
-         $jobfair_rst = $this->jobfairService->getJobfairs($j_where, $j_order);
 
-         $jobfairs = array();
 
-         if ($jobfair_rst->isNotEmpty()) {
 
-             foreach ($jobfair_rst as $k => $v) {
 
-                 $jobfairs[$v->id] = array('title'=>$v->title,'holddate_end'=>$v->holddate_end);
 
-             }
 
-         }
 
-         return $jobfairs;
 
-     }
 
- }
 
 
  |