CategoryMajorRepository = $CategoryMajorRepository; $this->CategoryJobsRepository = $CategoryJobsRepository; $this->CategoryDistrictRepository = $CategoryDistrictRepository; $this->CategoryGroupRepository = $CategoryGroupRepository; $this->CategoryRepository = $CategoryRepository; } /** * 获取专业--职位--地区--其他信息。 */ public function getCategory() { if (Cache::has('aix_category')) { return Cache::get('aix_category'); } else { /** * 专业 */ $major = $this->CategoryMajorRepository->getCategoryById(); $major_V = []; foreach ($major as $k => $v) { $major_V[] = $v['id'].','.$v['name']; } $major_par = []; foreach ($major as $key => $val) { $major_list = $this->CategoryMajorRepository->getCategoryById($val['id']); $imp = []; foreach ($major_list as $key1 => $val1) { $imp[] = implode(',', $val1); } $major_par[$val['id']] = implode('`', $imp); } /** * 职位信息 */ $jobs = $this->CategoryJobsRepository->getCategoryById(); $jobs_V = []; foreach ($jobs as $k => $v) { $jobs_V[] = $v['id'].','.$v['name']; } $jobs_par = []; foreach ($jobs as $key => $val) { $jobs_list = $this->CategoryJobsRepository->getCategoryById($val['id']); $kl = []; foreach ($jobs_list as $key1 => $val1) { $arr = explode(',', implode(',', $val1)); $kl[] = $arr[0].','.$arr[1]; $jobs_k = $this->CategoryJobsRepository->getCategoryById($val1['id']); $kmd = []; foreach ($jobs_k as $key2 => $val2) { $kmd[] = implode(',', $val2); } $jobs_par[$val1['id']] = implode('`', $kmd); } $jobs_par[$val['id']] = implode('`', $kl); } /** * 地区信息。 */ $district = $this->CategoryDistrictRepository->getCategoryById(); $district_V = []; $district_s = []; foreach ($district as $k => $v) { $district_V[] = $v['id'].','.$v['name']; $district_s[] = $v['spell'].','.$v['name']; } $district_par = []; $district_par_person = []; foreach ($district as $key => $val) { $district_list = $this->CategoryDistrictRepository->getCategoryById($val['id']); $kl = []; foreach ($district_list as $key1 => $val1) { $arr = explode(',', implode(',', $val1)); $kl[] = $arr[0].','.$arr[1]; $district_k = $this->CategoryDistrictRepository->getCategoryById($val1['id']); $kmd = []; $kmd_person = []; foreach ($district_k as $key2 => $val2) { $kmd[] = implode(',', $val2); $kmd_person[] = implode(',', $val2); } array_unshift($kmd, '0,不限,'.$val1['id'].',buxian'); $district_par[$val1['id']] = implode('`', $kmd); $district_par_person[$val1['id']] = implode('`', $kmd_person); } $district_par[$val['id']] = implode('`', $kl); $district_par_person[$val['id']] = implode('`', $kl); } /** * 其他信息。 */ $Groups = $this->CategoryGroupRepository->getCategoryGroup(); $Groups_arr = array_column($Groups, 'alias'); $category = $this->CategoryRepository->getCategoryInfo($Groups_arr); $category_V = []; foreach ($Groups_arr as $k => $v) { foreach ($category as $k1 => $v1) { if ($v==$v1['alias']) { $category_V[$v][] = $v1['id'].','.$v1['demand']; } } } Cache::put('aix_category', ['major'=>['first'=>$major_V,'sec'=>$major_par],'jobs'=>['first'=>$jobs_V,'sec'=>$jobs_par],'district'=>['first'=>$district_V,'sec'=>$district_par_person,'spell'=>$district_s,'person'=>$district_par],'other'=>$category_V], 86400); return ['major'=>['first'=>$major_V,'sec'=>$major_par],'jobs'=>['first'=>$jobs_V,'sec'=>$jobs_par],'district'=>['first'=>$district_V,'sec'=>$district_par_person,'spell'=>$district_s,'person'=>$district_par],'other'=>$category_V]; } } /** * 根据行业获取分类。 */ public function getCategoryByTrade($trade_arr) { $where = ''; if (!empty($trade_arr)) { foreach ($trade_arr as $key => $val) { $where .= "name LIKE '%" . $val . "%' OR "; } } if ($where != '') { $where = substr($where, 0, strlen($where) - 3); } return CategoryJobs::whereRaw($where)->pluck('name')->toArray(); } /** * [spell_assembly 数组转字符串] * @param [array] $data [被转换的数组] * @param string $p [间隔字符] * @return [string] [处理结果] */ public function spellAssembly($data, $p = ',', $s = '"') { foreach ($data as $key => $val) { $arr[] = $s.$val['spell'].','.$val['name'].$s; } $arr = implode($p, $arr); if (!$s) { return '"'.$arr.'"'; } return $arr; } public function getCategoryJobs($id) { return $this->CategoryJobsRepository->find($id); } //获取地标地段(找工作) public function getCitys($default_distinct = null) { if (!$default_distinct) { $default_distinct = config('aix.system.site_other.site_other.district'); $subsites = Cache::get('subsites_list'); if ($subsites) { if (get_subsite_id() > 0) { if ($subsites[get_subsite_id()]['district']) { $default_distinct = $subsites[get_subsite_id()]['district']; } } } } if ($default_distinct) { //后台设置默认地区 //获取所有地区信息 $city_cates = Cache::get('city_cate_list_'.get_subsite_id()); if (null === $city_cates) { $city_cates = $this->CategoryDistrictRepository->cityCateCache(); Cache::put('city_cate_list_'.get_subsite_id(), $city_cates, '86400'); } //获取所有地区搜索缓存 $city_searchs = Cache::get('city_search_list_'.get_subsite_id()); if ($city_searchs === null) { $city_searchs = $this->CategoryDistrictRepository->citySearchCache(); Cache::put('city_search_list_'.get_subsite_id(), $city_searchs, '86400'); } if (!strpos($default_distinct, ".")) { //$result['select'] = $city_cates['id'][$default_distinct]; if (preg_match('/^(\d{1,10},)*(\d{1,10})$/', $default_distinct)) { $result['select'] = $city_cates['id'][$default_distinct]; } else { $result['select'] = $city_cates['spell'][$default_distinct]; } $citycategory = $city_searchs[$result['select']['id']]; $temp = $result['select']['id']; $city = explode('_', $citycategory); } else { $citycategory = $default_distinct; $city = explode('.', $default_distinct); if (array_has($city, 2) && array_get($city, 2)) { $result['select'] = $city_cates['id'][$city[2]]; $temp = $city[2]; } elseif (array_has($city, 1) && array_get($city, 1)) { $result['select'] = $city_cates['id'][$city[1]]; $temp = $city[1]; } else { $result['select'] = $city_cates['id'][$city[0]]; $temp = $city[0]; } } $result['select']['citycategory'] = $city_cates['id'][$result['select']['id']]['spell']; if (/*!Cache::get('subsite_id') && */$city[1]) { $result['list'] = $this->CategoryDistrictRepository->getDistrictCache($city[1]); if (!$result['list']) { $result['list'] = $this->CategoryDistrictRepository->getDistrictCache($city[0]); } foreach ($result['list'] as $key => $val) { $result['list'][$key] = array('id'=>$key,'name'=>$val,'citycategory'=>$city_cates['id'][$key]['spell']); } $result['parent'] = $city_cates['id'][$city[1]]; $result['parent']['citycategory'] = $city_cates['id'][$result['parent']['id']]['spell']; } else if (/*!Cache::get('subsite_id') &&*/ $city[1]=='0') { $result['list'] = $this->CategoryDistrictRepository->getDistrictCache($city[0]); foreach ($result['list'] as $key => $val) { $result['list'][$key] = array('id'=>$key,'name'=>$val,'citycategory'=>$city_cates['id'][$key]['spell']); } $result['parent'] = $city_cates['id'][$city[0]]; $result['parent']['citycategory'] = $city_cates['id'][$result['parent']['id']]['spell']; } return $result; } return false; } public function getCategories($filter_data = array()) { $list = array(); if ($filter_data) { $cates = $this->CategoryRepository->getCategories(); if ($cates) { foreach ($cates as $key => $val) { if ($key == 'AIX_wage') { foreach ($val as $k => $v) { if (config('aix.system.site_other.site_other.site_salary') == 1) { $cates[$key][$k]['demand'] = $v['demand']; } else { $cates[$key][$k]['demand'] = $v['demand']; } } } } } foreach ($filter_data as $k => $v) { if (array_key_exists($k, $cates)) { $list[$k] = array_slice($cates[$k], 0, 3); if ($v) { $list[$k] = array_slice($cates[$k], 0, $v, true); } else { $list[$k] = $cates[$k]; } } else { $list[$k] = array(); } } } return $list; } public function getCitySpell() { $content = Cache::get('AIX_city_spell'); $content = null; if (null === $content) { //获取所有city spell信息 $spell_citys['QS_city_spell'] = $this->CategoryDistrictRepository->customDistrictCache(); $content = ''; foreach ($spell_citys as $key => $cate) { //$content .= "var ".$key."_parent=new Array({{$this->spellAssembly($cate[0])}});"; $content .= "var ".$key."=new Array();"; foreach ($cate[0] as $_key => $val) { $content .= $key."['".$val['spell']."']=".$this->spellAssembly($cate[$_key], '`', '').";"; if (array_get($cate, $_key)) { foreach ($cate[$_key] as $skey => $sval) { if (array_get($cate, $skey)) { $content .= $key."['".$sval['spell']."']=".$this->spellAssembly($cate[$skey], '`', '').";"; if (array_get($cate, $skey)) { foreach ($cate[$skey] as $skey4 => $sval4) { if (array_get($cate, $skey4)) { $content .= $key."['".$sval4['spell']."']=".$this->spellAssembly($cate[$skey4], '`', '').";"; foreach ($cate[$skey4] as $skey5 => $sval5) { if (array_get($cate, $skey5)) { $content .= $key."['".$sval5['spell']."']=".$this->spellAssembly($cate[$skey5], '`', '').";"; foreach ($cate[$skey5] as $skey6 => $sval6) { if (array_get($cate, $sval6)) { $content .= $key."['".$sval6['spell']."']=".$this->spellAssembly($cate[$skey6], '`', '').";"; } else { $content .= $key."['".$sval6['spell']."']='';"; } } } else { $content .= $key."['".$sval5['spell']."']='';"; } } } else { $content .= $key."['".$sval4['spell']."']='';"; } } } } else { $content .= $key."['".$sval['spell']."']= '';"; } } } } } } return $content; } public function getDefaultDistrictInfo() { $default_district = config('aix.system.site_other.site_other.district'); $subsites = Cache::get('subsites_list'); if ($subsites) { if (get_subsite_id() > 0) { if ($subsites[get_subsite_id()]['district']) { $default_district = $subsites[get_subsite_id()]['district']; } } } $district_info = array('default_district'=>'','default_district_spell'=>''); if ($default_district) { $default_district_arr = explode('.', $default_district); $default_district_spell_arr = array(); $city_cates = Cache::get('city_cate_list'); if (null === $city_cates) { $city_cates = $this->CategoryDistrictRepository->cityCateCache(); Cache::put('city_cate_list', $city_cates, '86400'); } foreach ($default_district_arr as $k => $v) { $default_district_spell_arr[] = $city_cates['id'][$v]['spell']; } $default_district_spell = implode('.', $default_district_spell_arr); $district_info = array('default_district'=>$default_district,'default_district_spell'=>$default_district_spell); } return $district_info; } //获取职位分类信息 public function getJobsCategories($where = array(), $limit = 0) { $result = Cache::get('jobs_custom_cate'); if (null === $result) { $result = $this->CategoryJobsRepository->jobsCategoryCache(); Cache::put('jobs_custom_cate', $result, '86400'); } if ($where) { if (array_has($where, 'id') && (array_get($where, 'id') !='all')) { $result = $result[intval($where['id'])]; } } if ($limit>0) { $result = array_slice($result, 0, $limit); } return $result; } // 获取职位分类信息内容 public function getJobsCategoryInfo() { $result = Cache::get('jobs_cate_list'); if (null === $result) { $result = $this->CategoryJobsRepository->jobsCateInfoCache(); Cache::put('jobs_cate_list', $result, '86400'); } return $result; } public function connectStatus($resume_uid, $resume_id) { $fill = false; $uid = 0; if (auth('web-member')->user()) { $uid = auth('web-member')->user()->id; $utype = auth('web-member')->user()->utype; } if (auth('web-company')->user()) { $uid = auth('web-company')->user()->id; $utype= auth('web-company')->user()->utype; } $rule = config('aix.companyset.comset.contact_set.showjobcontact'); if ($rule==0) { // 游客。 $fill = true; } elseif ($rule==1) { //登录 if ($uid) { $fill = true; } } elseif ($rule==2) { //下载后可见。 if ($uid) { if ($utype==2) { //个人 if ($resume_uid==$uid) { $fill = true; } } elseif ($utype==1) { $down = DB::table('company_down_resumes')->where(['resume_id'=>$resume_id,'company_uid'=>$uid])->first(); if ($down) { $fill = true; } $apply = DB::table('personal_jobs_apply')->where(['resume_id'=>$resume_id,'company_id'=>$uid])->first(); if ($apply) { $fill = true; } } } } return $fill; } //获取专业分类 public function getMajorCategory($pid = 'all') { $categories = $this->getCategory(); $lists = array(); if ($categories) { $major_category = array_get($categories, 'major'); if ($major_category && array_get($major_category, 'first')) { $first = array_get($major_category, 'first'); foreach ($first as $k => $v) { $cate = explode(',', $v); $lists[$cate[0]] = array('id'=>$cate[0],'categoryname'=>$cate[1]); } } if ($major_category && array_get($major_category, 'sec')) { $sec = array_get($major_category, 'sec'); foreach ($sec as $k => $v) { $cates = explode('`', $v); foreach ($cates as $key => $val) { $cate = explode(',', $val); $lists[$cate[2]]['subs'][] = array('id'=>$cate[0],'categoryname'=>$cate[1],'parent_id'=>$cate[2]); } } } } if ($pid != 'all') { return array_get($lists, $pid); } return $lists; } //获取专业信息 public function getMajorInfo($id = 'all') { $lists = Cache::get('major_data_list'); if ($lists === null) { $res = $this->CategoryMajorRepository->getMajorList(); foreach ($res as $k => $v) { $lists[$v['id']] = $v; } Cache::put('major_data_list', $lists, '86400'); } if ($id) { return array_get($lists, $id); } return $lists; } /** * 获取默认地区信息. */ public function getDefaultDistrict() { $defaultCity = self::DEFAULT_CITY; $disCity = self::DIS_CITY; $disHan = self::DIS_HAN; $default = config('aix.system.site_other.site_other.district'); if ($default) { $defaultCity = $default; $parent_id = isset(explode('.', $default)[0]) ? explode('.', $default)[0] : ''; if ($parent_id) { $distirctCity = $this->CategoryDistrictRepository->getCategoryByParent($parent_id); $disCity = $defaultCity.'.'.$distirctCity[0]->id; $disHan = $distirctCity[0]->name; } } return (object)['defaultCity'=>$defaultCity,'disCity'=>$disCity,'disHan'=>$disHan]; } public function getAllJobsCategory() { //$result = Cache::get('all_jobs_cate'); //if (null === $result) { $result = $this->CategoryJobsRepository->getAllJobsCategories(0); //} //Cache::put('all_jobs_cate', $result, '86400'); return $result; } }