<?php
|
|
class once_model extends model{
|
private function getClass($options){
|
if (!empty($options)){
|
include_once('cache.model.php');
|
$cacheM = new cache_model($this->db,$this->def);
|
$cache = $cacheM -> GetCache($options);
|
return $cache;
|
}
|
}
|
/**
|
* 查询全部信息
|
* @param 表:once_job
|
* @param 功能说明:获取once_job表里面所有店铺信息
|
* @param 引用字段:$whereData:条件 2:$data:查询字段
|
*
|
*/
|
public function getOnceList($whereData,$data=array()){
|
$OnceNew = array();
|
$field = $data['field'] ? $data['field'] : '*';
|
$List = $this -> select_all('once_job',$whereData,$field);
|
$cache = $this -> getClass(array('city'));
|
if(!empty($List) && $List){
|
foreach($List as $k=>$v){
|
$List[$k]['ctime_n'] = date("Y-m-d",$v['ctime']);
|
$List[$k]['linkman'] = mb_substr($v['linkman'], 0,5,'utf-8');
|
if($v['edate'] < time()){
|
$List[$k]['status'] = 2;
|
}
|
if($v['provinceid']){
|
$List[$k]['city_n'] = $cache['city_name'][$v['provinceid']];
|
}
|
if($v['cityid']){
|
$List[$k]['city_n'].= '-'.$cache['city_name'][$v['cityid']];
|
}
|
if($v['three_cityid']){
|
$List[$k]['city_n'].= '-'.$cache['city_name'][$v['three_cityid']];
|
}
|
//图片显示
|
$List[$k]['pic_n'] = checkpic($v['pic'],$this->config['sy_once_icon']);
|
}
|
}
|
return $List;
|
}
|
/**
|
* 查询单条信息
|
* @param 查询表:once_job
|
* @param 功能说明:根据条$id 获取once_job表里面 单条信息
|
* @param 引用字段:$id :条件 2:$data:查询字段
|
*
|
*/
|
public function getOnceInfo($where,$data=array())
|
{
|
$select = $data['field'] ? $data['field'] : '*';
|
$Info = $this -> select_once('once_job', $where, $select);
|
|
if($Info && is_array($Info)){
|
$cache = $this -> getClass(array('city'));
|
|
if (!empty($Info['pic'])){
|
$Info['pic_n'] = checkpic($Info['pic'],$this->config['sy_once_icon']);
|
}
|
if($Info['require']){
|
$Info['require_n'] = str_replace("\r\n","<br>",$Info['require']);
|
$Info['require_n'] = str_replace("\n","<br>",$Info['require_n']);
|
}
|
if($Info['ctime']){
|
$Info['ctime_n'] = date("Y-m-d",$Info['ctime']);
|
}
|
if($Info['edate']){
|
//有效期天数
|
if($Info['edate']>time()){
|
$Info['day_n'] = ceil(($Info['edate']-time())/86400);
|
}
|
$Info['edate_n'] = date("Y-m-d",$Info['edate']);
|
}
|
|
if($Info['provinceid']){
|
$Info['city_n'] = $cache['city_name'][$Info['provinceid']];
|
}
|
if($Info['cityid']){
|
$Info['city_n'].= '-'.$cache['city_name'][$Info['cityid']];
|
}
|
if($Info['three_cityid']){
|
$Info['city_n'].= '-'.$cache['city_name'][$Info['three_cityid']];
|
}
|
}
|
return $Info;
|
}
|
|
/**
|
* @desc 查询店铺招聘数目
|
* @param array $where
|
* @return boolean|string|void
|
*/
|
public function getOnceNum($where = array()) {
|
|
return $this -> select_num('once_job', $where);
|
|
}
|
|
/**
|
* 删除信息
|
* @param 表:once_job
|
* @param 功能说明:根据条件$id 删除once_job表里面信息
|
* @param 引用字段:$id :条件 2:$data:字段
|
*
|
*/
|
|
public function delOnce($id,$data=array()){
|
if(!empty($id)){
|
if(is_array($id)){
|
|
$ids = $id;
|
$return['layertype'] = 1;
|
}else{
|
|
$ids = @explode(',', $id);
|
$return['layertype'] = 0;
|
}
|
$id = pylode(',', $ids);
|
|
$return['id'] = $this -> delete_all('once_job',array('id' => array('in',$id)),'');
|
|
if($return['id']){
|
|
$return['msg'] = '店铺招聘(ID:'.$id.')删除成功';
|
$return['errcode'] = '9';
|
}else{
|
|
$return['msg'] = '店铺招聘(ID:'.$id.')删除失败';
|
$return['errcode'] = '8';
|
}
|
}else{
|
|
$return['msg'] = '系统繁忙';
|
$return['errcode'] = '8';
|
$return['layertype'] = 0;
|
}
|
|
return $return;
|
}
|
|
/**
|
* 审核信息
|
* @param 表:once_job
|
* @param 功能说明:根据条件$id 审核once_job表里面信息
|
* @param 引用字段:$id :条件 2:$data['status']:审核状态
|
*
|
*/
|
public function setOnceStatus($id,$data = array()){
|
|
if(!empty($id)){
|
|
$where['id'] = array('in',pylode(',',$id));
|
$updata = array(
|
'status' => $data['status']==2?1:$data['status'],
|
);
|
if($data['status']==2){
|
$this -> update_once('company_order',array('order_state'=>2),array('once_id'=>array('in',pylode(",",$id)),'order_state'=>1));
|
$this -> update_once('once_job',array('pay'=>'2'),array('id'=>array('in',pylode(",",$id)),'pay'=>1));
|
}
|
$wfpay = $this->select_all('once_job',array('id'=>array('in',pylode(",",$id)),'pay'=>'1'));
|
if($wfpay){
|
$return['status'] = 3;
|
}else{
|
$nid = $this -> update_once('once_job',$updata,$where);
|
if($nid){
|
$return['status'] = $data['status']==2?1:$data['status'];
|
}
|
}
|
if($nid){
|
include_once('log.model.php');
|
$logM = new log_model($this->db, $this->def);
|
$logM->addAdminLog('店铺(ID:'.$id.')审核成功');
|
}
|
return $return;
|
}
|
}
|
/**
|
* 更新信息
|
* @param 表:once_job
|
*
|
*/
|
public function upOnce($upData = array(),$whereData = array()){
|
|
return $this -> update_once('once_job',$upData,$whereData);
|
}
|
/**
|
* 添加、更新信息
|
* @param 表:once_job
|
* @param 功能说明:根据条件$id 修改once_job表里面信息
|
* @param 引用字段:$id :条件 2:$data:引用字段名称
|
* @param $data['password'] :密码是否修改
|
*
|
*/
|
|
public function addOnceInfo($data = array(),$type=''){
|
|
$post = $data['post'];
|
$id = intval($data['id']);
|
include_once ('cache.model.php');
|
|
$cacheM = new cache_model($this->db, $this->def);
|
|
$cache = $cacheM -> GetCache('city');
|
$citymsg = false;
|
if(!empty($cache['city_type'])){
|
if($post['cityid']==''){
|
$citymsg = true;
|
}
|
}else{
|
if($post['provinceid']==''){
|
$citymsg = true;
|
}
|
}
|
if($post['title']==''){
|
return array('msg'=>'请填写职位名称!','errcode'=>8);
|
}
|
if ($post['title'] && mb_strlen($post['title'],'utf8')>30){
|
return array('msg'=>'我想招聘标题最多30个字!','errcode'=>8);
|
}
|
if($post['salary']==''){
|
return array('msg'=>'请填写工资!','errcode'=>8);
|
}
|
if($post['edate']==''){
|
return array('msg'=>'请填写有效期!','errcode'=>8);
|
}
|
if($citymsg){
|
return array('msg'=>'请选择工作地区!','errcode'=>8);
|
}
|
if($post['address']==''){
|
return array('msg'=>'请选择工作地点!','errcode'=>8);
|
}
|
if($post['require']==''){
|
return array('msg'=>'请填写招聘要求!','errcode'=>8);
|
}
|
if($post['companyname']==''){
|
return array('msg'=>'请填写店铺名称!','errcode'=>8);
|
}
|
if($post['phone']==''){
|
return array('msg'=>'请填写联系电话!','errcode'=>8);
|
}
|
if($post['linkman']==''){
|
return array('msg'=>'请填写联系人!','errcode'=>8);
|
}
|
include_once ('notice.model.php');
|
$noticeM = new notice_model($this->db, $this->def);
|
//短信验证
|
if ($this->config['sy_msg_isopen']==1) {
|
|
if (isset($data['moblie_code']) && !empty($data['moblie_code'])) {
|
$companywhere['check'] = $post['phone'];
|
$companywhere['type'] = 2;
|
$companywhere['orderby'] = array('ctime,desc');
|
include_once('company.model.php');
|
$CompanyM = new company_model($this->db, $this->def);
|
$cert_arr = $CompanyM->getCertInfo($companywhere);
|
if (is_array($cert_arr)) {
|
$checkTime = $noticeM->checkTime($cert_arr['ctime']);
|
if ($checkTime) {
|
$res = $data['moblie_code'] == $cert_arr['check2'] ? true : false;
|
if ($res == false) {
|
return array('msg' => '短信验证码错误!', 'errcode' => '8');
|
}
|
} else {
|
return array('msg' => '验证码验证超时,请重新点击发送验证码!', 'errcode' => '8');
|
}
|
} else {
|
return array('msg' => '验证码发送不成功,请重新点击发送短信验证码!', 'errcode' => '8');
|
}
|
}
|
}else{
|
if($type!='admin' && $type!='wxapp'){
|
if ($this->config['code_kind'] ==1) {
|
$result = $noticeM->jycheck($_POST['authcode'], '店铺招聘');
|
|
if (!empty($result)) {
|
return array('msg' => $result['msg'], 'errcode' => 8);
|
}
|
}
|
}
|
}
|
if($post['password']){
|
$post['password'] = md5($post['password']);
|
}else{
|
unset($post['password']);
|
}
|
|
if($post['file']['tmp_name'] || $post['base']){
|
|
$upArr = array(
|
'file' => $post['file'],
|
'dir' => 'once',
|
'base' => $post['base'],
|
'preview' => $post['preview']
|
);
|
|
$result = $this -> upload($upArr);
|
|
if (!empty($result['msg'])){
|
|
$return['msg'] = $result['msg'];
|
$return['errcode'] = 8;
|
return $return;
|
|
}elseif (!empty($result['picurl'])){
|
|
$pictures = $result['picurl'];
|
|
}
|
|
}
|
|
unset($post['file']);
|
unset($post['base']);
|
unset($post['preview']);
|
if(isset($pictures)){
|
|
$post['pic'] = $pictures;
|
|
}
|
|
if(!empty($id)){
|
if($type!='admin'){
|
|
$arr = $this->getOnceInfo(array('id'=>$id,'password'=>$post['password']));
|
|
if(empty($arr)){
|
if($data['utype']=='wap'){
|
$return['url'] = Url('wap',array('c'=>'once','a'=>'show','id'=>$id));
|
}
|
$return['msg'] = '密码不正确';
|
$return['errcode'] = 8;
|
return $return;
|
}
|
}
|
$nid = $this -> update_once('once_job',$post,array('id'=>$id));
|
|
if($nid){
|
if($this->config['com_fast_status']=="0" && $type !='admin'){
|
require_once('admin.model.php');
|
$adminM = new admin_model($this->db,$this->def);
|
$adminM->sendAdminMsg(array('first'=>'有新的店铺招聘《'.$post['title'].'》需要审核','type'=>17));
|
$msg="修改成功,等待审核!";
|
}else{
|
$msg="修改成功!";
|
}
|
if($data['utype']=='wap'){
|
$return['url']=Url('wap',array('c'=>'once'));
|
}else{
|
$return['url']=Url('once');
|
}
|
$return['msg'] = $msg;
|
$return['errcode'] = 9;
|
}else{
|
$return['msg'] = '修改失败!';
|
$return['errcode'] = 8;
|
}
|
}else{
|
if($this->config['once_pay_price'] != "0" && $this->config['once_pay_price'] != "" && $type != 'admin'){
|
$post['pay'] = '1';
|
}else{
|
$post['pay'] = '2';
|
}
|
$s_time = strtotime(date('Y-m-d 00:00:00')); //今天开始时间
|
$m_once = $this->getOnceNum(array('login_ip' => fun_ip_get(),'ctime'=>array('>',$s_time)));
|
$totalMessNum = $this->getOnceNum(array('ctime'=>array('>',$s_time)));//当天总的已发布量
|
if($this->config['sy_once_totalnum'] == 0 || ($this->config['sy_once_totalnum'] > $totalMessNum)) {
|
if ($this->config['sy_once'] > $m_once || $this->config['sy_once'] < 1) {
|
$nid = $this->insert_into('once_job', $post);
|
$return['id'] = $nid;
|
if ($nid) {
|
|
$oldorder = $this->select_once("company_order", array('order_state' => 1, 'type' => 25, 'fast' => $data['fast']));
|
|
if (is_array($oldorder)) {
|
|
$this->delete_all('once_job', array('id' => $oldorder['once_id'], 'status' => 0, 'pay' => 1));
|
$this->delete_all('company_order', array('order_state' => 1, 'type' => 25, 'fast' => $data['fast']));
|
}
|
|
if ($this->config['once_pay_price'] != "0" && $this->config['once_pay_price'] != "" && $type != 'admin') {
|
$return['msg'] = '发布信息添加完成,请付款';
|
$return['errcode'] = 10;
|
|
if ($data['utype'] == 'wap') {
|
$return['url'] = Url('wap', array('c' => 'once', 'a' => 'pay', 'id' => $nid, 'price' => $this->config['once_pay_price'] * $post['edate1']));
|
} else {//pc
|
|
$return['url'] = $nid;
|
}
|
} else {
|
if ($this->config['com_fast_status'] == "0" && $type != 'admin') {
|
require_once('admin.model.php');
|
$adminM = new admin_model($this->db, $this->def);
|
$adminM->sendAdminMsg(array('first' =>'有新的店铺招聘《'.$post['title'].'》需要审核', 'type' => 17));
|
$msg = "发布成功,等待审核!";
|
|
} else {
|
$msg = "发布成功!";
|
}
|
if ($data['utype'] == 'wap') {
|
$return['url'] = Url('wap', array('c' => 'once'));
|
} else {
|
$return['url'] = Url('once');
|
}
|
$return['msg'] = $msg;
|
$return['errcode'] = 9;
|
}
|
} else {
|
$return['msg'] = '发布失败!';
|
$return['errcode'] = 8;
|
}
|
} else {
|
$return['msg'] = '一天内只能发布' . $this->config['sy_once'] . '次!';
|
$return['errcode'] = 8;
|
if ($data['utype'] == 'wap') {
|
$return['url'] = Url('wap', array('c' => 'once'));
|
}
|
}
|
}else{
|
$return['msg'] = '网站发布店铺招聘本日已到上限,如有急需,请联系网站客服!';
|
$return['errcode'] = 8;
|
}
|
}
|
|
return $return;
|
}
|
/**
|
* 处理单个图片上传
|
* @param file/需上传文件; dir/上传目录; type/上传图片类型; base/需上传base64; preview/pc预览即上传
|
*/
|
private function upload($data = array('file'=>null,'dir'=>null,'type'=>null,'base'=>null,'preview'=>null)){
|
|
include_once('upload.model.php');
|
|
$UploadM = new upload_model($this->db, $this->def);
|
|
$upArr = array(
|
'file' => $data['file'],
|
'dir' => $data['dir'],
|
'type' => $data['type'],
|
'base' => $data['base'],
|
'preview' => $data['preview']
|
);
|
$return = $UploadM -> newUpload($upArr);
|
|
return $return;
|
}
|
/**
|
* 批量延迟店铺时间
|
* @param 表:once_job
|
* @param 功能说明:根据条件$id
|
* @param 引用字段:$id :条件 2:$data['edate']:延迟时间
|
*
|
*/
|
public function setOnceCtime($id,$data = array()){
|
|
$ids = @explode(',',$id);
|
|
if(is_array($ids)){
|
|
$posttime = $data['endtime'] * 86400;
|
|
$where['id'] = array('in',pylode(',',$ids));
|
$rows = $this -> getOnceList($where,array('field'=>'`id`,`edate`'));
|
|
foreach($rows as $value){
|
|
if($value['edate'] < time()){
|
|
$time = time()+$posttime;
|
}else{
|
$time = $value['edate']+$posttime;
|
}
|
|
$return['id'] = $this -> update_once("once_job",array('edate'=>$time),array('id'=>$value['id']));
|
}
|
if($return['id']){
|
$return['msg'] = '店铺招聘延期(ID:'.implode(',', $id).')设置成功!';
|
$return['errcode'] = 9;
|
}else{
|
$return['msg'] = '店铺招聘延期(ID:'.implode(',', $id).')设置失败!';
|
$return['errcode'] = 8;
|
}
|
}else{
|
$return['msg'] = '请选择要延期的店铺招聘!';
|
$return['errcode'] = 8;
|
}
|
return $return;
|
}
|
//发布店铺招聘付款
|
public function payOnce($data=array('from'=>'')){
|
|
$id = intval($data['id']);
|
if(!empty($id)){
|
|
$ordernum = $this -> select_num('company_order',array('once_id'=>$id,'order_state'=>1));
|
if($ordernum){
|
$this -> delete_all('company_order',array('once_id'=>$id),'');
|
}
|
$row = $this->getOnceInfo(array('id'=>$id,'pay'=>1));
|
if(is_array($row)){
|
|
//生成相关订单
|
$dingdan = time().rand(10000,99999);
|
$fast = time().rand(10000,99999);
|
|
$orderData=array(
|
'type' => 25,
|
'order_id' => $dingdan,
|
'order_price' => $data['once_price'],
|
'order_time' => time(),
|
'order_type' => $data['pay_type'],
|
'order_state' => 1,
|
'order_remark' => '店铺招聘收费',
|
'did' => $data['did'],
|
'once_id' => $id,
|
'fast' => $fast
|
);
|
$nid = $this -> insert_into("company_order",$orderData);
|
|
if($nid && $dingdan){
|
if($data['from'] != 'wxapp'){
|
include_once('cookie.model.php');
|
$cookieM = new cookie_model($this->db, $this->def);
|
$cookieM->SetCookie("fast",$fast,time() + 86400);
|
}
|
//订单生成成功
|
return array('error'=>0,'oid'=>$nid,'orderid'=>$dingdan,'id'=>$id,'fast'=>$fast);
|
}else{
|
//生成失败 返回具体原因
|
return array('error'=>1,'msg'=>"下单失败");
|
}
|
}else{
|
return array('error'=>1,'msg'=>"店铺数据不存在");
|
}
|
}
|
}
|
//管理信息:刷新、修改、删除
|
public function setOncePassword($data = array()){
|
session_start();
|
|
if (!empty($data['code'])){
|
if(md5(strtolower($data['code'])) != $_SESSION['authcode'] || empty($_SESSION['authcode'])){//验证码错误
|
unset($_SESSION['authcode']);
|
return array('msg'=>'验证码错误!','errcode'=>8,'type'=>1);
|
}
|
}
|
|
$jobinfo = $this->getOnceInfo(array('id'=>(int)$data['id'],'password'=>md5($data['password'])));
|
|
if(!is_array($jobinfo) || empty($jobinfo)){
|
return array('msg'=>'密码错误!','errcode'=>8,'type'=>2);
|
}else{
|
$_SESSION['oncepass'] = md5($data['password']);
|
}
|
if($data['type']==1){//刷新
|
if($this->config['com_xin']>$jobinfo['sxnumber']){
|
|
$this->upOnce(array('ctime'=>time(),'sxtime'=>time(),'sxnumber'=>$jobinfo['sxnumber']+1),array('id'=>(int)$jobinfo['id']));
|
|
return array('msg'=>'刷新成功','errcode'=>9,'type'=>3);
|
}else{
|
return array('msg'=>'对不起你已达到一天最多刷新次数!','errcode'=>8,'type'=>5);
|
}
|
|
}elseif($data['type']==3){//删除
|
|
$this -> delOnce((int)$jobinfo['id']);
|
return array('msg'=>'删除成功!','errcode'=>9,'type'=>4);
|
|
}else{//修改
|
if($data['utype']=='pc'){
|
$url = Url('once',array('c'=>'add','id'=>(int)$jobinfo['id']));
|
return array('url'=>$url);
|
}elseif($data['utype']=='wap'){
|
$url = Url('wap',array('c'=>'once','a'=>'add','id'=>(int)$jobinfo['id']));
|
return array('url'=>$url);
|
}else{
|
return array('msg'=>'密码正确!','errcode'=>9,'type'=>2);
|
}
|
|
}
|
}
|
}
|
?>
|