db, $this->def); return $CompanyM -> getList($whereData , $data); } /** * @desc 获取缓存数据 * * @param array $options * @return array $cache */ private function getClass($options) { include_once ('cache.model.php'); $cacheM = new cache_model($this->db, $this->def); $cache = $cacheM -> GetCache($options); return $cache; } function getSpecial($whereData=array(),$data=array()){ $ListNew = array(); $data['field'] = empty($data['field']) ? '*' : $data['field']; $List = $this -> select_all('special',$whereData,$data['field']); if(!empty( $List )){ $ListNew['list'] = $List; } return $ListNew; } function getSpecialOne($whereData=array(),$data=array()){ if($whereData){ $data['field'] = empty($data['field']) ? '*' : $data['field']; $List = $this -> select_once('special',$whereData,$data['field']); if(!empty($List)){ $List['ctime_n']=date('Y年-m月-d日',$List['ctime']); $List['etime_n']=date('Y年-m月-d日',$List['etime']); $List['intro']=str_replace(array("&","background-color:#ffffff","background-color:#fff","white-space:nowrap;"),array("&",'','',''),$List["intro"]); if($List['pic']){ $List['pic'] = checkpic($List['pic']); } if($List['background']){ $List['background'] = checkpic($List['background']); } if($List['wappic']){ $List['wappic'] = checkpic($List['wappic']); } if($List['wapback']){ $List['wapback'] = checkpic($List['wapback']); } if($List['limit']>$List['num']){ $List['apply'] = '1'; } } } return $List; } function addSpecial($setData=array()){ if(!empty($setData)){ $nid = $this -> insert_into('special',$setData); } return $nid; } function upSpecial($whereData=array(),$data=array()){ if(!empty($whereData)){ $nid = $this -> update_once('special',$data,$whereData); } return $nid; } function addSpecialCom($setData=array()){ if(!empty($setData)){ $nid = $this -> insert_into('special_com',$setData); } return $nid; } function upSpecialCom($whereData=array(),$data=array()){ if(!empty($whereData)){ $nid = $this -> update_once('special_com',$data,$whereData); } return $nid; } function getSpecialComOne($whereData=array(),$data=array()){ if($whereData){ $data['field'] = empty($data['field']) ? '*' : $data['field']; $List = $this -> select_once('special_com',$whereData,$data['field']); } return $List; } //删除专题 function delSpecial($whereData,$data){ if($data['type']=='one'){ $limit = 'limit 1'; } if($data['type']=='all'){ $limit = ''; } $special = $this->getSpecialList(array('id'=>$whereData['id']),array('field'=>'`pic`,`background`')); $result = $this -> delete_all('special',$whereData,$limit); if(is_array($special['list']) && $result){ $this -> delSpecialCom(array('sid'=>$whereData['id']),$data['type']); } return $result; } //删除专题商家 function delSpecialCom($whereData,$data){ if($data['type']=='one'){ $limit = 'limit 1'; } if($data['type']=='all'){ $limit = ''; } if($data['uid']){ $getWhere = array('uid'=>$data['uid'],'id'=>$whereData['id'],'status'=>0); }else{ $getWhere = array('id'=>$whereData['id'],'status'=>0); } $rows = $this->getSpecialComList($getWhere,array('field'=>'`uid`,`integral`')); if(is_array($rows['list'])){ require_once ('integral.model.php'); $IntegralM = new integral_model($this->db, $this->def); foreach($rows['list'] as $val){ if($val['integral']>0){ $IntegralM->company_invtal($val['uid'],2,$val['integral'],true,"取消专题招聘报名,退还".$this->config['integral_pricename'],true,2,'integral'); } } } $result = $this -> delete_all('special_com',$whereData,$limit); return $result; } //获取专题商家列表 function getSpecialComList($whereData=array(),$data=array()){ $ListNew = array(); $data['field'] = empty($data['field']) ? '*' : $data['field']; $List = $this -> select_all('special_com',$whereData,$data['field']); $jobinfo=array(); if(!empty( $List )){ foreach($List as $val){ if (!empty($val['uid'])) { $uid[] = $val['uid']; } if (!empty($val['sid'])) { $sid[] = $val['sid']; } } if (!empty($uid)){ $comWhere['uid'] = array('in',pylode(',',$uid)); $company = $this->getComList($comWhere,array('field'=>'`uid`,`name`,`hy`,`logo`,`mun`')); if (isset($data['utype']) && $data['utype']=='wxapp') { $job = $this->select_all("company_job",array('uid'=>array('in',pylode(',',$uid)),'state'=>1,'status'=>0,'orderby'=>'lastupdate,desc'),'`id`,`uid`,`name`,`minsalary`,`maxsalary`,`exp`,`edu`'); }elseif(isset($data['utype']) && $data['utype']=='admin') { $job = $this->select_all("company_job",array('uid'=>array('in',pylode(',',$uid)),'state'=>1,'orderby'=>'lastupdate,desc'),'`id`,`uid`,`name`,`minsalary`,`maxsalary`,`exp`,`edu`'); } } if (!empty($sid) && $data['utype'] == 'user'){ $special = $this->getSpecial(array('id'=>array('in',pylode(',',$sid))),array('field'=>'id,title,intro')); } if(!empty($job)){ $cache = $this -> getClass(array('hy','com')); foreach($job as $k=>$v){ $v['edu_n']=$cache['comclass_name'][$v['edu']]; $v['exp_n']=$cache['comclass_name'][$v['exp']]; if($v['minsalary']&&$v['maxsalary']){ if($this ->config['resume_salarytype']==1){ $v['job_salary'] =$v['minsalary']."-".$v['maxsalary']; }else{ if($v['maxsalary']<1000){ if($this->config['resume_salarytype']==2){ $v['job_salary'] = "1千以下"; }elseif($this->config['resume_salarytype']==3){ $v['job_salary'] = "1K以下"; }elseif($this->config['resume_salarytype']==4){ $v['job_salary'] = "1k以下"; } }else{ $v['job_salary'] = changeSalary($v['minsalary'])."-".changeSalary($v['maxsalary']); } } }elseif($v['minsalary']){ if($this ->config['resume_salarytype']==1){ $v['job_salary'] =$v['minsalary']; }else{ $v['job_salary'] =changeSalary($v['minsalary']); } }else{ $v['job_salary'] ="面议"; } $jobinfo[$v['uid']][]=$v; } } foreach($List as $key=>$val){ if (isset($data['utype']) && $data['utype']=='admin') { foreach($company['list'] as $v){ if($val['uid']==$v['uid']){ $List[$key]['name'] = $v['name']; } } } if (isset($data['utype']) && ($data['utype']=='wxapp' || $data['utype'] == 'gl')) { $List[$key]['hyname'] = ''; $List[$key]['mun_n'] = ''; foreach($company['list'] as $v){ if($val['uid']==$v['uid']){ $List[$key]['name_n'] = $v['name']; $List[$key]['hyname'] = $v['hy_n']; $List[$key]['logo'] = checkpic($v['logo'],$this->config['sy_unit_icon']); $List[$key]['mun_n'] = $v['mun_n']; $List[$key]['url'] = Url('company', array('c'=>'show','id'=>$v['uid'])); $List[$key]['wapurl'] = Url('wap', array('c'=>'company','a'=>'show','id'=>$v['uid'])); } } } if (isset($data['utype']) && $data['utype'] == 'user'){ foreach($special['list'] as $v){ if($val['sid']==$v['id']){ $List[$key]['title']=$v['title']; $List[$key]['intro']=$v['intro']; } } } if (!empty($jobinfo)){ $List[$key]['jobs'] = $jobinfo[$val['uid']]; } if (isset($val['time'])){ $List[$key]['spetime_n'] = date('Y-m-d',$val['time']); } } $ListNew['list'] = $List; } return $ListNew; } //获取专题列表 function getSpecialList($whereData=array(),$data=array()){ $ListNew = array(); $List = $this -> getSpecial($whereData,$data['field']); if(!empty( $List )){ foreach($List['list'] as $key=>$val){ $zid[] = $val['id']; $List['list'][$key]['ctime_n'] = date('Y-m-d',$val['ctime']); if(!empty($val['pic'])) { $List['list'][$key]['pic_n'] = checkpic($val['pic']); }else{ $List['list'][$key]['pic_n'] = ""; } if(!empty($val['wappic'])){ $List['list'][$key]['wappic_n'] = checkpic($val['wappic']); }else{ $List['list'][$key]['wappic_n'] = ""; } } if ($data['utype']=='admin') { $oneWhere['sid'] = array('in',pylode(",",$zid)); $oneWhere['groupby'] = 'sid'; $all = $this->getSpecialComList($oneWhere,array('field'=>'`sid`,count(id) as num')); $twoWhere['sid'] = array('in',pylode(",",$zid)); $twoWhere['status'] = '0'; $twoWhere['groupby'] = 'sid'; $status = $this->getSpecialComList($twoWhere,array('field'=>'`sid`,count(id) as num')); foreach($List['list'] as $key=>$v){ foreach($all['list'] as $val){ if($v['id'] == $val['sid']){ $List['list'][$key]['comnum'] = $val['num']>=0 ? $val['num']:0; } } foreach($status['list'] as $val){ if($v['id'] == $val['sid']){ $List['list'][$key]['booking'] = $val['num']>=0 ? $val['num']:0; } } } } $ListNew['list'] = $List['list']; } return $ListNew; } public function getSpecialComNum($Where=array()){ return $this->select_num('special_com',$Where); } public function addSpecialComInfo($data=array()){ $id = (int)$data['id']; if($data['uid']&&$data['usertype']=='2'){ $info = $this->getSpecialOne(array("id"=>$id)); if($info['com_bm']!='1'){ return array('msg'=>'该专题禁止报名!','errcode'=>8); }else if($info['etime']'该专题报名已结束!','errcode'=>8); } require_once ('statis.model.php'); $statisM = new statis_model($this->db, $this->def); $statis = $statisM->getInfo($data['uid'],array("usertype"=>'2','field'=>'integral,`rating`')); $isapply = $this->getSpecialComNum(array("uid"=>$data['uid'],"sid"=>$id)); $applynum = $this->getSpecialComNum(array("sid"=>$id)); if($isapply){ return array('msg'=>'您已报名该专题,请等待管理员审核!','errcode'=>8); } if($info['rating']){ $rating = @explode(',',$info['rating']); } $jobnum = $this->select_num('company_job',array("uid"=>$data['uid'],"state"=>'1','sdate'=>array('<',time()))); if($info['limit']<=$applynum){ return array('msg'=>'报名已满,请下次提前报名!','errcode'=>8); } if($jobnum<1){ return array('msg'=>'您暂无公开且合适职位!','errcode'=>8); } if($rating&&is_array($rating)){ if(!in_array($statis['rating'],$rating)){ require_once ('rating.model.php'); $ratingM = new rating_model($this->db, $this->def); $ratings = $ratingM->getList(array("display"=>1,'category'=>1,'id'=>array('in',$info['rating'])),array("field"=>"`id`,`name`")); $rname = array(); foreach($ratings as $val){ $rname[] = $val['name']; } return array('msg'=>'只有'.@implode('、',$rname).'才能报名该专题!','errcode'=>8); } } if($statis['integral']<$info['integral']){ return array('msg'=>$this->config['integral_pricename'].'不足,请先充值!','errcode'=>8); } require_once ('integral.model.php'); $integralM = new integral_model($this->db, $this->def); $nid = $integralM->company_invtal($data['uid'],2,$info['integral'],false,"报名专题招聘",true,2,'integral',9); if($nid){ $this->insert_into('special_com',array("sid"=>$id,"uid"=>$data['uid'],'integral'=>$info['integral'],'status'=>'0','time'=>time())); $cominfo = $this->select_once('company',array('uid'=>$data['uid']),'`name`'); require_once('admin.model.php'); $adminM = new admin_model($this->db,$this->def); $adminM->sendAdminMsg(array('first'=>'有新的专题报名需要审核,企业《'.$cominfo['name'].'》报名了专题《'.$info['title'].'》。','type'=>19)); return array('msg'=>'报名成功,请耐心等我们工作人员审核!','errcode'=>9,'url'=>$_SERVER['HTTP_REFERER']); }else{ return array('msg'=>'报名失败,请稍后重试!','errcode'=>8,'url'=>$_SERVER['HTTP_REFERER']); } }else{ return array('msg'=>'只有企业用户才能报名!','errcode'=>8); } } // gl模板所需的参会企业行业 function getSpecialHy($uid) { $cn = array(); $cw = array('uid'=>array('in',pylode(',', $uid)),'r_status'=>1,'hy'=>array('>',0),'groupby'=>'hy'); $joblist = $this->select_all('company_job', array('uid'=>array('in',pylode(',',$uid)),'r_status'=>1,'state'=>1,'status'=>0),'`uid`'); if (!empty($joblist)){ foreach ($joblist as $v){ $juid[] = $v['uid']; } $juid = array_unique($juid); $cw['uid'] = array('in', pylode(',', $juid)); $com = $this->select_all('company', $cw,'hy,count(hy) as hynum'); foreach ($com as $v){ $cn[] = $v['hynum']; } // 按行业对应企业数量,进行降序排列 array_multisort($cn,SORT_DESC,SORT_NUMERIC,$com); } $jn = array(); $jw = array('uid'=>array('in',pylode(',', $uid)),'r_status'=>1,'state'=>1,'status'=>0,'hy'=>array('>',0),'groupby'=>'hy'); $job = $this->select_all('company_job', $jw,'hy,count(hy) as hynum'); foreach ($job as $v){ $jn[] = $v['hynum']; } // 按行业对应企业数量,进行降序排列 array_multisort($jn,SORT_DESC,SORT_NUMERIC,$job); $cache = $this -> getClass('hy'); $hyname = $cache['industry_name']; $ch = $jh = array(); if (!empty($com)){ foreach ($com as $v){ $ch[] = array('id'=>$v['hy'],'name'=>$hyname[$v['hy']]); } } if (!empty($job)){ foreach ($job as $v){ $jh[] = array('id'=>$v['hy'],'name'=>$hyname[$v['hy']]); } } return array('comhy'=>$ch, 'jobhy'=>$jh); } // gl模板精选企业 function glComList($sid, $hy, $page, $numb) { $sp = $this -> select_all('special_com',array('sid'=>$sid, 'status'=>1),'uid'); if (!empty($sp)){ foreach ($sp as $v){ $uid[] = $v['uid']; } // page从0开始 if(!empty($page)){ $pagenav = ($page)*$numb; $limit = array($pagenav,$numb); }else{ $limit = array('',$numb); } $where = array('uid'=>array('in',pylode(',',$uid))); if (!empty($hy)){ $where['hy'] = $hy; } // 先查出所有企业 $comlist = $this->select_all('company', $where, '`uid`'); if (!empty($comlist)){ foreach ($comlist as $v){ $cuid[] = $v['uid']; } // 在查出所有企业中,有职位的企业 $joblist = $this->select_all('company_job', array('uid'=>array('in',pylode(',',$cuid)),'r_status'=>1,'state'=>1,'status'=>0),'`uid`'); if (!empty($joblist)){ foreach ($joblist as $v){ $juid[] = $v['uid']; } $juid = array_unique($juid); $where['uid'] = array('in', pylode(',', $juid)); $num = $this->select_num('company', $where); $where['limit'] = $limit; // 排序按企业登录时间 $where['orderby'] = 'login_date'; $company = $this->getComList($where, array('logo'=>1,'url'=>1,'field'=>'`uid`,`name`,`hy`,`logo`,`logo_status`,`mun`,`content`')); if (!empty($company)){ foreach ($company['list'] as $v){ $cuid[] = $v['uid']; } $jobs = $this->select_all('company_job', array('uid'=>array('in',pylode(',',$cuid)),'r_status'=>1,'state'=>1,'status'=>0),'`uid`'); foreach ($company['list'] as $k=>$v){ $content = strip_tags($v['content']); $content = str_replace(' ', '', $content); $company['list'][$k]['content'] = mb_substr($content, 0,30); foreach ($jobs as $val){ if ($v['uid'] == $val['uid']){ $company['list'][$k]['joblist'][] = $val; } } } foreach ($company['list'] as $k=>$v){ if (empty($v['joblist'])){ unset($company['list'][$k]); } } } } } } $return['list'] = isset($company['list']) ? $company['list'] : array(); $return['count'] = isset($num) ? ceil($num/$numb) : 1; return $return; } // gl模板精选职位 function glJobList($data = array() ) { $sid = $data['sid']; $hy = intval($data['hy']); $page = intval($data['page']); $numb = intval($data['numb']); $keyword = trim($data['keyword']); $type = trim($data['type']); $sp = $this -> select_all('special_com',array('sid'=>$sid, 'status'=>1),'uid'); if (!empty($sp)){ foreach ($sp as $v){ $uid[] = $v['uid']; } // page从0开始 if(!empty($page)){ $pagenav = ($page)*$numb; $limit = array($pagenav,$numb); }else{ $limit = array('',$numb); } $where = array('uid'=>array('in',pylode(',',$uid)),'r_status'=>1,'state'=>1,'status'=>0); if (!empty($hy)){ $where['hy'] = $hy; } $num = $this->select_num('company_job', $where); if (!empty($keyword)){ if ($type == 'qy'){ $where['com_name'] = array('like', $keyword); }elseif ($type == 'zw'){ $where['name'] = array('like', $keyword); } } $where['limit'] = $limit; // 排序按企业登录时间 $where['orderby'] = 'lastupdate'; require_once ('job.model.php'); $JobM = new job_model($this->db, $this->def); $job = $JobM->getList($where, array('isurl'=>'yes','utype'=>'wxapp')); } $return['list'] = isset($job['list']) ? $job['list'] : array(); $return['count'] = isset($num) ? ceil($num/$numb) : 1; return $return; } /** * gl模板名企 */ public function glFamous($where = array()) { $where['famous'] = 1; $where['status'] = 1; $list = $this->select_all('special_com', $where, '`uid`'); foreach ($list as $v){ $uid[]=$v['uid']; } $com = $this->getComList(array('uid'=>array('in',pylode(',', $uid)),'r_status'=>1), array('logo'=>1)); $hjwhere['uid'] = array('in',pylode(',', $uid)); $hjwhere['state'] = 1; $hjwhere['status'] = 0; $hjwhere['r_status'] = 1; require_once ('job.model.php'); $jobM = new job_model($this->db, $this->def); $hjrows = $jobM -> getList($hjwhere); foreach ($list as $k => $v){ foreach ($com['list'] as $val){ if ($v['uid'] == $val['uid']){ if($val['shortname']){ $list[$k]['name'] = $val['shortname']; }else{ $list[$k]['name'] = $val['name']; } $list[$k]['hot_pic'] = $val['logo']; $list[$k]['citystr'] = $val['citystr']; $list[$k]['hy_n'] = $val['hy_n']; $list[$k]['pr_n'] = $val['pr_n']; $list[$k]['mun_n'] = $val['mun_n']; $list[$k]['content'] = mb_substr(strip_tags($val['content']), 0,100); } } $list[$k]['joblist'] = array(); foreach ($hjrows['list'] as $val){ if ($v['uid'] == $val['uid']){ $list[$k]['joblist'][] = $val; } } } foreach ($list as $k => $v){ if (empty($v['joblist'])){ unset($list[$k]); }else{ foreach ($v['joblist'] as $jk=>$jv){ if($jk > 4){ unset($v['joblist'][$jk]); } } $list[$k]['joblist'] = $v['joblist']; } } $list = array_values($list); return $list; } } ?>