<?php
|
|
|
|
class userinfo_model extends model
|
{
|
|
private $comstatusStr =array(
|
0 => ' 被设为未审核状态',
|
1 => ' 通过审核',
|
2 => ' 被锁定',
|
3 => ' 审核未通过',
|
4 => ' 被暂停'
|
);
|
|
private function addErrorLog($uid,$type='',$content)
|
{
|
|
require_once ('errlog.model.php');
|
$ErrlogM = new errlog_model($this->db, $this->def);
|
return $ErrlogM -> addErrorLog($uid, $type, $content);
|
}
|
|
// 获取账户信息
|
function getInfo($where,$data=array())
|
{
|
|
$field = empty($data['field']) ? '*' : $data['field'];
|
|
if (!empty($where)) {
|
|
$member = $this -> select_once('member',$where, $field);
|
|
if($member && is_array($member)){
|
|
/* 是否有修改用户名权限查询 */
|
if (isset($data['setname']) && $data['setname'] == '1') {
|
|
if($member['restname']=='0'){
|
|
$member['setname'] = '1';
|
}
|
}
|
if (isset($data['sf']) && $data['sf'] == '1') {
|
|
$sflist = array(1=>'个人会员',2=>'企业会员',3=>'猎头会员',4=>'培训会员');
|
|
$member['sf'] = $sflist[$member['usertype']];
|
}
|
return $member;
|
}
|
}
|
}
|
|
// 账户数目
|
function getMemberNum($Where = array()){
|
return $this->select_num('member', $Where);
|
}
|
|
// 获取账户信息,多条查询
|
public function getList($whereData , $data = array(),$utype='') {
|
|
$field = $data['field'] ? $data['field'] : '*';
|
|
$List = $this -> select_all('member',$whereData, $field);
|
|
if ($utype == 'admin'){
|
|
$List = $this -> getDataList($List);
|
}
|
return $List;
|
}
|
|
//添加用户
|
public function addInfo($data){
|
|
if ($data && is_array($data)){
|
|
$mdata = $data['mdata'];
|
|
$result = $this -> addMemberCheck($mdata);
|
|
if ($result['msg']){
|
|
return $result;
|
}
|
if (!empty($mdata['clientid'])){
|
//清除其他账号clientid
|
$this->clearPushId($mdata['clientid']);
|
}
|
$mdata['did'] = !empty($mdata['did']) ? $mdata['did'] : $this->config['did'];
|
$nid = $this->insert_into('member', $mdata);
|
if(!$nid){
|
|
$user_id = $this->getInfo(array('username'=>$mdata['username']),array('field'=>'uid'));
|
|
$nid = $user_id['uid'];
|
|
}
|
if ($nid){
|
|
$udata = !empty($data['udata']) ? $data['udata'] : array();
|
$sdata = !empty($data['sdata']) ? $data['sdata'] : array();
|
|
$udata['uid'] = $nid;
|
|
if ($mdata['usertype'] == 1){
|
$udata['did'] = !empty($udata['did']) ? $udata['did'] : $this->config['did'];
|
$this -> insert_into('resume',$udata);
|
|
$sdata['uid'] = $nid;
|
$this -> insert_into('member_statis',$sdata);
|
|
}else if ($mdata['usertype'] == 2){
|
if(empty($udata['crm_uid'])) {
|
if($this->config['sy_crm_duty'] == 1){
|
|
$crm_uid = $this->getCrmUid(array('type' => '2'));
|
}
|
if ($crm_uid) {
|
$udata['crm_uid'] = $crm_uid;
|
$udata['crm_time'] = time();
|
}
|
}
|
$this -> insert_into('company',$udata);
|
$this -> addStatis($nid,$sdata);
|
|
}else if ($mdata['usertype'] == 5){
|
|
$this -> insert_into('gq_info',$udata);
|
}
|
}
|
return $nid;
|
}
|
}
|
|
/**
|
* 检查子账号
|
*
|
*/
|
public function checkChild($data = array()){
|
$res = array(
|
'ecode' => 0,
|
'msg' => ''
|
);
|
if(empty($data['uid'])){
|
$res['ecode'] = 1;
|
$res['msg'] = '缺少企业id';
|
return $res;
|
}
|
if(empty($data['cdata'])){
|
$res['ecode'] = 2;
|
$res['msg'] = '缺少子账号信息';
|
return $res;
|
}
|
$cdata = $data['cdata'];
|
|
if(empty($cdata['name']) || empty($cdata['password'])){
|
$res['ecode'] = 3;
|
$res['msg'] = '子账号信息不完整';
|
return $res;
|
}
|
unset($cdata['password']);
|
|
require_once ('companyaccount.model.php');
|
$comaM = new companyaccount_model($this->db, $this->def);
|
|
/*
|
//判断子账号是否存在
|
$oldData = $comaM -> getInfo(array('username' => $cdata['username'], 'comid' => $data['uid']));
|
|
if(!empty($oldData)){
|
$res['ecode'] = 4;
|
$res['msg'] = '子账号已存在';
|
return $res;
|
}
|
*/
|
|
//检查会员信息
|
$result = $this -> addMemberCheck($cdata);
|
if (is_array($result) && !empty($result['msg'])){
|
$res['ecode'] = $result['error'];
|
$res['msg'] = $result['msg'];
|
return $res;
|
}
|
|
$res = array(
|
'ecode' => 9,
|
'msg' => ''
|
);
|
return $res;
|
}
|
|
/**
|
* @desc 添加企业子账户
|
* @param array $data
|
* $data['uid'] 企业的uid
|
* $data['cdata'] 子账号的信息
|
* $data['ptype'] vip 扣除套餐数量
|
*/
|
public function addChildInfo($data = array()){
|
$res = array(
|
'ecode' => 0,
|
'msg' => ''
|
);
|
|
$tmpRes = $this -> checkChild($data);
|
if($tmpRes['ecode'] != 9){
|
return $tmpRes;
|
}
|
|
//判断支付类型,扣除套餐数量
|
if(isset($data['paytype']) && $data['paytype'] == 'vip'){
|
require_once ('statis.model.php');
|
$statisM = new statis_model($this->db, $this->def);
|
$staisInfo = $statisM -> getInfo($data['uid'], array('usertype' => 2, 'field' => '`sons_num`'));
|
if(empty($staisInfo) || $staisInfo['sons_num'] < 1){
|
$res = array(
|
'ecode' => 8,
|
'msg' => '您的套餐数量已用完'
|
);
|
return $res;
|
}
|
}
|
|
$cdata = $data['cdata'];
|
|
//密码加密
|
$pwdData = $this -> generatePwd(array('password' => $cdata['password']));
|
$cdata['password'] = $pwdData['pwd'];
|
$cdata['salt'] = $pwdData['salt'];
|
|
//注册ip date
|
$cdata['reg_ip'] = fun_ip_get();
|
$cdata['reg_date'] = time();
|
|
require_once ('companyaccount.model.php');
|
$comaM = new companyaccount_model($this->db, $this->def);
|
|
//补充其他账号信息
|
$cdata['pid'] = $data['uid'];
|
$cdata['usertype'] = 2;
|
$cdata['status'] = 1;
|
$nid = $this -> insert_into('member', $cdata);
|
|
$usernames = $this -> select_once('member',array('uid'=>$data['uid']),'`username`');
|
$comnames = $this -> select_once('company',array('uid'=>$data['uid']),'`name`');
|
if(empty($nid)){
|
$res = array(
|
'ecode' => 8,
|
'msg' => '添加失败'
|
);
|
return $res;
|
}
|
|
// 企业子账号数据添加
|
$adata = array();
|
$adata['uid'] = $nid;
|
$adata['name'] = $cdata['name'];
|
$adata['comid'] = $data['uid'];
|
|
$adata['ctime'] = time();
|
$adata['status'] = 1;
|
$adata['lastupdate'] = time();
|
$adata['did'] = '0';
|
$adata['username'] = $usernames['username'];
|
$adata['comname'] = $comnames['name'];
|
$comaM -> createAccount($adata);
|
|
//增加会员日志
|
require_once ('log.model.php');
|
$LogM = new log_model($this->db, $this->def);
|
$LogM -> addMemberLog($data['uid'], 2, '创建子账号:'.$cdata['name'], 27, 1);
|
|
//判断支付类型,扣除套餐数量
|
if(isset($data['paytype']) && $data['paytype'] == 'vip'){
|
require_once ('statis.model.php');
|
$statisM = new statis_model($this->db, $this->def);
|
$staisInfo = $statisM -> getInfo($data['uid'], array('usertype' => 2, 'field' => '`sons_num`'));
|
if(!empty($staisInfo) && $staisInfo['sons_num'] > 0){
|
$statisM -> upInfo(array('sons_num' => array('-', 1)), array('usertype' => 2, 'uid' => $data['uid']));
|
}
|
}
|
|
$res = array(
|
'ecode' => 9,
|
'msg' => '创建成功'
|
);
|
return $res;
|
|
}
|
|
/**
|
* @desc 添加企业子账户
|
* @param array $where 条件
|
* @param array $data
|
* $data['uid'] 企业的uid
|
* $data['cdata'] 子账号的信息
|
* 会员名称不让修改,修改会员相关信息的话也就是修改会员的密码
|
*/
|
public function updChildInfo($where = array(), $data = array()){
|
|
//不修改用户名称
|
unset($data['username']);
|
|
//修改会员密码
|
if(!empty($data['password'])){
|
$passwordA = $this -> generatePwd(array('password' => $data['password']));
|
$password = $passwordA['pwd'];
|
$salt = $passwordA['salt'];
|
|
$this -> update_once('member', array('password' => $password, 'salt' => $salt), array('uid' => $where['uid']));
|
}
|
|
//修改子账号信息
|
require_once ('companyaccount.model.php');
|
$comaM = new companyaccount_model($this->db, $this->def);
|
|
$data['lastupdate'] = time();
|
$comaM -> updInfo($where, $data);
|
|
$res = array(
|
'ecode' => 9,
|
'msg' => '修改成功'
|
);
|
return $res;
|
}
|
|
/**
|
* @desc 添加企业账户,账户套餐信息添加
|
* @param int $uid
|
* @param array $data
|
*/
|
private function addStatis($uid = null, $data = array()) {
|
|
$uid = intval($uid);
|
|
$id = $data['rating'] ? intval($data['rating']) : $this->config['com_rating'];
|
|
$integral = $data['integral'] ? intval($data['integral']) : 0;
|
|
require_once ('rating.model.php');
|
|
$ratingM = new rating_model($this->db, $this->def);
|
|
// 获取会员等级数据
|
$rInfo = $ratingM -> getInfo(array('id' => $id));
|
|
$value = array(
|
'uid' => $uid,
|
'rating' => $id,
|
'rating_name' => $rInfo['name'],
|
'rating_type' => $rInfo['type']
|
);
|
if($rInfo['type'] == 1){
|
|
$value = array_merge($value, array(
|
|
'job_num' => $rInfo['job_num'],
|
'down_resume' => $rInfo['resume'],
|
'breakjob_num' => $rInfo['breakjob_num'],
|
'invite_resume' => $rInfo['interview'],
|
'part_num' => $rInfo['part_num'],
|
'breakpart_num' => $rInfo['breakpart_num'],
|
'lt_job_num' => $rInfo['lt_job_num'],
|
'lt_down_resume' => $rInfo['lt_resume'],
|
'lt_breakjob_num' => $rInfo['lt_breakjob_num'],
|
'zph_num' => $rInfo['zph_num'],
|
'chat_num' => $rInfo['chat_num'],
|
'spview_num' => $rInfo['spview_num'],
|
'top_num' => $rInfo['top_num'],
|
'urgent_num' => $rInfo['urgent_num'],
|
'rec_num' => $rInfo['rec_num'],
|
'sons_num' => $rInfo['sons_num'],
|
'chat_num' => $rInfo['chat_num'],
|
'spview_num' => $rInfo['spview_num'],
|
));
|
}
|
|
if($rInfo['service_time']){
|
$time = time() + 86400 * $rInfo['service_time'];
|
$value['vip_etime']= $time;
|
}else{
|
$value['vip_etime']= 0;
|
}
|
|
$value['integral'] = $rInfo['integral_buy'] + $integral;
|
$value['vip_stime'] = time();
|
$value['vip_etime'] = $rInfo['service_time'] ? strtotime('+'.$rInfo['service_time'].' day') : 0;
|
|
$comSdata = array(
|
'rating' => $id,
|
'rating_name' => $rInfo['name'],
|
'vipstime' => time(),
|
'vipetime' => $rInfo['service_time'] ? strtotime('+'.$rInfo['service_time'].' day') : 0
|
);
|
|
$this->update_once('company', $comSdata, array('uid' => $uid));
|
|
/* 待整理归类 */
|
if($rInfo['coupon'] > 0){
|
|
require_once ('coupon.model.php');
|
|
$couponM = new coupon_model($this->db, $this->def);
|
|
$coupon = $couponM -> getInfo(array('id' => intval($rInfo['coupon'])));
|
|
$val = array(
|
|
'uid' => $uid,
|
'number' => time(),
|
'ctime' => time(),
|
'coupon_id' => intval($coupon['id']),
|
'coupon_name' => trim($coupon['name']),
|
'validity' => time() + $coupon['time'] * 86400,
|
'coupon_amount' => $coupon['amount'],
|
'coupon_scope' => $coupon['scope']
|
|
);
|
|
$this -> insert_into('coupon_list',$val);
|
}
|
|
$this -> insert_into('company_statis',$value);
|
|
}
|
|
//修改用户信息
|
public function upInfo($whereData = array(), $upData = array(), $data = array())
|
{
|
|
if (!empty($whereData)) {
|
//处理password
|
if (isset($upData['password'])) {
|
if (!empty($upData['password'])) {
|
$passRes = $this->generatePwd(array('password' => $upData['password']));
|
if (!empty($passRes)) {
|
$upData['password'] = $passRes['pwd'];
|
$upData['salt'] = $passRes['salt'];
|
}
|
} else {
|
unset($upData['password']);
|
}
|
}
|
return $this->update_once('member', $upData, $whereData);
|
}
|
}
|
/**
|
* 用户注册检测,修改基本信息检测
|
* @param $data
|
* @param $uid 修改用户名、手机号、邮箱时才需要传入,添加时的检测不需要传
|
* @param $utype 修改基本信息时,操作的用户类型:user用户 ,admin 管理员
|
*/
|
public function addMemberCheck($data, $uid = null, $utype = null){
|
|
$return = $oldMem = array();
|
|
if (!empty($uid)){
|
|
$oldMem = $this -> select_once('member',array('uid'=>$uid),'`username`,`moblie`,`email`,`status`,`lock_info`,`address`');
|
}
|
|
if (!empty($data['username'])){
|
|
if(CheckRegUser($data['username']) == false && CheckRegEmail($data['username']) == false){
|
|
return array('error'=>'101','msg'=>'用户名包含特殊字符');
|
}
|
|
if (!empty($this->config['sy_regname'])) {
|
|
$regname = @explode(',', $this->config['sy_regname']);
|
|
if (in_array($data['username'], $regname)) {
|
|
return array('error'=>'107','msg'=>'该用户名禁止使用!');
|
}
|
}
|
|
$reged = $this -> select_once('member',array('username'=>trim($data['username'])),'`uid`');
|
|
if ($reged){
|
|
if (!empty($uid)){
|
|
if ($reged['uid'] != $uid){
|
|
return array('error'=>'102','msg'=>'用户名已被使用');
|
|
}
|
}else{
|
|
return array('error'=>'102','msg'=>'用户名已被使用');
|
}
|
}else{
|
$return['username'] = $data['username'];
|
if (!empty($oldMem)){
|
$return['oldusername'] = $oldMem['username'];
|
}
|
}
|
|
/* 会员中心修改用户名添加 */
|
if (isset($data['restname']) && $data['restname'] == '1') {
|
|
$member = $this -> getInfo(array('uid'=> intval($uid)), array('field'=>'restname,password,salt'));
|
|
if ($member['restname'] == '1') {
|
|
return array('error'=>'100','msg'=>'您无权限修改用户名!');
|
}
|
|
$nmsg = regUserNameComplex($data['username']);
|
if($nmsg){
|
return array('error'=>'100','msg'=>$nmsg);
|
}
|
|
if ($data['password']) {
|
|
/* md5加密,验证密码传参:salt */
|
|
$passRes = $this -> generatePwd(array('password' => $data['password'], 'salt' => $member['salt']));
|
|
if(!empty($passRes)){
|
|
$oldpass = $passRes['pwd'];
|
}
|
|
if ($member['password'] != $oldpass) {
|
|
return array('error'=>'108','msg'=>'您的密码验证错误,请重试!');
|
}
|
}
|
}
|
}
|
|
if (!empty($data['companyName'])){
|
$reged = $this->select_once('company', array('name' => trim($data['companyName'])), '`uid`');
|
|
if ($reged){
|
|
if (!empty($uid)){
|
if ($reged['uid'] != $uid){
|
return array('error'=>'106','msg'=>'企业名称已被使用');
|
}
|
}else{
|
return array('error'=>'106','msg'=>'企业名称已被使用');
|
}
|
|
}
|
$return['companyName'] = $data['companyName'];
|
}
|
if (!empty($data['moblie'])){
|
|
if(CheckMobile($data['moblie']) == false){
|
|
return array('error'=>'103','msg'=>'手机号格式错误');
|
}
|
$reged = $this -> select_once('member',array('moblie'=>trim($data['moblie']),'username'=>array('=',trim($data['moblie']),'or')),'`uid`');
|
|
if ($reged){
|
|
if (!empty($uid)){
|
|
if ($reged['uid'] != $uid){
|
|
return array('error'=>'104','msg'=>'手机号已被使用');
|
|
}elseif (!empty($oldMem) && $data['moblie'] != $oldMem['moblie']){//判断现有的和之前是否相同,不同返回可修改的值
|
|
$return['moblie'] = $data['moblie'];
|
}
|
}else{
|
|
return array('error'=>'104','msg'=>'手机号已被使用');
|
}
|
}else {
|
|
$return['moblie'] = $data['moblie'];
|
}
|
}
|
if (!empty($data['email'])){
|
|
if (CheckRegEmail($data['email']) == false){
|
|
return array('error'=>'105','msg'=>'邮箱格式错误');
|
}
|
$reged = $this -> select_once('member',array('email'=>trim($data['email']),'username'=>array('=',trim($data['email']),'or')),'`uid`');
|
if ($reged){
|
|
if (!empty($uid)){
|
|
if ($reged['uid'] != $uid){
|
|
return array('error'=>'106','msg'=>'邮箱已被使用');
|
|
}elseif (!empty($oldMem) && $data['moblie'] != $oldMem['moblie']){//判断现有的和之前是否相同,不同返回可修改的值
|
|
$return['email'] = $data['email'];
|
}
|
}else{
|
|
return array('error'=>'106','msg'=>'邮箱已被使用');
|
}
|
}else{
|
|
$return['email'] = $data['email'];
|
}
|
}
|
//后台修改基本信息时的用户状态
|
if (!empty($data['status'])){
|
|
if (!empty($oldMem)){
|
//判断现有的和之前是否相同,不同返回可修改的值
|
if ($data['status'] != $oldMem['status']){
|
$return['status'] = $data['status'];
|
}
|
if (!empty($data['lock_info']) && $data['lock_info'] != $oldMem['lock_info']){
|
$return['lock_info'] = $data['lock_info'];
|
}
|
}
|
}
|
//后台修改企业基本信息时的地址
|
if (!empty($data['address'])){
|
|
if (!empty($oldMem) && $data['address'] != $oldMem['address']){
|
$return['address'] = $data['address'];
|
}
|
}
|
//后台修改基本信息时的密码,此处不需要处理,到本model的upInfo里面处理
|
if (!empty($data['password'])){
|
|
$return['password'] = $data['password'];
|
}
|
//
|
if ($utype){
|
|
$this -> setMemberInfo($uid, $utype, $return, $oldMem);
|
}
|
return $return;
|
}
|
private function setMemberInfo($uid, $utype, $up, $oldMem)
|
{
|
|
$uData = array();
|
|
//如是修改会员基本信息时检查,可以修改的,直接修改
|
if (!empty($uid) && !empty($oldMem)){
|
//会员操作的,如原来是审核未通过,改成未审核
|
if ($utype == 'user'){
|
|
if($oldMem['status'] == '3'){
|
|
$up['status'] = '0';
|
}
|
}
|
|
$this -> upInfo(array('uid'=>$uid), $up);
|
|
$newMem = $this -> select_once('member',array('uid'=>$uid),'`uid`,`username`,`usertype`,`email`');
|
//锁定会员需要发送邮件通知
|
if (!empty($up['status']) && $up['status'] == 2 && $this->config['sy_email_lock'] == '1'){
|
|
$emailData = array(
|
'email' => $newMem['email'],
|
'uid' => $newMem['uid'],
|
'username' => $newMem['username'],
|
'lock_info' => $up['lock_info'],
|
'type' => 'lock'
|
);
|
|
require_once ('notice.model.php');
|
|
$noticeM = new notice_model($this->db, $this->def);
|
|
$noticeM -> sendEmailType($emailData);
|
}
|
// 管理员操作的,如改变了用户审核状态,同步修改相关信息
|
if ($utype == 'admin' && !empty($up['status'])){
|
|
|
if ($newMem['usertype'] == 1){
|
|
$this -> update_once('resume',array('status'=>$up['status']),array('uid'=>$uid));
|
|
}else if ($newMem['usertype'] == 2){
|
|
$this -> update_once('company',array('r_status' => $up['status']),array('uid'=>$uid));
|
|
}else if ($newMem['usertype'] == 3){
|
|
$this -> update_once('lt_job',array('r_status'=>$up['status']),array('uid'=>$uid));
|
|
}elseif ($newMem['usertype'] == 4){
|
|
$this -> update_once('px_subject', array('r_status'=>$up['status']), array('uid'=>$uid));
|
$this -> update_once('px_teacher', array('r_status'=>$up['status']), array('uid'=>$uid));
|
$this -> update_once('px_train_news', array('r_status'=>$up['status']), array('uid'=>$uid));
|
}
|
}
|
|
// 管理员操作,$up['moblie'], $up['email'],同步修改手机、邮箱
|
if ($utype == 'admin') {
|
|
if (!empty($up['moblie'])) {
|
|
$this->update_once('resume', array('telphone' => $up['moblie']), array('uid' => $uid));
|
$this->update_once('company', array('linktel' => $up['moblie']), array('uid' => $uid));
|
$this->update_once('lt_info', array('moblie' => $up['moblie']), array('uid' => $uid));
|
$this->update_once('px_train', array('linktel' => $up['moblie']), array('uid' => $uid));
|
}
|
|
if (!empty($up['email'])) {
|
|
$this->update_once('resume', array('email' => $up['email']), array('uid' => $uid));
|
$this->update_once('company', array('linkmail' => $up['email']), array('uid' => $uid));
|
$this->update_once('lt_info', array('email' => $up['email']), array('uid' => $uid));
|
$this->update_once('px_train', array('linkmail' => $up['email']), array('uid' => $uid));
|
}
|
}
|
}
|
}
|
|
/**
|
* 根据用户类型,直接查找用户信息
|
* @param array $whereData
|
* @param array $data
|
* @return array|bool|false|string|void
|
*/
|
function getUserInfo($whereData = array(), $data = array('usertype' => null, 'field' => null))
|
{
|
|
if (!empty($whereData)) {
|
|
$tblist = array(1 => 'resume', 2 => 'company', 3 => 'lt_info', 4 => 'px_train', 5 => 'gq_info');
|
$table = $tblist[$data['usertype']];
|
$field = $data['field'] ? $data['field'] : '*';
|
return $this->select_once($table, $whereData, $field);
|
}
|
}
|
/**
|
* 根据用户类型,直接批量查找用户信息
|
* @param array $whereData
|
* @param array $data
|
*/
|
function getUserInfoList($whereData = array(),$data = array('usertype'=>null,'field'=>null)){
|
|
if (!empty($whereData)){
|
|
$tblist = array(1=>'resume',2=>'company',3=>'lt_info',4=>'px_train',5=>'gq_info');
|
|
$table = $tblist[$data['usertype']];
|
|
$field = $data['field'] ? $data['field'] : '*';
|
|
return $this -> select_all($table,$whereData,$field);
|
}
|
}
|
/**
|
* 根据用户类型,修改用户信息
|
*/
|
function UpdateUserInfo($data=array('usertype'=>null,'post'=>null),$Where=array()){
|
|
$tblist = array(1=>'resume',2=>'company',3=>'lt_info',4=>'px_train');
|
|
$table = $tblist[$data['usertype']];
|
|
return $this->update_once($table,$data['post'],$Where);
|
}
|
/**
|
* 获取不同类型用户姓名、企业名称、头像
|
*/
|
public function getUserList($whereData) {
|
|
if($whereData){
|
$memberList = $this -> select_all('member',$whereData,'`uid`,`usertype`');
|
//按usertype将uid分组
|
|
$type = array();
|
foreach ($memberList as $k => $v) {
|
if($v['usertype']){
|
$type[$v['usertype']][] = $v['uid'];
|
}
|
}
|
$ResumeList = $ComList = $LtList = $TrainList = $GqList = array();
|
if (!empty($type[1])){
|
$ResumeList = $this -> select_all(
|
'resume',
|
array(
|
'uid'=>array('in',pylode(',',$type[1]))
|
),
|
'`uid`,`name`,`photo`'
|
);
|
}
|
if (!empty($type[2])){
|
$ComList = $this -> select_all(
|
'company',
|
array(
|
'uid'=>array('in',pylode(',',$type[2]))
|
),
|
'`uid`,`name`,`logo`'
|
);
|
}
|
if (!empty($type['3'])){
|
$LtList = $this -> select_all(
|
'lt_info',
|
array(
|
'uid'=>array('in',pylode(',',$type[3]))
|
),
|
'`uid`,`realname` as name,`photo`'
|
);
|
}
|
if (!empty($type[4])){
|
$TrainList = $this -> select_all(
|
'px_train',
|
array(
|
'uid'=>array('in',pylode(',',$type[4]))
|
),
|
'`uid`,`name`,`logo`'
|
);
|
}
|
if (!empty($type[5])){
|
$GqList = $this -> select_all(
|
'gq_info',
|
array(
|
'uid'=>array('in',pylode(',',$type[5]))
|
),
|
'`uid`,`name`,`photo`'
|
);
|
}
|
foreach($ResumeList as $k=>$v){
|
$ResumeList[$k]['pic'] = checkpic($v['photo'],$this->config['sy_friend_icon']);
|
|
}
|
foreach($ComList as $k=>$v){
|
$ComList[$k]['pic'] = checkpic($v['logo'],$this->config['sy_friend_icon']);
|
|
}
|
foreach($LtList as $k=>$v){
|
$LtList[$k]['pic'] = checkpic($v['photo'],$this->config['sy_friend_icon']);
|
|
}
|
foreach($TrainList as $k=>$v){
|
$TrainList[$k]['pic'] = checkpic($v['logo'],$this->config['sy_friend_icon']);
|
|
}
|
foreach($GqList as $k=>$v){
|
$GqList[$k]['pic'] = checkpic($v['photo'],$this->config['sy_friend_icon']);
|
|
}
|
|
$List = array_merge($ResumeList,$ComList,$LtList,$TrainList,$GqList);
|
return $List;
|
}
|
}
|
/**
|
* 根据不同类型用户的搜索条件获取uid集合
|
* $whereData[1]:resume表查询条件
|
* $whereData[2]:company表查询条件
|
* $whereData[3]:lt_info表查询条件
|
* $whereData[4]:px_train表查询条件
|
*/
|
public function getUidsByWhere($whereData=array()) {
|
|
if($whereData){
|
|
|
if(!empty($whereData[1])){
|
$ResumeList = $this -> select_all('resume',$whereData[1],'`uid`');
|
}
|
|
if(!empty($whereData[2])){
|
$ComList = $this -> select_all('company',$whereData[2],'`uid`');
|
}
|
|
if(!empty($whereData[3])){
|
$LtList = $this -> select_all('lt_info',$whereData[3],'`uid`');
|
}
|
|
if(!empty($whereData[4])){
|
$TrainList = $this -> select_all('px_train',$whereData[4],'`uid`');
|
}
|
|
$List = array_merge($ResumeList,$ComList,$LtList,$TrainList);
|
|
$uids = array();
|
|
foreach ($List as $k => $v) {
|
$uids[] = $v['uid'];
|
}
|
|
return $uids;
|
}
|
}
|
|
/**
|
* 删除单个身份会员信息
|
* @param string $uid 因有批量删除,故传入的$uid为字符串型 ;如 1 或 1,2,3
|
* @param string $usertype
|
* @param string $delAccount
|
*/
|
public function delInfo($uid, $usertype, $delAccount = ''){
|
|
$utname = '';
|
$return['layertype'] = 0;
|
|
if (!empty($uid)){
|
|
if(is_array($uid)){
|
|
$uid = pylode(',', $uid);
|
$return['layertype'] = 1;
|
}else if(strpos($uid, ',')){
|
|
$return['layertype'] = 1;
|
}
|
|
if($delAccount == '1'){
|
|
$nid = $this->delMember($uid);
|
|
}else{
|
if ($usertype == 1) {
|
|
$utname = '个人';
|
$nid = $this->delUser($uid);
|
}else if ($usertype == 2) {
|
|
$utname = '企业';
|
$nid = $this->delCom($uid);
|
}else if ($usertype == 3) {
|
|
$utname = '猎头';
|
$nid = $this->delLt($uid);
|
}else if ($usertype == 4) {
|
|
$utname = '培训';
|
$nid = $this->delTrain($uid);
|
}
|
}
|
|
if ($nid){
|
//删除个人企业猎头培训供求,如果删除的是当前身份,就会去除会员类型
|
$member = $this -> select_all('member',array('uid'=>array('in', $uid),'usertype' => $usertype),'`uid`');
|
if(is_array($member) && $member){
|
|
foreach($member as $v){
|
|
$mids[] = $v['uid'];
|
}
|
$this -> update_once('member',array('usertype'=>0),array('uid'=>array('in',pylode(',',$mids))));
|
}
|
|
$return['msg'] = $utname.'会员(ID:'.$uid.')删除成功';
|
$return['errcode'] = '9';
|
}else{
|
|
$return['msg'] = $utname.'会员(ID:'.$uid.')删除失败';
|
$return['errcode'] = '8';
|
}
|
}else{
|
|
$return['msg'] = '请选择您要删除的会员';
|
$return['errcode'] = '8';
|
}
|
|
return $return;
|
}
|
/**
|
* 锁定用户(账户锁定和相关用户类型审核是否通过没有关系)
|
* @param array $whereData
|
* @param array $data
|
*/
|
public function lock($whereData = array('uid'=>null,'usertype'=>null),$data = array('post'=>null)){
|
|
$return = array();
|
|
if (!empty($whereData)){
|
|
$status = intval($data['post']['status']);
|
$lock_info = trim($data['post']['lock_info']);
|
|
if ($status == 2 && $lock_info=='') {
|
|
$return['msg'] = '请填写锁定原因';
|
$return['errcode'] = '8';
|
|
}else{
|
|
$post = $data['post'];
|
$uid = $whereData['uid'];
|
|
$member = $this->getInfo(array('uid' => $uid), array('field' => '`uid`,`username`,`email`,`moblie`'));
|
|
if($status==1){
|
$sd = '解除锁定';
|
$lock_info = '';
|
// 已注销的账号,不支持解除锁定
|
$logout = $this->select_once('member_logout',array('uid'=>$uid,'status'=>1));
|
if (!empty($logout)){
|
|
$return['msg'] = '会员(ID:'.$whereData['uid'].')账号已注销,无法解除锁定';
|
$return['errcode'] = '8';
|
return $return;
|
}
|
}else{
|
$sd = '锁定';
|
$lock_info = '。原因:'.$post['lock_info'];
|
}
|
$nid = $this -> upInfo(array('uid' => $uid), $post);
|
|
if ($nid){
|
|
$this -> commonLock($whereData['uid'],array('r_status'=>$status), $post['lock_info']);
|
|
// 锁定子账户
|
$this -> update_once('member', $post, array('pid' => $uid));
|
|
//锁定会员需要发送邮件通知
|
if ($post['status'] == 2){
|
|
if($this->config['sy_email_lock'] == '1'){
|
|
$emailData = array(
|
'email' => $member['email'],
|
'uid' => $member['uid'],
|
'username' => $member['username'],
|
'lock_info' => $post['lock_info'],
|
'type' => 'lock'
|
);
|
|
require_once ('notice.model.php');
|
|
$noticeM = new notice_model($this->db, $this->def);
|
|
$noticeM -> sendEmailType($emailData);
|
}
|
if($this->config['sy_msg_lock'] == '1'){
|
$msgData = array(
|
'moblie' => $member['moblie'],
|
'uid' => $member['uid'],
|
'username' => $member['username'],
|
'lock_info' => $post['lock_info'],
|
'type' => 'lock'
|
);
|
require_once ('notice.model.php');
|
|
$noticeM = new notice_model($this->db, $this->def);
|
|
$noticeM -> sendSMSType($msgData);
|
}
|
}
|
|
$comcrm = $this->select_all('company',array('uid' => $uid),'`name`,`r_status`,`crm_uid`');
|
|
if(!empty($comcrm)){
|
|
require_once 'crm.model.php';
|
|
$crmM = new crm_model($this->db, $this->def);
|
foreach ($comcrm as $k => $v) {
|
if($v['crm_uid']!='0'){
|
$wxcontent = '您的客户 '.$v['name'].$this->comstatusStr[$v['r_status']];
|
$crmM -> sendCrmWxMsg($v['crm_uid'],array('first'=>$wxcontent,'title'=>'','type'=>9));
|
}
|
}
|
}
|
|
$return['msg'] = '会员'.$sd.'设置成功(ID:'.$whereData['uid'].$lock_info.')';
|
$return['errcode'] = '9';
|
|
}else{
|
$return['msg'] = '会员'.$sd.'设置失败(ID:'.$whereData['uid'].')';
|
$return['errcode'] = '8';
|
}
|
}
|
}else{
|
$return['msg'] = '请选择需要锁定的会员';
|
$return['errcode'] = '8';
|
}
|
return $return;
|
}
|
|
private function commonLock($uid, $up, $lock_info = '')
|
{
|
$where = array('uid' => $uid);
|
|
include_once('resume.model.php');
|
$resumeM = new resume_model($this->db, $this->def);
|
|
$this->update_once('resume', $up, $where);
|
$this->update_once('company', $up, $where);
|
$this->update_once('lt_info', $up, $where);
|
$this->update_once('px_train', $up, $where);
|
|
$expectdata = $up;
|
if($up['r_status']!=1){
|
$expectdata['state'] = 3; // 锁定账户 将简历状态改成未通过
|
$expectdata['statusbody'] = $lock_info;
|
}
|
$resumeM->setExpectState($expectdata,$where);
|
|
$this->update_once('company_job', $up, $where);
|
$this->update_once('partjob', $up, $where);
|
$this->update_once('school_xjh', $up, $where);
|
$this->update_once('lt_job', $up, $where);
|
$this->update_once('px_subject', $up, $where);
|
$this->update_once('px_teacher', $up, $where);
|
$this->update_once('px_train_news', $up, $where);
|
$this->update_once('gq_info', $up, $where);
|
$this->update_once('gq_task', $up, $where);
|
}
|
|
/**
|
* 会员审核(会员审核,被锁定的账号,无法修改审核状态)
|
* @param array $whereData 参数格式 uid=>array('in', '1,2,3'); uid=>1
|
* @param array $data
|
* @return mixed
|
*/
|
public function status($whereData = array('uid'=>null,'usertype'=>null), $data = array('post'=>null))
|
{
|
if (!empty($whereData)) {
|
|
$post = $data['post'];
|
$usertype = intval($whereData['usertype']);
|
|
$up = array('r_status' => $data['post']['status']);
|
$where = array(
|
'uid' => $whereData['uid'],
|
'r_status' => array('<>', 2)
|
);
|
// 处理审核提示和管理员日志需要的内容
|
if ($up['r_status'] == 4){
|
$msg = '暂停';
|
}elseif ($up['r_status'] == 3){
|
$msg = '审核未通过';
|
}elseif ($up['r_status'] == 0){
|
$msg = '未审核';
|
}elseif ($up['r_status'] == 1){
|
$msg = '审核通过';
|
}
|
$lock_info = !empty($post['lock_info']) ? '。原因:'.$post['lock_info'] : '';
|
// 保存审核信息
|
if (isset($post['lock_info'])){
|
$this->update_once('member',array('lock_info'=>$post['lock_info']),array('uid'=>$whereData['uid']));
|
}
|
$isSendMsg = true;
|
/**
|
* @desc 身份信息非审核状态,相关表(简历、职位、课程等)数据设置未审核
|
*/
|
if ($usertype == 1) {
|
|
$identity = '个人';
|
$nid = $this->update_once('resume', $up, $where);
|
|
include_once('resume.model.php');
|
$resumeM = new resume_model($this->db, $this->def);
|
|
$expectdata = $up;
|
if($up['r_status']!=1){
|
$expectdata['state'] = 0;
|
}
|
|
$resumeM->setExpectState($expectdata,$where);
|
|
} else if ($usertype == 2) {
|
$where['r_status'] = array();
|
$where['r_status'][] = array('<>', 2);
|
|
$comup = $up;
|
if($data['post']['status']==4){
|
$comup['zt_time'] = time();
|
}else if($post['setup']!='1'){
|
$where['r_status'][] = array('<>', 4);
|
}
|
if ($comup['r_status'] == 1){
|
// 企业审核通过,同步把logo审核状态设为通过
|
$comup['logo_status'] = 0;
|
}
|
if($post['setup']=='1'){
|
$isSendMsg = false;
|
}
|
|
$identity = '企业';
|
$nid = $this->update_once('company', $comup, $where);
|
$this->update_once('partjob', $up, $where);
|
$this->update_once('company_job', $up, $where);
|
$this->update_once('school_xjh', $up, $where);
|
$this->update_once('lt_job', $up, array( 'uid' => $whereData['uid'], 'usertype' => 2));
|
|
$comcrm = $this->select_all('company',$where,'`name`,`r_status`,`crm_uid`');
|
|
if(is_array($comcrm)){
|
|
require_once 'crm.model.php';
|
|
$crmM = new crm_model($this->db, $this->def);
|
foreach ($comcrm as $k => $v) {
|
if($v['crm_uid']!='0'){
|
$wxcontent = '您的客户 '.$v['name'].$this->comstatusStr[$v['r_status']];
|
$crmM -> sendCrmWxMsg($v['crm_uid'],array('first'=>$wxcontent,'title'=>'','type'=>9));
|
}
|
}
|
}
|
} else if ($usertype == 3) {
|
|
$identity = '猎头';
|
$nid = $this->update_once('lt_info', $up, $where);
|
$this->update_once('lt_job', $up, array('uid' => $whereData['uid'], 'usertype' => 3 ));
|
|
} else if ($usertype == 4) {
|
|
$identity = '培训';
|
$nid = $this->update_once('px_train', $up, $where);
|
$this->update_once('px_teacher', $up, $where);
|
$this->update_once('px_subject', $up, $where);
|
$this->update_once('px_train_news', $up, $where);
|
}
|
|
if ($nid) {
|
if($isSendMsg){
|
// 会员审核发送通知
|
$stData = array(
|
'status' => $post['status'],
|
'statusbody'=> $post['lock_info'],
|
'usertype' => $usertype
|
);
|
}
|
$this->sendStatus($whereData['uid'], $stData);
|
//$this->update_once('member',array('status'=>$post['status']),array('uid'=>$whereData['uid']));
|
$return['msg'] = $identity.'会员'.$msg.'设置成功(ID:' . $whereData['uid']['1'].$lock_info. ')';
|
|
$return['errcode'] = '9';
|
} else {
|
$return['msg'] = $identity.'会员'.$msg.'设置失败(ID:' . $whereData['uid']['1'] . ')';
|
$return['errcode'] = '8';
|
}
|
} else {
|
$return['msg'] = '系统繁忙';
|
$return['errcode'] = '8';
|
}
|
return $return;
|
}
|
/**
|
* 会员审核发送通知
|
* @param $uid 参数格式:uid = array('in', '1,2,3'); uid = 1;
|
* @param array $post
|
*/
|
private function sendStatus($uid,$post=array()){
|
//审核通过和审核未通过才提醒,并且要先判断审核提醒是否开启通知
|
|
$msgtx = $this -> config['sy_msg_userstatus'];
|
$emailtx = $this -> config['sy_email_userstatus'];
|
|
if ($post['status'] == 1 || $post['status'] == 3){
|
|
$members = $this -> getList(array('uid'=>$uid,'status'=>1),array('field'=>'uid,username,email,moblie'));
|
|
if ($members){
|
|
$date = date('Y-m-d H:i:s');
|
$statusInfo = '';
|
//处理审核信息
|
if($post['status'] == 1){
|
|
$statusInfo = '审核通过!';
|
|
}elseif($post['status'] == 3){
|
|
$statusInfo = '审核未通过,';
|
|
if($post['statusbody']){
|
|
$statusInfo .= '原因:'.$post['statusbody'];
|
|
}
|
}
|
|
if ($msgtx == '1' || $emailtx == '1'){
|
$tplData = array(
|
'auto_statis' => $statusInfo,
|
'date' => $date,
|
'type' => 'userstatus'
|
);
|
|
//因发送内容相同,可以先提取发送内容,然后再批量发送,可以减少循环查询次数
|
require_once('notice.model.php');
|
|
$noticeM = new notice_model($this->db, $this->def);
|
//获取短息通知内容
|
$msgTpl = $noticeM -> getTpl($tplData,'msg');
|
//获取邮件通知内容
|
$emailTpl = $noticeM -> getTpl($tplData,'email');
|
}
|
|
$uids = array();
|
|
foreach ($members as $k=>$v){
|
|
$uids[] = $v['uid'];
|
//批量发送短信
|
if ($v['moblie'] && $msgtx == '1'){
|
|
$mdata = array(
|
'uid' => $v['uid'],
|
'cuid' => 0,
|
'moblie' => $v['moblie'],
|
'type' => 'userstatus',
|
'port' => '5'
|
);
|
$noticeM -> sendSMSType($mdata,$msgTpl['content']);
|
}
|
//批量发送邮件
|
if ($v['email'] && $emailtx == '1'){
|
|
$edata = array(
|
'uid' => $v['uid'],
|
'cuid' => 0,
|
'email' => $v['email'],
|
'type' => 'userstatus'
|
);
|
$noticeM -> sendEmailType($edata,$emailTpl);
|
}
|
}
|
//发送系统通知
|
include_once('sysmsg.model.php');
|
|
$sysmsgM = new sysmsg_model($this->db, $this->def);
|
|
$statusInfo = '您的账号'.$statusInfo;
|
$sysmsgM -> addInfo(array('uid'=>$uids,'content'=>$statusInfo,'usertype' => $post['usertype']));
|
}
|
}
|
}
|
//后台个人会员列表处理数据
|
private function getDataList($List){
|
|
foreach($List as $v){
|
if($v['uid']){
|
if($v['usertype']=='1'){
|
$useruids[] = $v['uid'];
|
}
|
if($v['usertype']=='2'){
|
if($v['pid']){
|
$comuids[] = $v['pid'];
|
}else{
|
$comuids[] = $v['uid'];
|
}
|
|
}
|
if($v['usertype']=='3'){
|
$ltuids[] = $v['uid'];
|
}
|
if($v['usertype']=='4'){
|
$pxuids[] = $v['uid'];
|
}
|
}
|
|
}
|
|
|
$countname = array();
|
if(!empty($useruids)){
|
$resumes = $this -> select_all('resume',array('uid'=>array('in',pylode(',', $useruids))),'`uid`,`name`,`def_job`');
|
foreach($resumes as $rk=>$rv){
|
$countname[$rv['uid']] = $rv['name'];
|
}
|
}
|
if(!empty($comuids)){
|
$coms = $this -> select_all('company',array('uid'=>array('in',pylode(',', $comuids))),'`uid`,`name`');
|
foreach($coms as $ck=>$cv){
|
|
$countname[$cv['uid']] = $cv['name'];
|
}
|
}
|
|
if(!empty($ltuids)){
|
$lts = $this -> select_all('lt_info',array('uid'=>array('in',pylode(',', $ltuids))),'`uid`,`com_name`');
|
|
foreach($lts as $lk=>$lv){
|
$countname[$lv['uid']] = $lv['com_name'];
|
}
|
}
|
if(!empty($pxuids)){
|
$pxs = $this -> select_all('px_train',array('uid'=>array('in',pylode(',', $pxuids))),'`uid`,`name`');
|
foreach($pxs as $pk=>$pv){
|
$countname[$pv['uid']] = $pv['name'];
|
}
|
}
|
|
foreach($List as $k=>$v){
|
if(!empty($resumes)){
|
foreach($resumes as $val){
|
|
if($val['uid']==$v['uid']){
|
|
$List[$k]['name'] = $val['name'];
|
$List[$k]['def_job'] = $val['def_job'];
|
}
|
}
|
}
|
if(!empty($countname)){
|
if($v['usertype']==2 && $v['pid']){
|
$uid = $v['pid'];
|
}else{
|
$uid = $v['uid'];
|
}
|
$List[$k]['countname'] = $countname[$uid];
|
}
|
|
}
|
|
return $List;
|
}
|
/**
|
* @desc 生成password(包括原密码验证)
|
*
|
* @param array $pwdData (password:明密 salt:加密随机字符)
|
*
|
*/
|
public function generatePwd($pwdData){
|
|
$pwdRes = array();
|
|
if(empty($pwdData['password'])){
|
|
return $pwdRes;
|
|
}
|
|
if (empty($pwdData['salt'])) {
|
|
$salt = substr(uniqid(rand()), -6);
|
|
}else{
|
|
$salt = $pwdData['salt'];
|
|
}
|
|
$pass = passCheck($pwdData['password'],$salt);
|
|
$pwdRes['pwd'] = $pass;
|
|
$pwdRes['salt'] = $salt;
|
|
return $pwdRes;
|
}
|
/**
|
* 删除个人会员
|
*/
|
private function delUser($uid){
|
|
if (!empty($uid)){
|
|
|
|
$return = $this -> delete_all('resume',array('uid'=>array('in',$uid)),'');
|
|
if ($return){
|
|
$this -> delete_all('answer',array('uid'=>array('in',$uid),'usertype'=>1),'');
|
|
$this -> delete_all('answer_review',array('uid'=>array('in',$uid),'usertype'=>1),'');
|
|
$this -> delete_all('atn',array('uid'=>array('in',$uid),'sc_uid'=>array('in',$uid,'OR')),'');
|
|
$this -> delete_all('attention',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('blacklist',array('p_uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('change',array('uid'=>array('in',$uid),'usertype'=>1),'');
|
|
$this -> delete_all('chat_cs_log',array('uid'=>array('in',$uid),'usertype'=>1),'');
|
|
$this -> delete_all('chat_cs_pick',array('uid'=>array('in',$uid),'usertype'=>1),'');
|
|
$this -> delete_all('chat_friend',array('uid'=>array('in',$uid),'usertype'=>1),'');
|
|
$this -> delete_all('chat_friend',array('fid'=>array('in',$uid),'fusertype'=>1),'');
|
|
$this -> delete_all('chat_log',array('from'=>array('in',$uid),'fusertype'=>1),'');
|
|
$this -> delete_all('chat_log',array('to'=>array('in',$uid),'tusertype'=>1),'');
|
|
$this -> delete_all('chat_member',array('uid'=>array('in',$uid),'usertype'=>1),'');
|
|
$this -> delete_all('chat_right',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('company_job_rewardlist',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('company_job_rewardlog',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('company_job_sharelog',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('company_msg',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('company_order',array('uid'=>array('in',$uid),'usertype'=>1), '');
|
|
$this -> delete_all('company_pay',array('com_id'=>array('in',$uid),'usertype'=>1),'');
|
|
$this -> delete_all('concheck_log',array('uid'=>array('in',$uid),'usertype'=>1),'');
|
|
$this -> delete_all('coupon_list',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('down_resume',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('evaluate_log',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('fav_job',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('job_tellog', array('uid' => array('in',$uid)), '');
|
|
$this -> delete_all('login_log',array('uid'=>array('in',$uid),'usertype'=>1),'');
|
|
$this -> delete_all('look_job',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('look_resume',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('member_log',array('uid'=>array('in',$uid),'usertype'=>1),'');
|
|
$this -> delete_all('member_statis',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('msg',array('uid'=>array('in',$uid)));
|
|
$this -> delete_all('part_apply',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('part_collect',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('px_subject_collect',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('px_zixun',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('question',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('rebates',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('report',array('p_uid'=>array('in',$uid),'c_uid'=>array('in',$uid,'OR')),'');
|
|
$this -> delete_all('resume_expect',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('resume_city_job_class',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('resume_cityclass',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('resume_doc',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('resume_edu',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('resume_jobclass',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('resume_other',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('resume_project',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('resume_show',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('resume_skill',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('resume_trainging',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('resume_work',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('spview_log',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('spview_subscribe',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('spview_subscribe_msg',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('subscribe',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('subscriberecord',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('talent_pool',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('user_entrust',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('user_entrust_record',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('user_resume',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('userid_job',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('userid_msg',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('xjhlive_black',array('uid'=>array('in',$uid),'usertype'=>1),'');
|
|
$this -> delete_all('xjhlive_chat',array('fuid'=>array('in',$uid),'fusertype'=>1),'');
|
|
$this -> delete_all('xjhlive_yy',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('xjhlive_yy_msg',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('zphnet_look',array('uid'=>array('in',$uid),'usertype'=>1),'');
|
|
$this -> delete_all('zphnet_user',array('uid'=>array('in',$uid),'usertype'=>1),'');
|
}
|
|
return $return;
|
}
|
}
|
|
/**
|
* 删除企业会员
|
*/
|
private function delCom($uid){
|
if (!empty($uid)){
|
|
$return = $this -> delete_all('company',array('uid'=>array('in',$uid)), '');
|
|
if ($return){
|
|
$this -> delete_all('answer',array('uid'=>array('in',$uid),'usertype'=>2), '');
|
|
$this -> delete_all('answer_review',array('uid'=>array('in',$uid),'usertype'=>2), '');
|
|
$this -> delete_all('ad_order',array('comid'=>array('in',$uid)), '');
|
|
$this -> delete_all('atn',array('uid'=>array('in',$uid),'sc_uid'=>array('in',$uid,'OR')), '');
|
|
$this -> delete_all('attention',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('banner',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('blacklist',array('c_uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('change',array('uid'=>array('in',$uid),'usertype'=>2),'');
|
|
$this -> delete_all('chat_cs_log',array('uid'=>array('in',$uid),'usertype'=>2),'');
|
|
$this -> delete_all('chat_cs_pick',array('uid'=>array('in',$uid),'usertype'=>2),'');
|
|
$this -> delete_all('chat_friend',array('uid'=>array('in',$uid),'usertype'=>2), '');
|
|
$this -> delete_all('chat_friend',array('fid'=>array('in',$uid),'fusertype'=>2), '');
|
|
$this -> delete_all('chat_log',array('from'=>array('in',$uid),'fusertype'=>2), '');
|
|
$this -> delete_all('chat_log',array('to'=>array('in',$uid),'tusertype'=>2), '');
|
|
$this -> delete_all('chat_member',array('uid'=>array('in',$uid),'usertype'=>2), '');
|
|
$this -> delete_all('chat_right',array('comid'=>array('in',$uid)), '');
|
|
$this -> delete_all('company_account',array('comid'=>array('in',$uid)), '');
|
|
$this -> delete_all('company_job',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('company_job_link',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('company_job_reward',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('company_job_rewardlist',array('comid'=>array('in',$uid)),'');
|
|
$this -> delete_all('company_job_rewardlog',array('comid'=>array('in',$uid)),'');
|
|
$this -> delete_all('company_job_share',array('comid'=>array('in',$uid)), '');
|
|
$this -> delete_all('company_job_sharelog',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('company_job_sharelog',array('comid'=>array('in',$uid)), '');
|
|
$this -> delete_all('company_cert',array('uid'=>array('in',$uid),'usertype'=>2), '');
|
|
$this -> delete_all('company_news',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('company_order',array('uid'=>array('in',$uid),'usertype'=>2), '');
|
|
$this -> delete_all('company_pay',array('com_id'=>array('in',$uid),'usertype'=>2), '');
|
|
$this -> delete_all('company_product',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('company_show',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('company_statis',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('company_msg',array('cuid'=>array('in',$uid)), '');
|
|
$this -> delete_all('concheck_log',array('uid'=>array('in',$uid),'usertype'=>1),'');
|
|
$this -> delete_all('coupon_list',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('down_resume',array('comid'=>array('in',$uid),'usertype'=>2), '');
|
|
$this -> delete_all('email_msg',array('uid'=>array('in',$uid),'cuid'=>array('in',$uid,'OR')), '');
|
|
$this -> delete_all('evaluate_log',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('fav_job',array('com_id'=>array('in',$uid)), '');
|
|
$this -> delete_all('friend_help',array('comid'=>array('in',$uid)), '');
|
|
$this -> delete_all('friend_help_log',array('comid'=>array('in',$uid)), '');
|
|
$this -> delete_all('hotjob',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('invoice_record',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('job_tellog', array('comid' => array('in',$uid)), '');
|
|
$this -> delete_all('login_log',array('uid'=>array('in',$uid),'usertype'=>2), '');
|
|
$this -> delete_all('look_job',array('com_id'=>array('in',$uid)), '');
|
|
$this -> delete_all('look_resume',array('com_id'=>array('in',$uid),'usertype'=>2), '');
|
|
$this -> delete_all('lt_job',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('member_log',array('uid'=>array('in',$uid),'usertype'=>2), '');
|
|
$this -> delete_all('msg',array('job_uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('partjob',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('part_apply',array('comid'=>array('in',$uid)), '');
|
|
$this -> delete_all('part_collect',array('comid'=>array('in',$uid)), '');
|
|
$this -> delete_all('px_subject_collect',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('px_zixun',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('question',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('rebates',array('job_uid'=>array('in',$uid),'uid'=>array('in',$uid,'OR')), '');
|
|
$this -> delete_all('report',array('p_uid'=>array('in',$uid),'c_uid'=>array('in',$uid,'OR')), '');
|
|
$this -> delete_all('school_xjh',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('special_com',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('spview',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('spview_log',array('comid'=>array('in',$uid)), '');
|
|
$this -> delete_all('spview_subscribe',array('comid'=>array('in',$uid)), '');
|
|
$this -> delete_all('spview_subscribe_msg',array('comid'=>array('in',$uid)), '');
|
|
$this -> delete_all('subscribe',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('subscriberecord',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('talent_pool',array('cuid'=>array('in',$uid)), '');
|
|
$this -> delete_all('user_entrust_record',array('comid'=>array('in',$uid)), '');
|
|
$this -> delete_all('userid_job',array('com_id'=>array('in',$uid)), '');
|
|
$this -> delete_all('userid_msg',array('fid'=>array('in',$uid)), '');
|
|
$this -> delete_all('zhaopinhui_com',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('zphnet_com',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('zphnet_look',array('uid'=>array('in',$uid), 'usertype'=>2), '');
|
|
$this -> delete_all('zphnet_user',array('uid'=>array('in',$uid), 'usertype'=>2), '');
|
|
$this -> delete_all('crmnew_concern',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('crm_comlog',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('crm_out',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('crm_work_plan',array('comid'=>array('in',$uid)), '');
|
|
$this -> delete_all('xjhlive_black',array('uid'=>array('in',$uid),'usertype'=>2), '');
|
|
$this -> delete_all('xjhlive_chat',array('fuid'=>array('in',$uid),'fusertype'=>2), '');
|
|
$this -> delete_all('xjhlive_com',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('yqmb',array('uid'=>array('in',$uid)), '');
|
|
}
|
return $return;
|
}
|
}
|
/**
|
* 删除猎头会员
|
*/
|
private function delLt($uid){
|
|
if (!empty($uid)){
|
|
|
$return = $this -> delete_all('lt_info',array('uid'=>array('in',$uid)), '');
|
|
if ($return){
|
|
$this -> delete_all('answer', array('uid' => array('in', $uid),'usertype'=>3), '');
|
|
$this -> delete_all('answer_review', array('uid' => array('in', $uid),'usertype'=>3), '');
|
|
$this -> delete_all('atn',array('uid'=>array('in',$uid),'sc_uid'=>array('in',$uid,'OR')), '');
|
|
$this -> delete_all('attention', array('uid' => array('in', $uid)), '');
|
|
$this -> delete_all('change',array('uid'=>array('in',$uid),'usertype'=>1),'');
|
|
$this -> delete_all('chat_cs_log',array('uid'=>array('in',$uid),'usertype'=>3),'');
|
|
$this -> delete_all('chat_cs_pick',array('uid'=>array('in',$uid),'usertype'=>3),'');
|
|
$this -> delete_all('chat_friend',array('uid'=>array('in',$uid),'usertype'=>3), '');
|
|
$this -> delete_all('chat_friend',array('fid'=>array('in',$uid),'fusertype'=>3), '');
|
|
$this -> delete_all('chat_log',array('from'=>array('in',$uid),'fusertype'=>3), '');
|
|
$this -> delete_all('chat_log',array('to'=>array('in',$uid),'tusertype'=>3), '');
|
|
$this -> delete_all('chat_member',array('uid'=>array('in',$uid),'usertype'=>3), '');
|
|
$this -> delete_all('chat_right',array('comid'=>array('in',$uid)), '');
|
|
$this -> delete_all('company_cert', array('uid' => array('in', $uid),'usertype'=>3), '');
|
|
$this -> delete_all('company_job_reward',array('uid'=>array('in',$uid)),'');
|
|
$this -> delete_all('company_job_rewardlist',array('comid'=>array('in',$uid)),'');
|
|
$this -> delete_all('company_job_rewardlog',array('comid'=>array('in',$uid)),'');
|
|
$this -> delete_all('company_job_share',array('comid'=>array('in',$uid)), '');
|
|
$this -> delete_all('company_job_sharelog',array('comid'=>array('in',$uid)), '');
|
|
$this -> delete_all('company_order', array('uid' => array('in', $uid),'usertype'=>3), '');
|
|
$this -> delete_all('company_pay', array('com_id' => array('in', $uid),'usertype'=>3), '');
|
|
$this -> delete_all('coupon_list',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('down_resume', array('comid' => array('in', $uid),'usertype'=>3), '');
|
|
$this -> delete_all('email_msg',array('uid'=>array('in',$uid),'cuid'=>array('in',$uid,'OR')), '');
|
|
$this -> delete_all('evaluate_log',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('fav_job',array('uid'=>array('in',$uid),'com_uid'=>array('in',$uid,'OR')), '');
|
|
$this -> delete_all('login_log', array('uid' => array('in', $uid),'usertype'=>3), '');
|
|
$this -> delete_all('lt_job', array('uid' => array('in', $uid)), '');
|
|
$this -> delete_all('lt_statis', array('uid' => array('in', $uid)), '');
|
|
$this -> delete_all('member_log',array('uid'=>array('in',$uid),'usertype'=>3), '');
|
|
$this -> delete_all('msg', array('job_uid' => array('in', $uid)), '');
|
|
$this -> delete_all('px_subject_collect', array('uid' => array('in', $uid)), '');
|
|
$this -> delete_all('px_zixun', array('uid' => array('in', $uid)), '');
|
|
$this -> delete_all('question', array('uid' => array('in', $uid)), '');
|
|
$this -> delete_all('rebates',array('uid'=>array('in',$uid),'job_uid'=>array('in',$uid,'OR')), '');
|
|
$this -> delete_all('xjhlive_black',array('uid'=>array('in',$uid),'usertype'=>3), '');
|
|
$this -> delete_all('xjhlive_chat',array('fuid'=>array('in',$uid),'fusertype'=>3), '');
|
|
$this -> delete_all('userid_job', array('comid' => array('in', $uid),'type'=>3), '');
|
|
}
|
return $return;
|
}
|
}
|
/**
|
* 删除培训会员
|
*/
|
private function delTrain($uid){
|
|
if (!empty($uid)){
|
|
|
$return = $this -> delete_all('px_train',array('uid'=>array('in',$uid)), '');
|
|
if ($return){
|
|
$this -> delete_all('answer', array('uid' => array('in', $uid),'usertype'=>4), '');
|
|
$this -> delete_all('answer_review', array('uid' => array('in', $uid),'usertype'=>4), '');
|
|
$this -> delete_all('atn',array('uid'=>array('in',$uid),'sc_uid'=>array('in',$uid,'OR')), '');
|
|
$this -> delete_all('attention', array('uid' => array('in', $uid)), '');
|
|
$this -> delete_all('change',array('uid'=>array('in',$uid),'usertype'=>1),'');
|
|
$this -> delete_all('chat_cs_log',array('uid'=>array('in',$uid),'usertype'=>4),'');
|
|
$this -> delete_all('chat_cs_pick',array('uid'=>array('in',$uid),'usertype'=>4),'');
|
|
$this -> delete_all('company_cert', array('uid' => array('in', $uid),'usertype'=>4), '');
|
|
$this -> delete_all('company_order', array('uid' => array('in', $uid), 'usertype' => 4), '');
|
|
$this -> delete_all('company_pay', array('com_id' => array('in', $uid),'usertype'=>4), '');
|
|
$this -> delete_all('email_msg',array('uid'=>array('in',$uid),'cuid'=>array('in',$uid,'OR')), '');
|
|
$this -> delete_all('evaluate_log',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('login_log', array('uid' => array('in', $uid),'usertype'=>4), '');
|
|
$this -> delete_all('member_log',array('uid'=>array('in',$uid),'usertype'=>4), '');
|
|
$this -> delete_all('msg', array('job_uid' => array('in', $uid)), '');
|
|
$this -> delete_all('px_banner', array('uid' => array('in', $uid)), '');
|
|
$this -> delete_all('px_baoming', array('s_uid' => array('in', $uid)), '');
|
|
$this -> delete_all('px_subject', array('uid' => array('in', $uid)), '');
|
|
$this -> delete_all('px_subject_collect', array('s_uid' => array('in', $uid)), '');
|
|
$this -> delete_all('px_teacher', array('uid' => array('in', $uid)), '');
|
|
$this -> delete_all('px_train_news', array('uid' => array('in', $uid)), '');
|
|
$this -> delete_all('px_train_show', array('uid' => array('in', $uid)), '');
|
|
$this -> delete_all('px_train_statis', array('uid' => array('in', $uid)), '');
|
|
$this -> delete_all('px_zixun', array('s_uid' => array('in', $uid)), '');
|
|
}
|
return $return;
|
}
|
}
|
|
function delgq($uid){
|
|
if (!empty($uid)){
|
|
|
|
$return = $this -> delete_all('gq_info',array('uid'=>array('in',$uid)), '');
|
|
if ($return){
|
|
$this -> delete_all('company_order', array('uid' => array('in', $uid), 'usertype' => 5), '');
|
|
$this -> delete_all('evaluate_log',array('uid'=>array('in',$uid)), '');
|
|
$this -> delete_all('gq_task', array('uid' => array('in', $uid)), '');
|
|
$this -> delete_all('gq_browse', array('uid' => array('in', $uid)), '');
|
|
$this -> delete_all('login_log', array('uid' => array('in', $uid),'usertype'=>5), '');
|
|
$this -> delete_all('member_log',array('uid'=>array('in',$uid),'usertype'=>5), '');
|
|
}
|
}
|
return $return;
|
}
|
/**
|
* @desc 修改用户名
|
* @param array $data
|
*/
|
function saveUserName($data = array()) {
|
|
$value = array('username' => trim($data['username']));
|
|
if (isset($data['restname']) && $data['restname'] == '1') {
|
$value['password'] = $data['password'];
|
$value['restname'] = $data['restname'];
|
}
|
|
$uid = intval($data['uid']);
|
|
$result = $this -> addMemberCheck($value, $uid);
|
|
if ($result['username']) {
|
|
if ($data['restname']=='1' || $data['admin'] == '1') {
|
|
unset($value['password']);
|
|
require_once ('log.model.php');
|
$LogM = new log_model($this->db, $this->def);
|
$LogM -> addMemberLog($data['uid'], $data['usertype'], '修改用户名,原用户名:' . $result['oldusername'], 11);
|
|
$this -> update_once('member', $value, array('uid' => $uid));
|
|
$return['errcode'] = '1';
|
}else{
|
|
$return['msg'] = '修改次数已用完!';
|
}
|
|
}else{
|
|
if ($data['admin'] == '1') {
|
|
return $result;
|
}else{
|
|
$return['msg'] = $result['msg']?$result['msg']:'修改失败!';
|
}
|
}
|
|
return $return;
|
|
}
|
|
/**
|
* @desc 修改密码
|
* @param array $data
|
*/
|
function savePassword($data = array()) {
|
|
if (!empty($data)) {
|
|
$return = array();
|
|
$uid = intval($data['uid']);
|
$pass = trim($data['password']);
|
$oldpass = trim($data['oldpassword']);
|
$repass = trim($data['repassword']);
|
|
$info = $this -> getInfo(array('uid'=> $uid), array('field'=>'salt,password'));
|
|
if($info && is_array($info)){
|
|
//$pwdA = $this->generatePwd(array('password'=>$oldpass,'salt'=>$info['salt']));
|
|
//$old = $pwdA['pwd'];
|
|
$pwmsg = regPassWordComplex($pass);
|
|
if (!passCheck($oldpass,$info['salt'],$info['password'])) {
|
|
$return['errcode'] = 8;
|
|
$return['msg'] = '原始密码错误,请重试!';
|
|
}elseif ($pass != $repass) {
|
|
$return['errcode'] = 8;
|
|
$return['msg'] = '确认密码与新密码不一致,请重试!';
|
|
}elseif($pwmsg!=''){
|
|
$return['errcode'] = 8;
|
|
$return['msg'] = $pwmsg;
|
|
}else{
|
|
$passwordA = $this -> generatePwd(array('password'=>$pass));
|
$password = $passwordA['pwd'];
|
$salt = $passwordA['salt'];
|
|
$return['id'] = $this -> update_once('member',array('password'=>$password, 'salt'=>$salt), array('uid'=>intval($data['uid'])));
|
|
require_once ('log.model.php');
|
$LogM = new log_model($this->db, $this->def);
|
$LogM->addMemberLog($data['uid'], $data['usertype'], '修改密码', 8,2);
|
|
$return['errcode'] = 9 ;
|
|
$return['msg'] = '密码修改成功,请重新登录!';
|
|
}
|
}
|
|
return $return;
|
|
}
|
|
}
|
|
/**
|
* 获取member_reg信息
|
* 通用的whereData条件
|
*/
|
function getMemberregInfo($whereData,$data=array()){
|
|
$field = empty($data['field']) ? '*' : $data['field'];
|
|
$List = $this -> select_once('member_reg', $whereData, $field);
|
|
return $List;
|
|
}
|
/**
|
* 获取member_reg信息
|
* 通用的data数组
|
*/
|
function addMemberreg($data=array()){
|
|
$nid = $this -> insert_into('member_reg', $data);
|
|
return $nid;
|
|
}
|
/**
|
* 上传个人头像
|
*/
|
public function upLogo($id,$data=array()){
|
|
if($id && !empty($data)){
|
|
require_once ('integral.model.php');
|
|
$IntegralM = new integral_model($this -> db, $this -> def);
|
|
$IntegralM -> invtalCheck($id,1,'integral_avatar','上传头像',20);
|
|
|
if($data['wap']){
|
|
$photo = './data/upload/user/'.date('Ymd').'/'.$data['pic'];
|
|
}else{
|
|
$photo = str_replace('../data/upload/user/','./data/upload/user/',$data[1]);
|
|
}
|
|
if($this -> config['user_photo_status'] == 1){
|
|
$photo_status = '1';
|
|
$return['msg']='3';
|
|
}else{
|
$photo_status = '0';
|
|
$return ['msg'] = '1';
|
}
|
|
//5.0图片上传后就显示,后台审核不通过直接删除
|
$this -> update_once('resume',array('photo'=>$photo,'photo_status'=>$photo_status),array('uid'=>$id));
|
|
$this -> update_once('resume_expect',array('photo'=>$photo),array('uid'=>$id));
|
|
$this -> update_once('answer',array('pic'=>$photo),array('uid'=>$id));
|
|
$this -> update_once('question',array('pic'=>$photo),array('uid'=>$id));
|
|
return $return;
|
|
}
|
|
}
|
/**
|
* 个人身份认证
|
*/
|
public function upidcardInfo($whereData = array(),$data = array()){
|
|
if(!empty($whereData)){
|
|
require_once ('resume.model.php');
|
$ResumeM = new resume_model($this -> db, $this -> def);
|
$resume = $ResumeM -> getResumeInfo(array('uid'=>$whereData['uid']));
|
|
if($resume['r_status']==2){
|
$status = 0;
|
}else{
|
$status = $this->config['user_idcard_status'] == '1' ? '0' : '1';
|
}
|
|
$data['name'] = $data['name']?$data['name']:$resume['name'];
|
|
$PostData = array(
|
'name' => $data['name'],
|
'idcard' => $data['idcard'],
|
'idcard_status' => $status,
|
'cert_time' => time()
|
);
|
|
//图片路径处理
|
if ($data['file']['tmp_name'] || $data['preview']){
|
|
$upArr = array(
|
'file' => $data['file'],
|
'dir' => 'cert',
|
'base' => $data['preview'],
|
);
|
|
$result = $this -> upload($upArr);
|
|
if (!empty($result['msg'])){
|
|
$return['msg'] = $result['msg'];
|
|
$return['errcode'] = '8';
|
|
return $return;
|
|
}elseif (!empty($result['picurl'])){
|
|
$picurl = $result['picurl'];
|
|
}
|
}elseif($data['idcard_pic']){
|
$picurl = $data['idcard_pic'];
|
}
|
if (isset($picurl)){
|
$PostData['idcard_pic'] = $picurl;
|
}
|
|
$id = $this -> update_once('resume',$PostData,array('uid'=>$whereData['uid']));
|
|
$this -> update_once('resume_expect',array('idcard_status' => $status, 'uname' => trim($data['name'])),array('uid'=>$whereData['uid']));
|
|
if($id){
|
|
if ((!is_array($resume) || $resume['idcard_pic']=='') && $this->config['user_idcard_status']!=1){
|
|
$com = $this->select_once('company_pay',array('com_id'=>$whereData['uid'],'pay_remark'=>'上传身份验证'));
|
|
if(empty($com)){
|
require_once ('integral.model.php');
|
$IntegralM = new integral_model($this->db, $this->def);
|
$IntegralM->invtalCheck($whereData['uid'],$data['usertype'],'integral_identity','上传身份验证',21);
|
}
|
}
|
require_once ('log.model.php');
|
$LogM = new log_model($this->db, $this->def);
|
$LogM -> addMemberLog($whereData['uid'],$data['usertype'],'上传身份验证图片',13,1);
|
|
if ($this -> config['user_idcard_status'] == '1'){
|
|
$return['errcode'] = '9';
|
|
$return['msg'] = '上传成功,请等待审核';
|
|
require_once('admin.model.php');
|
$adminM = new admin_model($this->db,$this->def);
|
$adminM->sendAdminMsg(array('first'=>'个人用户《'.$data['name'].'》上传了新的身份认证,请查看审核。','type'=>8));
|
}else{
|
|
$return['errcode'] = '9';
|
$return['msg'] = '上传成功';
|
}
|
}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 array $data $data['uid'] $data['usertype']
|
* @return array|int[]|string[]
|
*/
|
public function userLogin($data = array())
|
{
|
|
$username = $data['username'];
|
if(!empty($data['moblie'])){
|
$moblie = $data['moblie'];
|
}else{
|
$moblie = $data['username'];
|
}
|
$return = array('msg'=>'系统繁忙','errcode'=>8);
|
require ('notice.model.php');
|
$noticeM = new notice_model($this->db, $this->def);
|
//会员已登录判断
|
if(!empty($data['uid']) && $data['uid'] > 0 && $username!=''){
|
if($data['usertype']=='1'){
|
return array('msg'=>'您现在是个人会员登录状态!');
|
}elseif($data['usertype']=='2'){
|
return array('msg'=>'您现在是企业会员登录状态!');
|
}elseif($data['usertype']=='3'){
|
return array('msg'=>'您现在是猎头会员登录状态!');
|
}elseif($data['usertype']=='4'){
|
return array('msg'=>'您现在是培训会员登录状态!');
|
}
|
}
|
//username验证
|
if($this->config['sy_msg_isopen'] && $this->config['sy_msg_login'] && !empty($data['act_login'])){
|
if(!CheckMobile($moblie)){
|
return array('msg'=>'手机号码格式不正确!','errcode'=>'8');
|
}
|
// 未注册手机登录直接注册新账号
|
$member_arr = $this->getMemberNum(array('moblie'=>$moblie));
|
|
|
if(!$member_arr || $member_arr==0){
|
|
$return = $this -> regUserByMobile($moblie, $data);
|
|
if($return['errcode']!=1){
|
return $return;
|
}else{
|
$regNew = 1;
|
}
|
}
|
$where = array('moblie'=> $moblie);
|
}else {
|
//验证码判断 手机动态码登录 无需验证验证码
|
if($data['wxapp'] != '1'){
|
$result = $noticeM->jycheck($data['authcode'],'前台登录');
|
if(!empty($result)){
|
return array('msg'=>$result['msg'],'errcode'=>'8');
|
}
|
}
|
|
if(CheckRegUser($username)==false && CheckRegEmail($username)==false && ($username!='')){
|
return array('msg'=>'用户名或密码不正确!','errcode'=>'8');
|
}
|
|
$where = array('username'=> $username);
|
|
if(CheckMobile($username)){
|
$where['PHPYUNBTWSTART'] = 'OR';
|
|
$where['moblie'] = $username;
|
|
$where['moblie_status'] = 1;
|
|
$where['PHPYUNBTWEND'] = '';
|
|
}
|
//邮箱登录
|
if(CheckRegEmail($username)){
|
|
$where['PHPYUNBTWSTART'] = 'OR';
|
|
$where['email'] = $username;
|
|
$where['email_status'] = 1;
|
|
$where['PHPYUNBTWEND'] = '';
|
}
|
}
|
|
$user = $this->getInfo($where);
|
|
//开启UC情况下 需要判断UC账户 并进行同步登录
|
if($this->config['sy_uc_type']=="uc_center" && !$data['act_login']){
|
|
|
include APP_PATH.'data/api/uc/config.inc.php';
|
include APP_PATH.'/api/uc/include/db_mysql.class.php';
|
include APP_PATH.'/api/uc/uc_client/client.php';
|
$uname = $username;
|
|
|
list($uid, $uname, $password, $email) = uc_user_login($uname, $data['password']);
|
|
|
if($uid>0){
|
//创建登录同步通知
|
$ucsynlogin=uc_user_synlogin($uid);
|
|
$return['uclogin'] = $ucsynlogin;
|
}
|
}
|
//如果系统未找到该用户 转向UC验证 是否UC用户 排除动态码登录
|
if(empty($user)){
|
|
//自动将UC账号注册至系统
|
if($uid > 0) {
|
|
if($data['source']){
|
$source = $data['source'];
|
}else{
|
$source = 1;
|
}
|
$salt = substr(uniqid(rand()), -6);
|
$pass = passCheck($data['password'],$salt);
|
$adata['username'] = $data['username'];
|
$adata['password'] = $pass;
|
$adata['did'] = $this->config['did'];
|
$adata['status'] = 1;
|
$adata['salt'] = $salt;
|
$adata['source'] = $source;
|
$adata['reg_date'] = time();
|
$adata['reg_ip'] = fun_ip_get();
|
$adata['usertype'] = 0;
|
$userid = $this->insert_into('member',$adata);
|
//
|
$user = $adata;
|
$user['uid'] = $userid;
|
$res = true;
|
$loginType = 'UC';
|
}else{
|
return array('msg'=>'该用户不存在!','errcode'=>'8');
|
}
|
}else{
|
|
if($user['status']=='2'){
|
return array('msg'=>'您的账号已被锁定!','errcode'=>'8','url'=>Url('register',array('c'=>'ok','type'=>2),'1'));
|
}
|
|
//如果是企业用户,验证企业是否暂停
|
if($user['usertype']=='2'){
|
|
$commember = $this->select_once('company',array('uid'=>$user['uid']),'r_status');
|
|
if($commember['r_status']==4){
|
|
return array('msg'=>'您的账号已被暂停!','errcode'=>'8');
|
}
|
}
|
if ($this->config['sy_msg_isopen'] && $this->config['sy_msg_login'] && !empty($data['act_login'])) {
|
|
//短信验证码校验
|
if($regNew == 1){
|
|
$companywhere['check'] = $user['moblie'];
|
}else{
|
|
$companywhere['uid'] = $user['uid'];
|
}
|
|
$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['password'] == $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');
|
}
|
$loginType = '短信验证码';
|
}else{
|
//普通密码校验
|
$res = passCheck($data['password'],$user['salt'],$user['password']);
|
$loginType = '账号';
|
}
|
}
|
|
if($res){
|
|
//更新用户QQ互联ID
|
if (session_id() == ''){
|
session_start();
|
}
|
if(!empty($_SESSION['qq']['openid'])){
|
if($_SESSION['qq']['unionid']){
|
$qqdata = array(
|
'qqid' => $_SESSION['qq']['openid'],
|
'qqunionid' => $_SESSION['qq']['unionid']
|
);
|
}else{
|
$qqdata = array(
|
'qqid' => $_SESSION['qq']['openid']
|
);
|
}
|
$this->upInfo(array('username'=>$user['username']),$qqdata);
|
unset($_SESSION['qq']);
|
}
|
//更新用户微信unionid
|
if(!empty($_SESSION['wx']['openid'])){
|
if($_SESSION['wx']['unionid']){
|
$udate = array(
|
'wxid' => $_SESSION['wx']['openid'],
|
'unionid' => $_SESSION['wx']['unionid']
|
);
|
}else{
|
$udate = array(
|
'wxid' => $_SESSION['wx']['openid']
|
);
|
}
|
$this->upInfo($udate, array('wxid' => '', 'wxid' => ''));
|
$this->upInfo(array('username'=>$user['username']),$udate);
|
unset($_SESSION['wx']);
|
}elseif($_COOKIE['wxid']){
|
|
if($_COOKIE['unionid']){
|
$udate = array(
|
'wxid' => $_COOKIE['wxid'],
|
'unionid' => $_COOKIE['unionid']
|
);
|
}else{
|
$udate = array(
|
'wxid' => $_COOKIE['wxid']
|
);
|
}
|
$this->upInfo($udate, array('wxid' => '', 'wxid' => ''));
|
$this->upInfo(array('username'=>$user['username']),$udate);
|
}
|
//更新用户新浪sinaid
|
if(!empty($_SESSION['sina']['openid'])){
|
$this->upInfo(array('username'=>$user['username']),array('sinaid'=>$_SESSION['sina']['openid']));
|
unset($_SESSION['sina']);
|
}
|
//马甲app内绑定登录
|
if(!empty($_SESSION['mag']['user_id'])){
|
$this->upInfo(array('maguid'=>$_SESSION['mag']['user_id']),array('maguid'=>''));
|
$this->upInfo(array('uid'=>$user['uid']),array('maguid'=>$_SESSION['mag']['user_id']));
|
unset($_SESSION['mag']);
|
}
|
//千帆云app内绑定登录
|
if (!empty($data['qfyuid'])){
|
$this->upInfo(array('qfyuid'=>$data['qfyuid']),array('qfyuid'=>''));
|
$this->upInfo(array('uid'=>$user['uid']),array('qfyuid'=>$data['qfyuid']));
|
}
|
|
// 非APP/小程序cookie设置
|
if (empty($data['wxapp'])){
|
|
require_once('cookie.model.php');
|
$cookie = new cookie_model($this->db,$this->def);
|
|
$cookie->unset_cookie();
|
$cookie->add_cookie($user['uid'],$user['username'],$user['salt'],$user['email'],$user['password'],$user['usertype'],$this->config['sy_logintime'],$user['did']);
|
}
|
//会员登录信息变更
|
$ip = fun_ip_get();
|
$upLogin = array(
|
'login_ip' => $ip,
|
'login_date' => time(),
|
'login_hits' => array('+', 1)
|
);
|
if (!empty($data['wxapp'])){
|
if (!empty($data['clientid'])){
|
$upLogin['clientid'] = $data['clientid'];
|
$upLogin['deviceToken'] = $data['deviceToken'];
|
//清除其他账号clientid
|
$this->clearPushId($data['clientid'], $user['uid']);
|
}
|
}
|
$this->upInfo(array('uid'=>$user['uid']), $upLogin);
|
|
if(!empty($user['usertype'])){
|
|
require_once ('log.model.php');
|
$LogM = new log_model($this->db, $this->def);
|
//会员日志,记录登录
|
$loginType .= $LogM->LoginType($data);
|
$LogM->addMemberLog($user['uid'],$user['usertype'], $loginType);
|
|
$logtime = date('Ymd',$user['login_date']);
|
$nowtime = date('Ymd',time());
|
if($logtime!=$nowtime){
|
//登录积分
|
include_once ('integral.model.php');
|
$integralM = new integral_model($this->db, $this->def);
|
$integralM->invtalCheck($user['uid'],$user['usertype'],'integral_login','会员登录',22);
|
//登录日志
|
$logdata['uid'] = $user['uid'];
|
$logdata['usertype'] = $user['usertype'];
|
$logdata['did'] = $user['did'];
|
|
$LogM->addLoginlog($logdata, $data);
|
}
|
$resumeData = array('login_date'=>time());
|
// 个人登录自动刷新简历
|
if ($this->config['resume_sx'] == 1 && $user['usertype'] == 1) {
|
|
$expect = $this->select_once('resume_expect',array('uid'=>$user['uid'],'defaults'=>1), '`id`');
|
if (empty($expect)){
|
$expect = $this->select_once('resume_expect',array('uid'=>$user['uid'],'orderby'=>'`id`'), '`id`');
|
}
|
if (!empty($expect)) {
|
$this->update_once('resume_expect', array('lastupdate'=>time()),array('id'=>$expect['id']));
|
$resumeData['lastupdate'] = time();
|
|
$LogM->addResumeSxLog(array('uid' => $user['uid'], 'resume_id' => $expect['id'], 'r_time' => time(), 'port' => $data['port'], 'ip' => fun_ip_get()));
|
}
|
}
|
// 同步登录时间
|
$this->update_once('company', array('login_date' => time()), array('uid' => $user['uid']));
|
$this->update_once('resume', $resumeData, array('uid' => $user['uid']));
|
}
|
|
if(empty($user['usertype'])){
|
$return['errcode'] = 2;
|
$return['msg'] = '';
|
}else if(!empty($_COOKIE['wxid'])){
|
include_once ('wxredpack.model.php');
|
$wxRedPackM = new wxredpack_model($this->db,$this->def);
|
$wxRedPackM -> sendRedPack(array('type'=>'2','openid'=>$_COOKIE['wxid']));
|
$cookie->setcookie('wxid','',time() - 86400);
|
$return['msg'] = '绑定成功,请按左上方返回进入微信客户端';
|
$return['url'] = Url('wap').'member/';
|
$return['errcode'] = 9;
|
}else if(!empty($data['job'])){
|
$return['errcode'] = 9;
|
$return['msg'] = '';
|
$return['url'] = Url('wap',array('c'=>'job','a'=>'comapply','id'=>intval($data['job'])));
|
}else if(!empty($data['checkurl'])){
|
$return['errcode'] = 9;
|
$return['msg'] = '';
|
$return['url'] = $data['checkurl'];
|
}else{
|
|
if(!empty($data['backurl'])){
|
$return['url'] = $data['backurl'];
|
}else{
|
if(!empty($data['num']) && $data['num']!=1 ){
|
if(!empty($data['referurl'])){
|
$return['url'] = $data['referurl'];
|
}else{
|
$return['url'] = $this->config['sy_weburl'].'/member/index.php';
|
}
|
}else{
|
$return['url'] = $_SERVER['HTTP_REFERER'];
|
}
|
}
|
$return['errcode'] = 9;
|
$return['msg'] = '登录成功';
|
}
|
if (!empty($return['url'])){
|
if (strpos($return['url'], 'register') !==false || strpos($return['url'], 'login') !==false || strpos($return['url'], 'setname') !==false || stripos($return['url'], 'forgetpw') !== false || ($return['url'] == $this->config['sy_weburl'] || $return['url'] == $this->config['sy_weburl'].'/') || $return['url'] == Url('wap')){
|
if ($data['source'] == 2){
|
$return['url'] = Url('wap',array(),'member');
|
}else{
|
$return['url'] = $this->config['sy_weburl'].'/member/index.php';
|
}
|
}
|
}
|
// app 需要token
|
if (!empty($data['wxapp'])){
|
$token = md5($user['username'].$user['password'].$user['salt'].$user['usertype']);
|
if($user['usertype'] > 0){
|
$type = $user['usertype'];
|
}else{
|
$type = 0;
|
}
|
$return['user'] = array('uid'=>$user['uid'],'usertype'=>$type,'token'=>$token);
|
if($user['pid']){
|
$return['user']['spid'] = 1;
|
}
|
}
|
|
return $return;
|
}else{
|
|
return array('msg'=>'用户名或密码不正确!','errcode'=>'8');
|
}
|
return $return;
|
}
|
|
/**
|
* 手机登录,直接注册
|
* @param String $moblie 未注册手机号登录,直接注册新会员
|
* @return int[]
|
*/
|
private function regUserByMobile($moblie, $data = array())
|
{
|
|
include_once ('company.model.php');
|
include_once ('notice.model.php');
|
require_once('cookie.model.php');
|
|
$cookie = new cookie_model($this->db,$this->def);
|
$noticeM = new notice_model($this->db, $this->def);
|
$return = array('errcode'=>8);
|
|
$usertype = 0;
|
$ip = fun_ip_get();
|
$code = $data['password'];
|
|
$CompanyM = new company_model($this->db, $this->def);
|
$cert_arr = $CompanyM->getCertInfo(array('type' => '2', 'check' => $moblie,'orderby'=>'ctime,desc'));
|
if (is_array($cert_arr)) {
|
$checkTime = $noticeM->checkTime($cert_arr['ctime']);
|
if($checkTime){
|
$res = $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');
|
}
|
|
$data['username'] = $moblie;
|
|
$password = mt_rand(111111,999999);
|
|
if($this->config['sy_uc_type']=="uc_center"){
|
include APP_PATH.'data/api/uc/config.inc.php';
|
include APP_PATH.'/api/uc/include/db_mysql.class.php';
|
include APP_PATH.'/api/uc/uc_client/client.php';
|
|
$ucusername = $data['username'];
|
$ucemail = $ucinfo['UC_EMAIL'];
|
|
$uid = uc_user_register($ucusername, $password, $ucemail);
|
|
list($uid,$username,$password,$email,$salt) = uc_user_login($ucusername,$password);
|
$pass = md5(md5($password).$salt);
|
|
}elseif($this->config['sy_pw_type']=='pw_center'){
|
include(APP_PATH.'/api/pw_api/pw_client_class_phpapp.php');
|
$email = '';
|
$pw = new PwClientAPI($data['username'],$password,$email);
|
$pwuid = $pw->register();
|
$salt = substr(uniqid(rand()), -6);
|
$pass = passCheck($password, $salt);
|
}else{
|
$salt = substr(uniqid(rand()), -6);
|
$pass = passCheck($password, $salt);
|
}
|
|
if($_COOKIE['wxid']){
|
$source = '9';
|
}elseif($_SESSION['wx']['openid']){
|
$source = '4';
|
}elseif($_SESSION['qq']['openid']){
|
$source = '8';
|
}elseif($_SESSION['sina']['openid']){
|
$source = '10';
|
}elseif($data['source']){
|
$source = $data['source'];
|
}else{
|
$source = 1;
|
}
|
|
/* 生成uid */
|
$adata['username'] = $data['username'];
|
$adata['password'] = $pass;
|
$adata['email'] = '';
|
$adata['moblie'] = $moblie;
|
$adata['moblie_status'] = 1;
|
$adata['did'] = !empty($data['did']) ? $data['did'] : $this->config['did'];
|
$adata['status'] = 1;
|
$adata['salt'] = $salt;
|
$adata['source'] = $source;
|
$adata['reg_date'] = time();
|
$adata['reg_ip'] = $ip;
|
$adata['qqid'] = $_SESSION['qq']['openid'];
|
$adata['sinaid'] = $_SESSION['sina']['openid'];
|
$adata['wxid'] = $_SESSION['wx']['openid'];
|
$adata['usertype'] = 0;
|
$adata['maguid'] = $_SESSION['mag']['user_id'];
|
$adata['qfyuid'] = $_POST['qfyuid'];
|
|
$userid = $this->insert_into('member',$adata);
|
|
// 容错机制,防止插入表没返回UID
|
if (!$userid){
|
|
$user_id = $this->getInfo(array('username'=>$data['username']),array('field'=>'uid'));
|
$userid = $user_id['uid'];
|
}
|
|
if($userid){
|
|
$cookie->unset_cookie();
|
|
if($this->config['sy_pw_type']=='pw_center'){
|
$this->upInfo(array('pwuid'=>$pwuid),array('uid'=>$userid));
|
}
|
|
//处理注册赠送优惠券
|
if($this->config['reg_coupon']){
|
$coupon = $this->select_once('coupon',array('id'=>$this->config['reg_coupon']));
|
$cdata['uid'] = $userid;
|
$cdata['number'] = time();
|
$cdata['ctime'] = time();
|
$cdata['coupon_id'] = $coupon['id'];
|
$cdata['coupon_name'] = $coupon['name'];
|
$cdata['validity'] = time()+$coupon['time']*86400;
|
$cdata['coupon_amount'] = $coupon['amount'];
|
$cdata['coupon_scope'] = $coupon['scope'];
|
$this->insert_into('coupon_list',$cdata);
|
}
|
|
if(checkMsgOpen($this -> config)){
|
|
$noticeM->sendSMSType(array('name'=>$data['username'],'username'=>$data['username'],'password'=>$password,'moblie'=>$moblie,'type'=>'reg','uid'=>$userid,'port' => $data['port']));
|
}
|
|
|
$this->upInfo(array('uid'=>$userid),array('login_date'=>time(),'login_ip'=>$ip));
|
|
$return['msg'] = '注册成功';
|
$return['errcode'] = 1;
|
|
|
if (!empty($data['wxapp'])){
|
// wxapp 需要token
|
$token = md5($data['username'].$pass.$salt.'0');
|
$return['user'] = array('uid'=>$userid,'usertype'=>0,'token'=>$token);
|
|
if (!empty($data['clientid'])){
|
//清除其他账号clientid
|
$this->clearPushId($data['clientid'], $userid);
|
}
|
}else{
|
// 浏览器需要cookie
|
$cookie->add_cookie($userid,$data['username'],$salt,$data['email'],$pass,'',$this->config['sy_logintime'],$adata['did']);
|
}
|
|
return $return;
|
}else{
|
|
$return['msg'] = '注册失败';
|
$this -> addErrorLog('', 1,$return['msg']);
|
$return['errcode'] = 8;
|
return $return;
|
}
|
}
|
|
/**
|
* 注册
|
*
|
* @param array $data $data['uid'] $data['usertype']
|
* @return mixed
|
*/
|
public function userReg($data = array()){
|
|
if($data['moblie']){
|
$resume_info = $this->getUserInfo(array('telphone'=>$data['moblie'] , 'moblie_status'=>'1') , array('usertype'=>'1','field'=>'uid,name'));
|
$company_info = $this->getUserInfo(array('linktel'=>$data['moblie'] , 'moblie_status'=>'1'),array('usertype'=>'2','field'=>'uid,name'));
|
$lt_info = $this->getUserInfo(array('moblie'=>$data['moblie'] , 'moblie_status'=>'1'),array('usertype'=>'3','field'=>'uid,realname'));
|
$px_info = $this->getUserInfo(array('linktel'=>$data['moblie'] , 'moblie_status'=>'1'),array('usertype'=>'4','field'=>'uid,name'));
|
$m_info = $this->getInfo(array('moblie' => $data['moblie'], 'username' => array('=', $data['moblie'], 'OR')),array('field'=>'`uid`,`usertype`,`username`,`moblie`'));
|
}elseif($data['email']){
|
$resume_info = $this->getUserInfo(array('email'=>$data['email'] , 'moblie_status'=>'1') ,array('usertype'=>'1','field'=>'uid,name'));
|
$company_info = $this->getUserInfo(array('linkmail'=>$data['email'] , 'moblie_status'=>'1') ,array('usertype'=>'2','field'=>'uid,name'));
|
$lt_info = $this->getUserInfo(array('email'=>$data['email'] , 'moblie_status'=>'1') ,array('usertype'=>'3','field'=>'uid,realname'));
|
$px_info = $this->getUserInfo(array('linkmail'=>$data['email'] , 'moblie_status'=>'1') ,array('usertype'=>'4','field'=>'uid,name'));
|
$m_info = $this->getInfo(array('email' => $data['email'], 'username' => array('=', $data['email'], 'OR')),array('field'=>'`uid`,`usertype`,`username`,`email`'));
|
}
|
|
if($resume_info){
|
|
$rdata['name'] = $resume_info['name'];
|
$rdata['uid'] = $resume_info['uid'];
|
$rdata['usertype'] = '1';
|
}else if($company_info){
|
|
$rdata['name'] = $company_info['name'];
|
$rdata['uid'] = $company_info['uid'];
|
$rdata['usertype'] = '2';
|
}else if($lt_info){
|
|
$rdata['name'] = $lt_info['realname'];
|
$rdata['uid'] = $lt_info['uid'];
|
$rdata['usertype'] = '3';
|
}else if($px_info){
|
|
$rdata['name'] = $px_info['name'];
|
$rdata['uid'] = $px_info['uid'];
|
$rdata['usertype'] = '4';
|
}else if($m_info){
|
|
if($m_info['usertype']=='1'){
|
|
$info = $this->getUserInfo(array('uid'=>$m_info['uid']),array('usertype'=>'1','field'=>'name'));
|
$rdata['name'] = $info['name'];
|
}else if($m_info['usertype']=='2'){
|
|
$info = $this->getUserInfo(array('uid'=>$m_info['uid']),array('usertype'=>'2','field'=>'name'));
|
$rdata['name'] = $info['name'];
|
}else if($m_info['usertype']=='3'){
|
|
$info = $this->getUserInfo(array('uid'=>$m_info['uid']),array('usertype'=>'3','field'=>'realname'));
|
$rdata['name'] = $info['realname'];
|
}else if($m_info['usertype']=='4'){
|
|
$info = $this->getUserInfo(array('uid'=>$m_info['uid']),array('usertype'=>'4','field'=>'name'));
|
$rdata['name'] = $info['name'];
|
}
|
|
$rdata['uid'] = $m_info['uid'];
|
$rdata['usertype'] = $m_info['usertype'];
|
}
|
|
if($rdata!=null){
|
|
$return['data'] = $rdata;
|
return $return;
|
}
|
if($this->config['sy_web_mobile']!=''){
|
|
$regnamer = @explode(';',$this->config['sy_web_mobile']);
|
if(in_array($data['moblie'],$regnamer)){
|
|
$return['errcode'] = 2;
|
}
|
}
|
$return['errcode'] = 0;
|
|
return $return;
|
}
|
|
/**
|
* 注册
|
* $data 处理的数据
|
* @param array $data
|
* @return int[]
|
*/
|
public function userRegSave($data = array())
|
{
|
|
include_once ('notice.model.php');
|
$noticeM = new notice_model($this->db, $this->def);
|
|
$return = array('errcode'=>8);
|
|
if($this->config['reg_user_stop']!=1){
|
$return['msg'] = '网站已关闭注册!';
|
$return['errcode'] = 8;
|
return $return;
|
}
|
|
if(!empty($data['uid'])){
|
$return['msg'] = '您已经登录了!';
|
$return['errcode'] = 8;
|
return $return;
|
}
|
|
$ip = fun_ip_get();
|
|
if($this->config['sy_reg_interval']>0){
|
|
$intervaltime = time() - 3600 * $this->config['sy_reg_interval'];
|
|
$regnum = $this -> getMemberNum(array('reg_ip' => $ip , 'reg_date' => array('>=', $intervaltime)));
|
|
if($regnum){
|
$return['errcode'] = 8;
|
$return['msg'] = '请勿频繁注册!';
|
|
return $return;
|
}
|
}
|
|
//关闭用户名注册
|
if($data['codeid']=='1' && $this->config['reg_user']!='1'){
|
|
$return['msg'] = '网站已关闭用户名注册!';
|
$return['errcode'] = 8;
|
return $return;
|
}
|
//关闭手机注册
|
if($data['codeid']=='2' && $this->config['reg_moblie']!='1'){
|
|
$return['msg'] = '网站已关闭手机注册!';
|
$return['errcode'] = 8;
|
return $return;
|
}
|
//关闭邮箱注册
|
if($data['codeid']=='3' && $this->config['reg_email']!='1'){
|
|
$return['msg'] = '网站已关闭邮箱注册!';
|
$return['errcode'] = 8;
|
return $return;
|
}
|
|
if ($this->config['sy_reg_type'] == 2) {
|
|
if ($data['reg_type'] == 1) {
|
|
if ($this->config['sy_resumename_num'] == 1) {
|
|
if (!$data['reg_name'] || !preg_match("/^[\x{4e00}-\x{9fa5}]{2,6}$/u", $data['reg_name'])) {
|
|
$return['msg'] = '姓名请输入2-6位汉字!';
|
$return['errcode'] = 8;
|
return $return;
|
}
|
}
|
} else if ($data['reg_type'] == 2) {
|
|
$comNum = $this->select_num(array('name' => $data['reg_name']));
|
|
if ((int)$comNum > 0) {
|
$return['msg'] = '企业名称已存在!';
|
$return['errcode'] = 8;
|
return $return;
|
}
|
}
|
}
|
|
/* 用户名注册 */
|
if ($data['codeid'] == '1') {
|
|
$data['username'] = str_replace('!', '!', $data['username']);
|
$username = $data['username'];
|
$msg = regUserNameComplex($username);//检测用户名复杂度
|
|
if ($username == '') {
|
|
$return['msg'] = '用户名不能为空!';
|
} elseif (CheckRegUser($username) == false && CheckRegEmail($username) == false) {
|
|
$return['msg'] = '用户名不得包含特殊字符!';
|
} elseif ($msg != '') {
|
|
$return['msg'] = $msg;
|
} else {
|
|
$usernameNum = $this->getMemberNum(array('username' => $username));
|
if ($usernameNum > 0) {
|
$return['msg'] = '用户名已存在,请重新输入!';
|
}
|
}
|
|
if ($return['msg']) {
|
$return['errcode'] = 8;
|
return $return;
|
}
|
}
|
|
/* 是否要输入手机号 */
|
$needMobile = false;
|
if ($data['codeid'] == 2) {
|
$needMobile = true;
|
} else if ($this->config['reg_real_name_check'] == 1) {
|
$needMobile = true;
|
}
|
if ($needMobile) {
|
if ($data['moblie'] == '') {
|
$return['msg'] = '手机号码不能为空!';
|
} elseif (!CheckMobile($data['moblie'])) {
|
$return['msg'] = '手机格式错误!';
|
} else {
|
$moblieNum = $this->getMemberNum(array('moblie' => $data['moblie']));
|
if ($moblieNum > 0) {
|
$return['msg'] = '手机已存在!';
|
}
|
}
|
if ($return['msg']) {
|
$return['errcode'] = 8;
|
return $return;
|
}
|
}
|
|
/* 是否要输入email */
|
$needEmail = false;
|
if ($data['codeid'] == 3) {
|
$needEmail = true;
|
}
|
if ($needEmail) {
|
if ($data['email'] == '') {
|
$return['msg'] = '邮箱不能为空';
|
} elseif (CheckRegEmail($data['email']) == false) {
|
$return['msg'] = '邮箱格式错误!';
|
} else {
|
$emailNum = $this->getMemberNum(array('email' => $data['email']));
|
if ($emailNum > 0) {
|
$return['msg'] = '邮箱已存在,请重新输入!';
|
}
|
}
|
if ($return['msg']) {
|
$return['errcode'] = 8;
|
return $return;
|
}
|
}
|
|
/* 是否验证短信验证码 */
|
$needMsg = false;
|
|
if ($data['codeid'] == 2 && $this->config['sy_msg_regcode'] == '1') {
|
$needMsg = true;
|
} else if ($this->config['reg_real_name_check'] == 1) {
|
$needMsg = true;
|
}
|
if ($needMsg) {
|
|
$regCertMobile = $this->select_once('company_cert', array('type' => '2', 'check' => $data['moblie'], 'orderby' => 'ctime,desc'), '`check2`,`ctime`');
|
$codeTime = $noticeM->checkTime($regCertMobile['ctime']);
|
if ($data['moblie_code'] == '') {
|
|
$return['msg'] = '短信验证码不能为空!';
|
$return['errcode'] = 8;
|
return $return;
|
} elseif (!$codeTime) {
|
|
$return['msg'] = '短信验证码验证超时,请重新点击发送验证码!';
|
$return['errcode'] = 8;
|
return $return;
|
} elseif ($regCertMobile['check2'] != $data['moblie_code']) {
|
|
$return['msg'] = '短信验证码错误!';
|
$return['errcode'] = 8;
|
return $return;
|
} else {
|
|
$adata['moblie_status'] = '1';
|
}
|
}
|
|
/* 已通过短信验证,则不需要极验证、图片验证 */
|
if ($data['wxapp'] != 1) {
|
if (!$needMsg) {
|
$result = $noticeM->jycheck($data['code'], '注册会员');
|
if (!empty($result)) {
|
$return['msg'] = $result['msg'];
|
$return['errcode'] = 8;
|
return $return;
|
}
|
}
|
}
|
|
/* 手机注册和邮箱注册 */
|
if ($data['codeid'] == '2') {
|
$data['username'] = $data['moblie'];
|
} elseif ($data['codeid'] == '3') {
|
$data['username'] = $data['email'];
|
}
|
|
$password = $data['password'];
|
|
$pwmsg = regPassWordComplex($password);//检测用户名复杂度
|
/* 密码 */
|
if ($data['password'] == '') {
|
|
$return['msg'] = '密码不能为空!';
|
$return['errcode'] = 8;
|
return $return;
|
} elseif (mb_strlen($data['password']) < 6 || mb_strlen($data['password']) > 20) {
|
|
$return['msg'] = '密码长度应在6-20位!';
|
$return['errcode'] = 8;
|
return $return;
|
} elseif ($pwmsg != '') {
|
|
$return['msg'] = $pwmsg;
|
$return['errcode'] = 8;
|
return $return;
|
}
|
|
if($data['username']){
|
$nid = $this->getMemberNum(array('username' => $data['username']));
|
|
if ($nid) {
|
$return['msg'] = '账户名已存在!';
|
$return['errcode'] = 8;
|
return $return;
|
}
|
|
if ($this->config['sy_uc_type'] == "uc_center") {
|
include APP_PATH . 'data/api/uc/config.inc.php';
|
include APP_PATH . '/api/uc/include/db_mysql.class.php';
|
include APP_PATH . '/api/uc/uc_client/client.php';
|
$ucusername = $data['username'];
|
//没有邮箱的情况下使用默认邮箱
|
if (!$_POST['email']) {
|
$ucemail = $ucinfo['UC_EMAIL'];
|
} else {
|
$ucemail = $_POST['email'];
|
}
|
$uid = uc_user_register($ucusername, $_POST['password'], $ucemail);
|
if ($uid <= 0) {
|
switch ($uid) {
|
case "-1":
|
$return['msg'] = '用户名不合法!';
|
break;
|
case "-2":
|
$return['msg'] = '包含不允许注册的词语!';
|
break;
|
case "-3":
|
$return['msg'] = '用户名已经存在!';
|
break;
|
case "-4":
|
$return['msg'] = 'Email 格式有误!';
|
break;
|
case "-5":
|
$return['msg'] = 'Email 不允许注册!';
|
break;
|
case "-6":
|
$return['msg'] = '该 Email 已经被注册!';
|
break;
|
}
|
$return['errcode'] = 8;
|
return $return;
|
} else {
|
list($uid, $username, $password, $email, $salt) = uc_user_login($ucusername, $_POST['password']);
|
$pass = md5(md5($_POST['password']) . $salt);
|
}
|
} elseif ($this->config['sy_pw_type'] == 'pw_center') {
|
include(APP_PATH . '/api/pw_api/pw_client_class_phpapp.php');
|
$password = $data['password'];
|
$email = $data['email'];
|
$pw = new PwClientAPI($data['username'], $password, $email);
|
$pwuid = $pw->register();
|
$salt = substr(uniqid(rand()), -6);
|
$pass = passCheck($password, $salt);
|
} else {
|
$salt = substr(uniqid(rand()), -6);
|
$pass = passCheck($data['password'], $salt);
|
}
|
|
if (isset($_COOKIE['wxid'])) {
|
$source = '9';
|
} elseif (isset($_SESSION['wx']['openid'])) {
|
$source = '4';
|
} elseif (isset($_SESSION['qq']['openid'])) {
|
$source = '8';
|
} elseif (isset($_SESSION['sina']['openid'])) {
|
$source = '10';
|
} elseif (isset($data['source'])) {
|
$source = $data['source'];
|
} else {
|
$source = 1;
|
}
|
|
/* 生成uid */
|
$adata['username'] = $data['username'];
|
$adata['password'] = $pass;
|
$adata['email'] = $data['email'];
|
$adata['moblie'] = $data['moblie'];
|
$adata['did'] = !empty($data['did']) ? $data['did'] : $this->config['did'];
|
$adata['status'] = 1;
|
$adata['salt'] = $salt;
|
$adata['source'] = $source;
|
$adata['reg_date'] = time();
|
$adata['reg_ip'] = $ip;
|
$adata['qqid'] = $_SESSION['qq']['openid'];
|
$adata['sinaid'] = $_SESSION['sina']['openid'];
|
$adata['wxid'] = $_SESSION['wx']['openid'];
|
|
// 小程序邀请注册
|
$adata['regcode'] = isset($data['fromUser']) ? $data['fromUser'] : (int)$_COOKIE['regcode'];
|
|
if ($this->config['sy_reg_type'] == 2) {
|
|
$adata['usertype'] = $data['reg_type'];
|
|
if (isset($data['wxapp'])) {
|
if (isset($data['bdopenid'])) {
|
$adata['bdopenid'] = $data['bdopenid'];
|
}
|
if (isset($data['app_wxid'])) {
|
$adata['app_wxid'] = $data['app_wxid'];
|
}
|
if (isset($data['wxopenid'])) {
|
$adata['wxopenid'] = $data['wxopenid'];
|
}
|
if (isset($data['unionid'])) {
|
$adata['unionid'] = $data['unionid'];
|
}
|
if (isset($data['qqid'])) {
|
$adata['qqid'] = $data['qqid'];
|
}
|
if (isset($data['qqunionid'])) {
|
$adata['qqunionid'] = $data['qqunionid'];
|
}
|
}
|
|
if (isset($data['reg_qq'])){
|
|
$adata['qqid'] = $data['reg_qq']['openid'];
|
$adata['qqunionid'] = $data['reg_qq']['unionid'];
|
}elseif (isset($data['reg_weixin'])){
|
|
$adata['wxid'] = $data['reg_weixin']['openid']; // 公众号openid
|
|
$adata['unionid'] = $data['reg_weixin']['unionid'];
|
}elseif (isset($data['reg_sina'])){
|
|
$adata['sinaid'] = $data['reg_sina']['openid'];
|
}
|
} else {
|
|
$adata['usertype'] = 0;
|
}
|
|
$adata['maguid'] = $_SESSION['mag']['user_id'];
|
$adata['qfyuid'] = $_POST['qfyuid'];
|
|
//马甲app内注册的
|
if(isset($_SESSION['mag'])){
|
unset($_SESSION['mag']);
|
}
|
|
if (!empty($data['clientid'])){
|
$adata['clientid'] = $data['clientid'];
|
$adata['deviceToken'] = $data['deviceToken'];
|
}
|
$userid = $this->insert_into('member',$adata);
|
if (!$userid) {
|
|
$uInfo = $this->getInfo(array('username' => $data['username']), array('field' => 'uid'));
|
$userid = $uInfo['uid'];
|
}
|
|
if($userid){
|
|
if($this->config['sy_pw_type']=='pw_center'){
|
$this->upInfo(array('pwuid'=>$pwuid),array('uid'=>$userid));
|
}
|
|
//邀请注册获得积分
|
if(!empty($_COOKIE['regcode'])){
|
$regMember = $this->select_once('member',array('uid'=>(int)$_COOKIE['regcode']),"`usertype`");
|
if(!empty($regMember)){
|
include_once ('integral.model.php');
|
$IntegralM = new integral_model($this->db, $this->def);
|
$IntegralM -> invtalCheck((int)$_COOKIE['regcode'],$regMember['usertype'], 'integral_invite_reg', '邀请注册', 23);
|
}
|
}
|
|
//处理注册赠送优惠券
|
if($this->config['reg_coupon']){
|
$coupon = $this->select_once('coupon',array('id'=>$this->config['reg_coupon']));
|
$cdata['uid'] = $userid;
|
$cdata['number'] = time();
|
$cdata['ctime'] = time();
|
$cdata['coupon_id'] = $coupon['id'];
|
$cdata['coupon_name'] = $coupon['name'];
|
$cdata['validity'] = time()+$coupon['time']*86400;
|
$cdata['coupon_amount'] = $coupon['amount'];
|
$cdata['coupon_scope'] = $coupon['scope'];
|
$this->insert_into('coupon_list',$cdata);
|
}
|
|
/* 发送通知短信、邮件 */
|
if($data['email']){
|
$noticeM->sendEmailType(array('name'=>$data['username'],'username'=>$data['username'],'password'=>$data['password'],'email'=>$data['email'],'type'=>'reg','uid'=>$userid));
|
}
|
if(checkMsgOpen($this -> config)){
|
|
$noticeM->sendSMSType(array('name'=>$data['username'],'username'=>$data['username'],'password'=>$data['password'],'moblie'=>$data['moblie'],'type'=>'reg','uid'=>$userid,'port' => $data['port']));
|
}
|
|
$this->upInfo(array('uid'=>$userid),array('login_date'=>time(),'login_ip'=>$ip));
|
|
$return['msg'] = '注册成功';
|
$return['errcode'] = 1;
|
|
// app 需要token
|
if (!empty($data['wxapp'])) {
|
|
if ($this->config['sy_reg_type'] == 2) {
|
|
$token = md5($data['username'] . $pass . $salt . $adata['usertype']);
|
$return['user'] = array('uid' => $userid, 'usertype' => $adata['usertype'], 'token' => $token);
|
$this->addIdentInfo($userid, array('reg_name' => $data['reg_name'], 'reg_link' => $data['reg_link'], 'reg_type' => $data['reg_type'], 'source' => $data['source']));
|
}else{
|
|
$token = md5($data['username'] . $pass . $salt . '0');
|
$return['user'] = array('uid' => $userid, 'usertype' => 0, 'token' => $token);
|
}
|
if (!empty($data['clientid'])) {
|
|
//清除其他账号clientid
|
$this->clearPushId($data['clientid'], $userid);
|
}
|
} else {
|
|
require_once('cookie.model.php');
|
$cookie = new cookie_model($this->db, $this->def);
|
$cookie->unset_cookie();
|
|
if ($this->config['sy_reg_type'] == 2) {
|
|
$cookie->add_cookie($userid, $data['username'], $salt, $data['email'], $pass, $data['reg_type'], $this->config['sy_logintime'], $this->config['did']);
|
$newResult = $this->addIdentInfo($userid, array('reg_name' => $data['reg_name'], 'reg_link' => $data['reg_link'], 'reg_type' => $data['reg_type'], 'source' => $data['source']));
|
|
$return['url'] = $newResult['url'];
|
$return['reg_type'] = $this->config['sy_reg_type'];
|
}else {
|
|
$cookie->add_cookie($userid, $data['username'], $salt, $data['email'], $pass, '', $this->config['sy_logintime'], $this->config['did']);
|
}
|
}
|
|
return $return;
|
}else{
|
|
$this->addErrorLog('', 1, $return['msg']);
|
|
$return['msg'] = '注册失败';
|
$return['errcode'] = 8;
|
return $return;
|
}
|
|
}else{
|
$return['msg'] = '用户名不能为空!';
|
$return['errcode'] = 8;
|
return $return;
|
}
|
}
|
|
/**
|
* 选择身份直接注册账号,添加基本信息
|
* @param $uid
|
* @param array $data
|
* @return mixed
|
*/
|
private function addIdentInfo($uid, $data = array())
|
{
|
|
$usertype = $data['reg_type'];
|
$user = $this->getInfo(array('uid' => intval($uid)), array('field' => '`uid`,`username`,`password`,`salt`,`email`,`moblie`,`moblie_status`,`email_status`,`did`,`login_date`'));
|
|
//根据激活类型 生成对应信息表附表信息
|
if ($usertype == '1') {
|
|
$table = 'member_statis';
|
$table2 = 'resume';
|
|
$data1 = array('uid' => $user['uid']);
|
|
$crm_uid = $this->getCrmUid(array('type' => '1'));
|
|
$data2 = array(
|
|
'uid' => $user['uid'],
|
'name' => $data['reg_name'],
|
'email' => $user['email'],
|
'email_status' => $user['email_status'],
|
'telphone' => $user['moblie'],
|
'r_status' => $this->config['user_state'],
|
'moblie_status' => $user['moblie_status'],
|
'crm_uid' => $crm_uid,
|
'crm_time' => $crm_uid ? time() : '',
|
'did' => !empty($user['did']) ? $user['did'] : $this->config['did'],
|
'login_date' => time()
|
);
|
} elseif ($usertype == '2') {
|
|
$table = 'company_statis';
|
$table2 = 'company';
|
|
require_once('rating.model.php');
|
$ratingM = new rating_model($this->db, $this->def);
|
|
$data1 = $ratingM->fetchRatingInfo(array('uid' => $user['uid']));
|
$data1['uid'] = $user['uid'];
|
$data1['did'] = $this->config['did'];
|
$data2['uid'] = $user['uid'];
|
$data2['name'] = $data['reg_name'];
|
$data2['linkman'] = $data['reg_link'];
|
$data2['linkmail'] = $user['email'];
|
$data2['linktel'] = $user['moblie'];
|
$data2['rating'] = $data1['rating'];
|
$data2['rating_name'] = $data1['rating_name'];
|
$data2['vipstime'] = $data1['vip_stime'];
|
$data2['vipetime'] = $data1['vip_etime'];
|
$data2['did'] = !empty($user['did']) ? $user['did'] : $this->config['did'];
|
$data2['email_status'] = $user['email_status'];
|
$data2['moblie_status'] = $user['moblie_status'];
|
$data2['r_status'] = $this->config['com_status'];
|
$data2['login_date'] = time();
|
if ($this->config['sy_crm_duty'] == 1) {
|
$crm_uid = $this->getCrmUid(array('type' => '2'));
|
}
|
|
if ($crm_uid) {
|
$data2['crm_uid'] = $crm_uid;
|
$data2['crm_time'] = time();
|
}
|
} elseif ($usertype == '3') {
|
|
$table = 'lt_statis';
|
$table2 = 'lt_info';
|
|
require_once('rating.model.php');
|
$ratingM = new rating_model($this->db, $this->def);
|
|
$data1 = $ratingM->ltratingInfo(0, $uid);
|
$data1['uid'] = $user['uid'];
|
$data2['uid'] = $user['uid'];
|
$data2['name'] = $data['reg_name'];
|
$data2['email'] = $user['email'];
|
$data2['moblie'] = $user['moblie'];
|
$data2['did'] = !empty($user['did']) ? $user['did'] : $this->config['did'];
|
$data2['email_status'] = $user['email_status'];
|
$data2['moblie_status'] = $user['moblie_status'];
|
$data2['r_status'] = $this->config['lt_status'];
|
} elseif ($usertype == '4') {
|
|
$table = 'px_train_statis';
|
$table2 = 'px_train';
|
$data1['uid'] = $user['uid'];
|
$data2['uid'] = $user['uid'];
|
$data2['name'] = $data['name'];
|
$data2['linkman'] = $data['reg_link'];
|
$data2['linkmail'] = $user['email'];
|
$data2['linktel'] = $user['moblie'];
|
$data2['email_status'] = $user['email_status'];
|
$data2['moblie_status'] = $user['moblie_status'];
|
$data2['did'] = !empty($user['did']) ? $user['did'] : $this->config['did'];
|
$data2['r_status'] = $this->config['px_status'];
|
}
|
|
if ($table) {
|
|
require_once('log.model.php');
|
$LogM = new log_model($this->db, $this->def);
|
//容错机制 判断附表数据是否存在 不存在才作新增操作
|
$existTable = $this->select_num($table, array('uid' => $user['uid']));
|
|
if ($existTable < 1) {
|
$this->insert_into($table, $data1);
|
//会员注册插入会员日志
|
$LogM->addMemberLog($user['uid'], $usertype, '用户:' . $user['username'] . '注册成功');
|
|
//判断是否记录已发送
|
require_once 'integral.model.php';
|
$IntegralM = new integral_model($this->db, $this->def);
|
$integralwhere['com_id'] = $user['uid'];
|
$integralwhere['pay_remark'] = '注册赠送';
|
$Interpay = $IntegralM->getInfo($integralwhere);
|
|
if (empty($Interpay) && $usertype != 5) {
|
|
if ($this->config['integral_reg'] > 0) {
|
$IntegralM->company_invtal($user['uid'], $usertype, $this->config['integral_reg'], true, '注册赠送', true, 2, 'integral', 23);
|
}
|
|
if ($this->config['integral_login']) {
|
$IntegralM->invtalCheck($user['uid'], $usertype, 'integral_login', '会员登录', 22);
|
}
|
|
if ($this->config['integral_mobliecert'] && $user['moblie_status'] == 1) {
|
$IntegralM->invtalCheck($user['uid'], $usertype, 'integral_mobliecert', '手机绑定');
|
}
|
}
|
}
|
//会员日志,记录手动登录
|
$LogM->addMemberLog($user['uid'], $usertype, '用户选择身份成功');
|
// 登录日志
|
$logtime = date('Ymd', $user['login_date']);
|
$nowtime = date('Ymd', time());
|
if ($logtime != $nowtime) {
|
$logdata['uid'] = $user['uid'];
|
$logdata['usertype'] = $usertype;
|
$logdata['did'] = $user['did'];
|
$LogM->addLoginlog($logdata, $user);
|
}
|
}
|
$existTable2 = $this->select_num($table2, array('uid' => $user['uid']));
|
if ($existTable2 < 1) {
|
$this->insert_into($table2, $data2);
|
if ($usertype == '2' && $data2['r_status'] == 0) {
|
require_once 'admin.model.php';
|
$adminM = new admin_model($this->db, $this->def);
|
$adminM->sendAdminMsg(array('first' => '有新的企业会员《' . $user['username'] . '》需要审核,账号ID(' . $user['uid'] . ')', 'type' => 9));
|
}
|
}
|
|
if ($usertype == 1) {
|
|
if ($data['source'] == 1) {
|
|
$return['url'] = Url('member', array('c' => 'expect', 'act' => 'add'));
|
} elseif ($data['source'] == 2) {
|
|
$return['url'] = Url('wap') . 'member/index.php?c=addresume';
|
}
|
|
} else {
|
|
if ($data['source'] == 1) {
|
|
$return['url'] = Url('member', array('c' => 'info'));
|
} else {
|
|
$return['url'] = Url('wap') . 'member/index.php?c=info';
|
}
|
}
|
|
return $return;
|
}
|
|
|
function insertMember($data=array()){
|
|
$nid = $this->insert_into('member', $data);
|
return $nid;
|
}
|
|
/**
|
* @desc 注册成功,选择身份
|
* @param array $data
|
* @return array $return
|
*/
|
function upUserType($data = array())
|
{
|
$uid = intval($data['uid']);
|
|
$usertype = intval($data['usertype']);
|
|
if (in_array($usertype, array('1', '2', '3', '4'))) {
|
|
$user = $this->getInfo(array('uid' => $uid), array('field' => '`uid`,`username`,`email_status`,`moblie_status`,`password`,`salt`,`email`,`moblie`,`did`'));
|
|
$return = array();
|
|
if ($user['uid']) {
|
// 增加来源
|
if (isset($data['provider'])){
|
$user['provider'] = $data['provider'];
|
}
|
if (isset($data['iswap'])) {
|
$user['source'] = 2;
|
}
|
$this -> activUser($user['uid'], $usertype, $user);
|
|
if (!isset($data['wxapp'])) {
|
|
$cookie = new cookie_model($this->db, $this->def);
|
$cookie->setcookie('usertype', intval($usertype), time() + 86400);
|
}
|
|
if (isset($data['iswap'])) {
|
|
if ($usertype == 1) {
|
|
$return['url'] = Url('wap').'member/index.php?c=addresume';
|
} else {
|
|
$return['url'] = Url('wap').'member/index.php?c=info';
|
}
|
|
} else {
|
|
if ($usertype == 1) {
|
|
$return['url'] = Url('member', array('c' => 'expect', 'act' => 'add'));
|
} else {
|
|
$return['url'] = Url('member', array('c' => 'info'));
|
}
|
}
|
|
$return['errcode'] = 1;
|
|
// uni-app 需要token
|
if (isset($data['wxapp'])) {
|
|
$token = md5($user['username'].$user['password'].$user['salt'].$usertype);
|
|
$return['user'] = array('uid' => $uid, 'usertype' => $usertype, 'token' => $token);
|
}
|
} else {
|
|
$return['msg'] = '请先注册';
|
$return['errcode'] = 9;
|
}
|
} else {
|
|
$return['msg'] = '参数错误,请正确选择!';
|
$return['errcode'] = 9;
|
}
|
|
return $return;
|
}
|
|
/**
|
* 选择身份
|
* @param $uid
|
* @param $usertype
|
* @param array $user
|
*/
|
public function activUser($uid, $usertype, $user = array())
|
{
|
|
$this->upInfo(array('uid' => intval($uid)), array('usertype' => $usertype));
|
|
if (empty($user)) {
|
$user = $this->getInfo(array('uid' => intval($uid)), array('field' => '`uid`,`username`,`password`,`salt`,`email`,`moblie`,`moblie_status`,`email_status`,`did`,`login_date`'));
|
}
|
|
//根据激活类型 生成对应信息表附表信息
|
if ($usertype == '1') {
|
|
$table = 'member_statis';
|
$table2 = 'resume';
|
|
$data1 = array('uid' => $user['uid']);
|
|
$crm_uid= $this->getCrmUid(array('type' => '1'));
|
|
$data2 = array(
|
|
'uid' => $user['uid'],
|
'email' => $user['email'],
|
'email_status' => $user['email_status'],
|
'telphone' => $user['moblie'],
|
'r_status' => $this->config['user_state'],
|
'moblie_status' => $user['moblie_status'],
|
'crm_uid' => $crm_uid,
|
'crm_time' => $crm_uid ? time() : '',
|
'did' => !empty($user['did']) ? $user['did'] : $this->config['did'],
|
'login_date' => time()
|
|
);
|
|
} elseif ($usertype == '2') {
|
|
$table = 'company_statis';
|
$table2 = 'company';
|
|
require_once('rating.model.php');
|
$ratingM = new rating_model($this->db, $this->def);
|
|
$data1 = $ratingM->fetchRatingInfo(array('uid' => $user['uid']));
|
$data1['uid'] = $user['uid'];
|
$data1['did'] = $this->config['did'];
|
$data2['uid'] = $user['uid'];
|
$data2['linkmail'] = $user['email'];
|
$data2['linktel'] = $user['moblie'];
|
$data2['rating'] = $data1['rating'];
|
$data2['rating_name'] = $data1['rating_name'];
|
$data2['vipstime'] = $data1['vip_stime'];
|
$data2['vipetime'] = $data1['vip_etime'];
|
$data2['did'] = !empty($user['did']) ? $user['did'] : $this->config['did'];
|
$data2['email_status'] = $user['email_status'];
|
$data2['moblie_status'] = $user['moblie_status'];
|
$data2['r_status'] = $this->config['com_status'];
|
$data2['login_date'] = time();
|
if ($this->config['sy_crm_duty'] == 1) {
|
$crm_uid = $this->getCrmUid(array('type' => '2'));
|
}
|
|
|
if ($crm_uid) {
|
$data2['crm_uid'] = $crm_uid;
|
$data2['crm_time'] = time();
|
}
|
} elseif ($usertype == '3') {
|
$table = 'lt_statis';
|
$table2 = 'lt_info';
|
|
require_once('rating.model.php');
|
$ratingM = new rating_model($this->db, $this->def);
|
|
$data1 = $ratingM->ltratingInfo(0, $uid);
|
$data1['uid'] = $user['uid'];
|
$data2['uid'] = $user['uid'];
|
$data2['email'] = $user['email'];
|
$data2['moblie'] = $user['moblie'];
|
$data2['did'] = !empty($user['did']) ? $user['did'] : $this->config['did'];
|
$data2['email_status'] = $user['email_status'];
|
$data2['moblie_status'] = $user['moblie_status'];
|
$data2['r_status'] = $this->config['lt_status'];
|
} elseif ($usertype == '4') {
|
$table = 'px_train_statis';
|
$table2 = 'px_train';
|
$data1['uid'] = $user['uid'];
|
$data2['uid'] = $user['uid'];
|
$data2['linkmail'] = $user['email'];
|
$data2['linktel'] = $user['moblie'];
|
$data2['email_status'] = $user['email_status'];
|
$data2['moblie_status'] = $user['moblie_status'];
|
$data2['did'] = !empty($user['did']) ? $user['did'] : $this->config['did'];
|
$data2['r_status'] = $this->config['px_status'];
|
}
|
|
if ($table) {
|
|
require_once('log.model.php');
|
$LogM = new log_model($this->db, $this->def);
|
//容错机制 判断附表数据是否存在 不存在才作新增操作
|
$existTable = $this->select_num($table, array('uid' => $user['uid']));
|
|
if ($existTable < 1) {
|
$this->insert_into($table, $data1);
|
//会员注册插入会员日志
|
$LogM->addMemberLog($user['uid'], $usertype, '用户:' . $user['username'] . '注册成功');
|
|
//判断是否记录已发送
|
require_once 'integral.model.php';
|
$IntegralM = new integral_model($this->db, $this->def);
|
$integralwhere['com_id'] = $user['uid'];
|
$integralwhere['pay_remark'] = '注册赠送';
|
$Interpay = $IntegralM->getInfo($integralwhere);
|
|
if (empty($Interpay) && $usertype != 5) {
|
|
if ($this->config['integral_reg'] > 0) {
|
$IntegralM->company_invtal($user['uid'], $usertype, $this->config['integral_reg'], true, '注册赠送', true, 2, 'integral', 23);
|
}
|
|
if ($this->config['integral_login']) {
|
$IntegralM->invtalCheck($user['uid'], $usertype, 'integral_login', '会员登录', 22);
|
}
|
|
if ($this->config['integral_mobliecert'] && $user['moblie_status'] == 1) {
|
$IntegralM->invtalCheck($user['uid'], $usertype, 'integral_mobliecert', '手机绑定');
|
}
|
}
|
}
|
//会员日志,记录手动登录
|
$LogM->addMemberLog($user['uid'], $usertype, '用户选择身份成功');
|
// 登录日志
|
$logtime = date('Ymd', $user['login_date']);
|
$nowtime = date('Ymd', time());
|
if ($logtime != $nowtime) {
|
$logdata['uid'] = $user['uid'];
|
$logdata['usertype'] = $usertype;
|
$logdata['did'] = $user['did'];
|
$LogM->addLoginlog($logdata, $user);
|
}
|
}
|
$existTable2 = $this->select_num($table2, array('uid' => $user['uid']));
|
if ($existTable2 < 1) {
|
$this->insert_into($table2, $data2);
|
if ($usertype == '2' && $data2['r_status'] == 0) {
|
require_once 'admin.model.php';
|
$adminM = new admin_model($this->db, $this->def);
|
$adminM->sendAdminMsg(array('first' => '有新的企业会员《' . $user['username'] . '》需要审核,账号ID(' . $user['uid'] . ')', 'type' => 9));
|
}
|
}
|
}
|
|
/**
|
* @desc 企业 / 个人注册,查询CRM信息绑定
|
* @param array $data
|
* @return mixed
|
*/
|
public function getCrmUid($data = array()) {
|
|
if ($data['city'] == 1) {
|
|
$crmWhere = array();
|
$crmWhere['is_crm'] = '1';
|
$crmWhere['status'] = '1';
|
$crmWhere['PHPYUNBTWSTART_A'] = '';
|
$crmWhere['crm_city'][] = array('findin', $data['provinceid'], 'OR');
|
$crmWhere['crm_city'][] = array('findin', $data['cityid'], 'OR');
|
if ($data['three_cityid']) {
|
$crmWhere['crm_city'][] = array('findin', $data['three_cityid'], 'OR');
|
}
|
$crmWhere['PHPYUNBTWEND_A'] = '';
|
$crmWhere['orderby'] = 'uid';
|
|
|
$crms = $this -> select_all('admin_user', $crmWhere, '`uid`');
|
|
} else {
|
|
$day = date('w') ==0 ? 7 : date('w');
|
$crms = $this -> select_all('admin_user', array('is_crm' => 1, 'status' => 1, 'crm_duty' => array('findin', $day), 'orderby' => 'uid'), '`uid`');
|
}
|
|
|
if (is_array($crms)) {
|
|
foreach ($crms as $k => $v){
|
|
$CrmUid[$v['uid']] = $k + 1;
|
$CrmK[$k] = $v['uid'];
|
}
|
|
if ($data['type'] == '1') {
|
|
$endCrm = $this->select_once('resume', array('crm_uid' => array('>', 0), 'orderby' => 'uid, desc'), '`crm_uid`');
|
}elseif ($data['type'] == '2'){
|
|
$sql = "SELECT `crm_uid` FROM ".DEF_DATA."company LEFT JOIN ".DEF_DATA."member ON ".DEF_DATA."company.uid = ".DEF_DATA."member.uid WHERE ".DEF_DATA."member.source <> 16 AND ".DEF_DATA."company.crm_uid > 0 ORDER BY ".DEF_DATA."company.uid DESC LIMIT 1;";
|
|
$endCrm = $this->DB_query_all($sql, 'one');
|
}
|
|
if (!$CrmUid[$endCrm['crm_uid']]) {
|
|
$CrmUid[$endCrm['crm_uid']] = 0;
|
}
|
if ($CrmUid[$endCrm['crm_uid']] >= count($crms)){
|
|
$crm_uid = $CrmK[0];
|
}else{
|
|
$crm_uid = $CrmK[$CrmUid[$endCrm['crm_uid']]];
|
}
|
}
|
|
return $crm_uid;
|
}
|
|
//快捷登录信息绑定
|
public function bindUser($username,$password,$bindinfo){
|
|
if($username && $password){
|
|
$userinfo = $this->select_once('member',array('username'=>$username));
|
|
if(!$userinfo && CheckMobile($username)){//手机号登录
|
|
$user = $this->select_once('member',array('moblie'=>$username),'username,usertype,password,uid,usertype,salt,status,did,login_date');
|
|
$binding = $this->getUserInfo(array('uid'=>$user['uid'],'moblie_status'=>1),array('usertype'=>$user['usertype'],'field'=>'uid'));
|
|
if(!empty($binding)){
|
$userinfo = $user;
|
}
|
}
|
if(!$userinfo&&CheckRegEmail($username)){//邮箱登录
|
|
$user = $this->select_once('member',array('email'=>$username),'username,usertype,password,uid,usertype,salt,status,did,login_date');
|
|
$binding = $this->getUserInfo(array('uid'=>$user['uid'],'email_status'=>1),array('usertype'=>$user['usertype'],'field'=>'uid'));
|
|
if(!empty($binding)){
|
$userinfo = $user;
|
}
|
}
|
if(!empty($userinfo)){
|
|
$res = passCheck($password,$userinfo['salt']) == $userinfo['password'] ? true : false;
|
if($res){
|
if($userinfo['status']=='1'){
|
//开始绑定操作
|
if($bindinfo['qqid']){
|
$sqlBind['qqid'] = $bindinfo['qqid'];
|
$sqlBind['qqunionid'] = $bindinfo['qqunionid'];
|
}
|
if($bindinfo['sinaid']){
|
$sqlBind['sinaid'] = $bindinfo['sinaid'];
|
}
|
if($bindinfo['wxid']){
|
$sqlBind['wxid'] = $bindinfo['wxid'];
|
$sqlBind['unionid'] = $bindinfo['wxunionid'];
|
}
|
if($sqlBind){
|
$this->update_once('member',$sqlBind,array('uid'=>$userinfo['uid']));
|
$error['info'] = $userinfo;
|
$error['error'] = '1';
|
}else{
|
$error['msg'] = '绑定失败!';
|
}
|
}else{
|
$error['msg'] = '该账户正在审核中,请稍后再绑定';
|
}
|
}else{
|
$error['msg'] = '密码错误,请重试!';
|
}
|
}else{
|
$error['msg'] = '请输入正确的账户名!';
|
}
|
}else{
|
$error['msg'] = '请输入需要绑定的账户、密码!';
|
}
|
return $error;
|
}
|
|
function upMemberInfo($uData=array(),$setData=array()){
|
if (! empty($setData)) {
|
|
$result = $this -> addMemberCheck($setData, $uData['uid'], $uData['usertype']);
|
|
if ($result['msg']) {
|
|
$result['errcode'] = 8;
|
|
$result['url'] = $_SERVER['HTTP_REFERER'];
|
|
return $result;
|
}
|
if (!empty($setData['did'])){
|
$result['did'] = $setData['did'];
|
}
|
$result['reg_ip'] = $setData['reg_ip'];
|
|
if($setData['utype'] == 'admin'){
|
|
$result['moblie'] = $result['moblie'] ? $result['moblie'] : $setData['moblie'];
|
$result['email'] = $result['email'] ? $result['email'] : $setData['email'];
|
}
|
$nid = $this->upInfo(array('uid' => $uData['uid']), $result);
|
|
if ($nid) {
|
|
|
if ($setData['utype'] == 'admin') {
|
|
if ($result['moblie']) {
|
|
$this -> update_once('resume', array('moblie_status'=>'0', 'telphone'=>''), array('telphone'=>$result['moblie'], 'uid'=>array('<>',$uData['uid'])));
|
|
$this -> update_once('company', array('moblie_status'=>'0', 'linktel'=>''), array('linktel'=>$result['moblie'], 'uid'=>array('<>',$uData['uid'])));
|
$this -> update_once('lt_info', array('moblie_status'=>'0', 'moblie'=>''), array('moblie'=>$result['moblie'], 'uid'=>array('<>',$uData['uid'])));
|
$this -> update_once('px_train', array('moblie_status'=>'0', 'linktel'=>''), array('linktel'=>$result['moblie'], 'uid'=>array('<>',$uData['uid'])));
|
}
|
|
if ($result['email']) {
|
|
$this -> update_once('resume',array('email_status'=>'0', 'email'=>''), array('email'=>$result['email'],'uid' =>array('<>',$uData['uid'])));
|
$this -> update_once('company',array('email_status'=>'0', 'linkmail'=>''), array('linkmail'=>$result['email'],'uid' =>array('<>',$uData['uid'])));
|
$this -> update_once('lt_info',array('email_status'=>'0', 'email'=>''), array('email'=>$result['email'],'uid' =>array('<>',$uData['uid'])));
|
$this -> update_once('px_train',array('email_status'=>'0', 'linkmail'=>''),array('linkmail'=>$result['email'],'uid' =>array('<>',$uData['uid'])));
|
}
|
|
|
$this -> update_once('resume', array('telphone' => $result['moblie'], 'email' => $result['email']), array('uid' => $uData['uid']));
|
|
$this -> update_once('company', array('linktel' => $result['moblie'], 'linkmail' => $result['email']), array('uid' => $uData['uid']));
|
|
$this -> update_once('lt_info', array('moblie' => $result['moblie'], 'email' => $result['email']), array('uid' => $uData['uid']));
|
|
$this -> update_once('px_train', array('linktel' => $result['moblie'], 'linkmail' => $result['email']), array('uid' => $uData['uid']));
|
}
|
}
|
|
$result['msg'] = $nid ? '修改成功!' : '修改失败!';
|
|
$result['errcode'] = $nid ? 9 : 8;
|
|
$lasturl = str_replace('&', '&', $uData['lasturl']);
|
|
$result['url'] = $lasturl;
|
|
return $result;
|
}
|
}
|
|
function delMember($del){
|
|
if (!empty($del)) {
|
|
$return = array();
|
|
if (is_array($del)) {
|
|
$delid = pylode(',', $del);
|
|
$return['layertype'] = 1;
|
} else {
|
|
$return['layertype'] = 0;
|
$delid = $del;
|
}
|
|
$resume = $this->select_all('resume', array('uid' => array('in', $delid)), '`uid`');
|
if (is_array($resume) && $resume) {
|
foreach ($resume as $v) {
|
if ($v['uid']) {
|
$rids[] = $v['uid'];
|
}
|
}
|
}
|
|
$comacc = $this->select_all('company_account', array('uid' => array('in', $delid)), '`uid`');
|
if (is_array($comacc) && $comacc) {
|
foreach ($comacc as $v) {
|
if ($v['uid']) {
|
$comaccids[] = $v['uid'];
|
}
|
}
|
}
|
|
$company = $this->select_all('company', array('uid' => array('in', $delid)), '`uid`');
|
if (is_array($company) && $company) {
|
foreach ($company as $v) {
|
if ($v['uid']) {
|
$comids[] = $v['uid'];
|
}
|
}
|
}
|
|
$lt = $this->select_all('lt_info', array('uid' => array('in', $delid)), '`uid`');
|
if (is_array($lt) && $lt) {
|
foreach ($lt as $v) {
|
$ltids[] = $v['uid'];
|
}
|
}
|
|
$px = $this->select_all('px_train', array('uid' => array('in', $delid)), '`uid`');
|
if (is_array($px) && $px) {
|
foreach ($px as $v) {
|
if ($v['uid']) {
|
$pxids[] = $v['uid'];
|
}
|
}
|
}
|
|
$gq = $this->select_all('gq_info', array('uid' => array('in', $delid)), '`uid`');
|
if (is_array($gq) && $gq) {
|
foreach ($gq as $v) {
|
if ($v['uid']) {
|
$gqids[] = $v['uid'];
|
}
|
}
|
}
|
|
$result = $this->delete_all('member', array('uid' => array('in', $delid)),'');
|
|
if($result){
|
if (is_array($rids) && !empty($rids)) {
|
$result = $this->delUser(pylode(',', $rids));
|
}
|
if (is_array($comids) && !empty($comids)) {
|
$result = $this->delCom(pylode(',', $comids));
|
}
|
if (is_array($ltids) && !empty($ltids)) {
|
$result = $this->delLt(pylode(',', $ltids));
|
}
|
if (is_array($pxids) && !empty($pxids)) {
|
$result = $this->delTrain(pylode(',', $pxids));
|
}
|
if (is_array($gqids) && !empty($gqids)) {
|
$result = $this->delgq(pylode(',', $gqids));
|
}
|
if (is_array($comaccids) && !empty($comaccids)) {
|
$result = $this->delete_all('company_account', array('uid' => array('in', pylode(',', $comaccids))),'');
|
}
|
}
|
$return['errcode'] = $result ? 9 : 8;
|
$return['msg'] = $result ? '会员删除成功' : '会员删除失败';
|
|
} else {
|
|
$return['msg'] = '请选择您要删除的会员';
|
$return['errcode'] = '8';
|
}
|
return $return;
|
}
|
/**
|
* 小程序和app账号绑定(微信、QQ、新浪微博)
|
*/
|
public function loginBind($data)
|
{
|
if(!empty($data)){
|
|
if (empty($data['openid'])){
|
$return['error'] = 2;
|
$return['msg'] = '参数异常,绑定失败';
|
return $return;
|
}
|
$uni = 'wxapp';
|
$openid = $data['openid'];
|
$field = '`uid`,`username`,`password`,`salt`,`usertype`';
|
|
if ($data['type'] == 'weixin'){
|
|
if ($data['provider'] == 'app'){
|
// app内
|
$field .= ',`app_wxid`,`unionid`';
|
$up = array('app_wxid'=>$openid);
|
$uni = 'APP/微信';
|
}else{
|
// 微信小程序内
|
$field .= ',`wxopenid`,`unionid`';
|
$up = array('wxopenid'=>$openid);
|
$uni = '微信小程序';
|
}
|
if (!empty($data['unionid'])){
|
$up['unionid'] = $data['unionid'];
|
}
|
|
}elseif ($data['type'] == 'baidu'){
|
$field .= ',`bdopenid`';
|
$up = array('bdopenid'=>$openid);
|
$uni = "百度小程序";
|
}elseif ($data['type'] == 'qq'){
|
|
$field .= ',`qqid`,`qqunionid`';
|
$up = array('qqid'=>$openid,'qqunionid'=> !empty($data['unionid']) ? $data['unionid'] : '');
|
if ($data['provider'] == 'app'){
|
$uni = 'APP/QQ';
|
}else{
|
$uni = 'QQ';
|
}
|
|
}elseif ($data['type'] == 'sinaweibo'){
|
|
$field .= ',`sinaid`';
|
$up = array('sinaid'=>$openid);
|
if ($data['provider'] == 'app'){
|
$uni = 'APP/weibo';
|
}else{
|
$uni = 'weibo';
|
}
|
}
|
$user = $this->select_once('member', array('uid'=>$data['uid']), $field);
|
|
if (isset($up)){
|
|
$nid = $this->upInfo(array('uid'=>$user['uid']),$up);
|
|
if ($data['type'] == 'weixin' && $data['provider'] == 'weixin' && !empty($data['unionid']) && empty($this->config['mini_wxopen'])){
|
// 微信小程序内登录的,已绑定开放平台的,处理微信小程序绑定微信开放平台状态
|
$new_config = array('mini_wxopen'=>1);
|
|
include 'config.model.php';
|
$configM = new config_model($this->db, $this->def);
|
$configM->setConfig($new_config);
|
// 重新生成config.php缓存
|
$configM->makeConfig();
|
}
|
require_once ('log.model.php');
|
$LogM = new log_model($this->db, $this->def);
|
$LogM->addMemberLog($user['uid'], $user['usertype'], $uni.'绑定成功');
|
|
// 清空该账号的其他绑定账号
|
$upWhere = array('uid'=>array('<>',$user['uid']));
|
if ($data['type'] == 'weixin'){
|
|
if (!empty($data['unionid']) && $data['unionid'] != $user['unionid']){
|
|
$upWhere['PHPYUNBTWSTART'] = '';
|
$upWhere['unionid'] = $data['unionid'];
|
if ($data['provider'] == 'app'){
|
// app内
|
$upWhere['app_wxid'] = array('=',$openid,'OR');
|
}else{
|
// 微信小程序内
|
$upWhere['wxopenid'] = array('=',$openid,'OR');
|
}
|
$upWhere['PHPYUNBTWEND'] = '';
|
}else {
|
if ($data['provider'] == 'app'){
|
// app内
|
$upWhere['app_wxid'] = $openid;
|
}else{
|
// 微信小程序内
|
$upWhere['wxopenid'] = $openid;
|
}
|
}
|
$clear = array('wxid'=>'','app_wxid'=>'','wxopenid'=>'','unionid'=>'');
|
|
}elseif ($data['type'] =='baidu'){
|
|
$upWhere['bdopenid'] = $openid;
|
|
$clear = array('bdopenid'=>'');
|
|
}elseif ($data['type'] == 'qq'){
|
|
if (!empty($data['unionid']) && $data['unionid'] != $user['qqunionid']){
|
|
$upWhere['PHPYUNBTWSTART'] = '';
|
$upWhere['qqunionid'] = $data['unionid'];
|
$upWhere['qqid'] = array('=',$openid,'OR');
|
$upWhere['PHPYUNBTWEND'] = '';
|
|
$clear = array('qqid'=>'','qqunionid'=>'');
|
|
}else {
|
$upWhere['qqid'] = $openid;
|
|
$clear = array('qqid'=>'');
|
}
|
|
}elseif ($data['type'] == 'sinaweibo'){
|
|
$upWhere['sinaid'] = $openid;
|
|
$clear = array('sinaid'=>'');
|
}else{
|
// 参数错误,清除清理查询条件
|
$upWhere = array();
|
}
|
|
if (!empty($upWhere) && !empty($clear)){
|
|
$bm = $this->select_all('member', $upWhere, '`uid`,`usertype`');
|
if (!empty($bm)){
|
$bmuid = array();
|
foreach ($bm as $bv){
|
$bmuid[] = $bv['uid'];
|
$LogM->addMemberLog($bv['uid'], $bv['usertype'], '在'.$uni.'解除绑定,绑定到新账号(ID:'.$user['uid'].')');
|
}
|
|
$this->upInfo(array('uid'=>array('in', pylode(',', $bmuid))), $clear);
|
}
|
}
|
}
|
if(isset($nid)){
|
$return['error'] = 0;
|
$return['msg'] = '';
|
$token = md5($user['username'].$user['password'].$user['salt'].$user['usertype']);
|
$return['user'] = array('uid'=>$user['uid'],'usertype'=>$user['usertype'],'token'=>$token);
|
}else{
|
$return['error'] = 2;
|
$return['msg'] = '绑定失败';
|
}
|
return $return;
|
}
|
}
|
/**
|
* 小程序和app第三方登录检测(微信、QQ、新浪微博)
|
*/
|
public function loginCheck($data)
|
{
|
|
if ($data['type'] == 'weixin'){
|
|
if ($data['provider'] == 'app'){
|
// app内微信登录
|
if (!empty($data['unionid'])){
|
|
$where = array('unionid'=>$data['unionid'], 'app_wxid' => array('=', $data['openid'], 'OR'));
|
|
}else{
|
$where = array('app_wxid'=>$data['openid']);
|
}
|
$uni = 'APP/微信';
|
}else{
|
// 微信小程序内微信登录
|
if (!empty($data['unionid'])){
|
|
$where = array('unionid'=>$data['unionid'], 'wxopenid' => array('=', $data['openid'], 'OR'));
|
|
}else{
|
$where = array('wxopenid'=>$data['openid']);
|
}
|
$uni = '微信小程序';
|
}
|
}elseif($data['type']=='baidu'){
|
// 百度小程序内百度登录
|
$where = array('bdopenid'=>$data['openid']);
|
}elseif ($data['type'] == 'qq'){
|
|
if (!empty($data['unionid'])){
|
|
$where = array('qqunionid'=>$data['unionid']);
|
|
}else{
|
|
$where = array('qqid'=>$data['openid']);
|
}
|
$uni = 'APP/QQ';
|
}elseif ($data['type'] == 'sinaweibo'){
|
|
$where = array('sinaid'=>$data['openid']);
|
$uni = 'APP/weibo';
|
}
|
|
$userinfo = $this->getInfo($where,array('field'=>'uid,username,password,salt,usertype,login_date,status'));
|
|
if (!empty($userinfo)){
|
|
if($userinfo['status']=='2'){
|
$return['error'] = 3;
|
$return['msg'] = '您的账号已被锁定';
|
return $return;
|
}
|
|
$time = time();
|
$ip = fun_ip_get();
|
$upLogin = array(
|
'login_ip' => $ip,
|
'login_date' => $time,
|
'login_hits' => array('+', 1)
|
);
|
if (!empty($data['clientid'])){
|
$upLogin['clientid'] = $data['clientid'];
|
$upLogin['deviceToken'] = $data['deviceToken'];
|
//清除其他账号clientid
|
$this->clearPushId($data['clientid'], $userinfo['uid']);
|
}
|
if ($data['provider'] == 'app'){
|
// app内微信登录
|
$upLogin['app_wxid'] = $data['openid'];
|
}else{
|
// 微信小程序内微信登录
|
$upLogin['wxopenid'] = $data['openid'];
|
}
|
if (!empty($data['unionid'])){
|
$upLogin['unionid'] = $data['unionid'];
|
}
|
$this->upInfo(array('uid'=>$userinfo['uid']), $upLogin);
|
|
if ($userinfo['usertype'] > 0){
|
|
// 同步登录时间
|
$this->update_once('company', array('login_date' => time()), array('uid' => $userinfo['uid']));
|
$this->update_once('resume', array('login_date' => time()), array('uid' => $userinfo['uid']));
|
|
//会员日志,记录手动登录
|
require_once ('log.model.php');
|
$LogM = new log_model($this->db, $this->def);
|
$LogM->addMemberLog($userinfo['uid'],$userinfo['usertype'], $uni. '登录成功');
|
|
// 有身份类型的记录登录日志、加登录积分
|
$logtime = date('Ymd',$userinfo['login_date']);
|
$nowtime = date('Ymd',$time);
|
if($logtime!=$nowtime){
|
require_once 'integral.model.php';
|
$IntegralM = new integral_model($this->db, $this->def);
|
$IntegralM -> invtalCheck($userinfo['uid'],$userinfo['usertype'],'integral_login','会员登录',22);
|
|
//登录日志
|
$logindata = array(
|
'uid' => $userinfo['uid'],
|
'usertype' => $userinfo['usertype']
|
);
|
$LogM->addLoginlog($logindata, $data);
|
}
|
}
|
|
$token = md5($userinfo['username'].$userinfo['password'].$userinfo['salt'].$userinfo['usertype']);
|
|
$return['error'] = $userinfo['usertype'] > 0 ? 0 : 1;
|
$return['errmsg'] = '';
|
$return['user'] = array('uid'=>$userinfo['uid'],'usertype'=>$userinfo['usertype'],'token'=>$token);
|
|
if ($data['provider'] == 'weixin' && !empty($data['unionid']) && empty($this->config['mini_wxopen'])){
|
// 微信小程序内登录的,已绑定开放平台的,处理微信小程序绑定微信开放平台状态
|
$new_config = array('mini_wxopen'=>1);
|
|
include 'config.model.php';
|
$configM = new config_model($this->db, $this->def);
|
$configM->setConfig($new_config);
|
// 重新生成config.php缓存
|
$configM->makeConfig();
|
}
|
}else{
|
|
if (!empty($data['phoneEncrypt']) && !empty($data['phoneIv'])){
|
// 如果传了微信手机号解密参数(属于微信小程序)
|
$return = $this->decodePhoneNumber($data);
|
|
}else{
|
|
if(!empty($data['cnewcount'])){
|
if ($data['type'] == 'weixin' && $data['provider'] == 'weixin'){
|
$provider = 'wxxcx';
|
}else{
|
$provider = $data['provider'];
|
}
|
$return = $this->fastReg($data, $provider, $data['type']);
|
}else{
|
$return['error'] = 2;
|
$return['msg'] = '';
|
$return['user'] = array();
|
}
|
}
|
}
|
return $return;
|
}
|
/**
|
* 微信小程序通过解密getPhoneNumber接口参数,来获取手机号。 然后检测是否绑定账号,没绑定的,自动注册账号
|
*/
|
public function decodePhoneNumber($data = array()){
|
|
$iv = $data['phoneIv'];
|
$encryptedData = $data['phoneEncrypt'];
|
//解密手机号
|
include APP_PATH."/api/wxapp/PHP/wxBizDataCrypt.php";
|
$pc = new wxBizDataCrypt($data['appid'], $data['session_key']);
|
|
$errCode = $pc->decryptData($encryptedData,$iv,$res);
|
|
if($errCode !== 0){
|
|
$return['error'] = $errCode;
|
$return['errmsg'] = '数据异常,请稍后重试';
|
|
}else{
|
//根据手机号查询已有数据,如没有则注册新账号
|
$res = json_decode($res,true);
|
$phone = $res['purePhoneNumber'];
|
if(!$phone || $phone==''){
|
|
$return['error'] = 2;
|
$return['errmsg'] = '微信绑定手机号错误';
|
|
}else{
|
|
$user = $this->select_once('member', array('moblie'=>$phone),'`uid`,`usertype`');
|
|
if (!empty($user)){
|
//已有账号,绑定微信
|
$data['uid'] = $user['uid'];
|
if($user['usertype']==1 || $user['usertype']==2 || $user['usertype']==0){
|
|
$return = $this->loginBind($data);
|
|
}else{
|
|
$return['error'] = -1;
|
$return['errmsg'] = "只能登录个人或企业身份账号";
|
}
|
}else{
|
|
$wdata = array(
|
'moblie' => $phone,
|
'openid' => $data['openid'],
|
'unionid' => $data['unionid'],
|
'source' => $data['source']
|
);
|
$return = $this->fastReg($wdata, 'wxxcx');
|
}
|
}
|
}
|
return $return;
|
}
|
//申请切换用户列表
|
public function getUserChangeList($where,$data=array()){
|
$usertype = array('1'=>'个人会员','2'=>'企业会员','3'=>'猎头会员','4'=>'培训会员');
|
$field = empty($data['field']) ? '*' : $data['field'];
|
$rows = $this->select_all('user_change',$where,$field);
|
|
if(is_array($rows) && $rows){
|
foreach($rows as $val){
|
$memberid[] = $val['uid'];
|
}
|
$member = $this->select_all('member',array('uid'=>array('in',pylode(',',$memberid))),'`uid`,moblie');
|
foreach($rows as $k=>$v){
|
$rows[$k]['pres_usertype'] = $usertype[$v['pres_usertype']];
|
$rows[$k]['apply_usertype'] = $usertype[$v['apply_usertype']];
|
foreach($member as $val){
|
if($v['uid']==$val['uid']){
|
$rows[$k]['moblie'] = $val['moblie'];
|
}
|
}
|
|
}
|
}
|
return $rows;
|
}
|
|
public function addUserChange($addData=array()){
|
$return = $this -> insert_into('user_change',$addData);
|
return $return;
|
}
|
public function upusChange($whereData=array(),$upData=array()){
|
|
$return = $this -> update_once('user_change',$upData,$whereData);
|
return $return;
|
}
|
// 获取账户信息
|
function getUserChangeInfo($where,$data=array()){
|
|
$field = empty($data['field']) ? '*' : $data['field'];
|
|
$rows = $this -> select_once('user_change',$where, $field);
|
|
return $rows;
|
|
}
|
function upAllUserChange($idarr,$data=array(), $port = null){
|
|
$status = $data['status'];
|
|
if(!empty($idarr)){
|
|
$rows = $this->select_all('user_change',array('id'=>array('in',pylode(',',$idarr)),'status'=>array('<>',1)));
|
|
$ids = array();
|
$uidarr = array();
|
foreach($rows as $k=>$v){
|
$ids[] = $v['id'];
|
$uidarr[] = $v['uid'];
|
}
|
|
$nid = $this->update_once('user_change',$data,array('id'=>array('in',pylode(',',$ids))));
|
|
if($nid){
|
//审核通过
|
$mems = $this->select_all('member',array('uid'=>array('in',pylode(',',$uidarr))),'`uid`,`moblie`');
|
|
$mobliearr = array();
|
|
foreach($mems as $mk=>$mv){
|
|
$mobliearr[$mv['uid']] = $mv['moblie'];
|
|
}
|
|
$ucarr = $this->select_all('user_change',array('id'=>array('in',pylode(',',$ids))));
|
|
foreach($ucarr as $uk=>$uv){
|
|
$this->actUserchange($uv['id'],$uv['uid'],$uv['apply_usertype'],$uv['name'],$status,$mobliearr[$uv['uid']], $port);
|
|
}
|
$return['msg'] = '转换会员审核成功';
|
$return['errcode'] = 9;
|
|
|
}else{
|
//审核失败
|
$return['msg'] = '转换会员审核失败';
|
$return['errcode'] = 8;
|
}
|
|
}else{
|
$return['msg'] = '请选择要转换的用户';
|
$return['errcode'] = 8;
|
}
|
return $return;
|
}
|
//审核
|
function upUserChange($id,$uid,$moblie,$data=array(), $port = null){
|
$status = $data['status'];
|
$nid = $this->update_once('user_change',$data,array('id'=>$id));
|
if($nid){
|
//审核通过
|
$userwhere['id'] = $id;
|
$userwhere['uid'] = $uid;
|
$userows = $this->getUserChangeInfo($userwhere);
|
if($userows){
|
$this->actUserchange($id,$uid,$userows['apply_usertype'],$userows['name'],$status,$moblie, $port);
|
$return['msg'] = '转换会员(ID:'.$id.')审核成功';
|
$return['errcode'] = 9;
|
|
}else{
|
$return['msg'] = '转换会员数据不存在';
|
$return['errcode'] = 8;
|
}
|
}else{
|
//审核失败
|
$return['msg'] = '转换会员(ID:'.$id.')审核失败';
|
$return['errcode'] = 8;
|
}
|
return $return;
|
}
|
/**
|
* 身份切换
|
* $data 处理的数据
|
* $data['uid']
|
* $data['usertype'] 需要切换成的身份
|
*/
|
public function changeUsertype($data = array()){
|
$return = array(
|
'errcode' => 8,
|
'msg' => ''
|
);
|
|
$uid = intval($data['uid']);
|
$usertype = intval($data['usertype']);
|
|
if(!$uid){
|
$return['msg'] = '请先登录!';
|
return $return;
|
}
|
//判断是否有子账户
|
if(!empty($data['spid'])){
|
$return['msg'] = '当前为子账户,不支持切换!';
|
return $return;
|
}
|
//参数判断
|
if(!in_array($usertype, array(1, 2, 3, 4))){
|
$return['msg'] = '无法转换成此身份!';
|
return $return;
|
}
|
|
//先获取uid信息
|
$memField = array('field' => '`uid`,`username`, `usertype`, `pid`, `email`, `moblie`, `address`,`salt`,`email`,`password`,`did`,`moblie_status`,`email_status`,`did`');
|
|
$memInfo = $this -> getInfo(array('uid' => $uid), $memField);
|
if(empty($memInfo)){
|
$return['msg'] = '数据错误!';
|
return $return;
|
}
|
|
//判断转换的身份 相同身份切换 直接返回成功,常见于同浏览器多窗口切换 或 后台管理员切换
|
if(empty($usertype) || $usertype == $memInfo['usertype']){
|
|
$return = array(
|
'errcode' => 9,
|
'msg' => 'ok',
|
'memInfo' => $memInfo
|
);
|
return $return;
|
|
}
|
// 添加切换身份日志
|
$marr = array(
|
'uid' => $uid,
|
'usertype' => $usertype,
|
'content' => '用户'.$memInfo['username'].'切换身份成功',
|
'opera' => 11,
|
'type' => 1,
|
'ip' => fun_ip_get(),
|
'ctime' => time(),
|
'did' => $memInfo['did']
|
);
|
$this->insert_into('member_log',$marr);
|
// 根据切换的身份,来选择身份
|
$this->activUser($uid,$usertype,$memInfo);
|
|
$return = array(
|
'errcode' => 9,
|
'msg' => 'ok',
|
'memInfo' => $memInfo
|
);
|
return $return;
|
}
|
/**
|
* 后台切换身份后处理
|
*/
|
function actUserchange($id,$uid,$usertype,$username,$status,$moblie,$port = null)
|
{
|
|
require_once 'notice.model.php';
|
$noticeM = new notice_model($this->db, $this->def);
|
if($status==1){
|
|
switch($usertype){
|
case '1' : $table = 'resume';
|
break;
|
case '2' : $table = 'company';
|
break;
|
case '3' : $table = 'lt_info';
|
break;
|
case '4' : $table = 'px_train';
|
break;
|
}
|
|
$existTable = $this->select_num($table,array('uid' => $uid));
|
if($existTable<1){
|
$this -> activUser($uid,$usertype);
|
}
|
$this -> update_once('member', array('usertype' => $usertype), array('uid' => $uid));
|
}
|
|
include_once ('weixin.model.php');
|
$Weixin = new weixin_model($this->db, $this->def);
|
$userdata = array(
|
'id' => $id,
|
'uid' => $uid,
|
'status' => $status
|
);
|
$Weixin->sendWxUsercahnge($userdata);
|
if($moblie){
|
|
//发送短信
|
$sendData['type'] = 'userchange';
|
$sendData['moblie'] = $moblie;
|
if($status==1){
|
$sendData['status'] = '切换成功';
|
}else{
|
$sendData['status'] = '拒绝切换';
|
}
|
$sendData['port'] = $port;
|
|
$noticeM -> sendSMSType($sendData);
|
}
|
|
}
|
/**
|
* 删除简历
|
* @param string $id 格式:单个,如1 ; 批量,如1,2,3
|
* @param array $data
|
*/
|
public function delUserChange($id){
|
|
if(!empty($id)){
|
$return = array(
|
'errcode' => 8,
|
'layertype' => 0,
|
'msg' => ''
|
);
|
|
if(is_array($id)){
|
$ids = $id;
|
$return['layertype'] = 1;
|
}else{
|
$ids = @explode(',', $id);
|
}
|
$id = pylode(',', $ids);
|
|
|
|
$return['id'] = $this -> delete_all('user_change',array('id' => array('in',$id)), '');
|
|
$return['msg'] = '申请转换会员信息(ID:'.pylode(',', $ids).')';
|
$return['errcode'] = $return['id'] ? '9' :'8';
|
$return['msg'] = $return['id'] ? $return['msg'].'删除成功!' : $return['msg'].'删除失败!';
|
}else{
|
$return['msg'] = '请选择您要删除的申请转换会员信息!';
|
$return['errcode'] = 8;
|
}
|
|
return $return;
|
}
|
|
|
/**
|
* 用户申请切换身份校验
|
* errcode 1:有条件不符并且有跳转链接 2:有错误提示无需跳转 3:拒绝 重新申请 5:需要填写申请理由 6:身份申请成功 等待审核 9:身份切换成功
|
*/
|
function checkChangeApply($uid,$usertype,$body=''){
|
|
if(empty($uid)){
|
$return['msg'] = '请先登录';
|
$return['url'] = Url('login');
|
$return['errcode'] = 1;
|
|
}elseif($this -> config['sy_user_change'] !='1'){
|
|
$return['msg'] = '请联系管理员进行操作!';
|
|
$return['errcode'] = 2;
|
|
}else{
|
$uid = (int)$uid;
|
$usertype = (int)$usertype;
|
|
//获取账户基本信息
|
$where['uid'] = $uid;
|
|
$user = $this->getInfo($where,array('field'=>'`usertype`,`username`,`salt`,`email`,`password`,`pid`,`wxopenid`,`wxid`,`did`'));
|
|
if($user['usertype']>0){
|
|
//查询是否有申请记录
|
$cahnge = $this->getUserChangeInfo(array('uid' => $uid,'orderby'=>'id,desc'));
|
|
//已经有申请记录的 禁止重复申请
|
if(!empty($cahnge) && $cahnge['status']==0){
|
|
$utypes = array('1'=>'个人会员','2'=>'企业会员','3'=>'猎头会员','4'=>'培训会员');
|
$return['msg'] = '您已申请'.$utypes[$cahnge['apply_usertype']].',请等待管理员审核';
|
|
$return['wxopenid'] = $user['wxopenid'];
|
$return['wxid'] = $user['wxid'];
|
$return['errcode'] = 6;
|
|
}else{
|
|
//之前申请过并且被拒绝的 如果有body内容,则视为重新申请
|
if($cahnge['status']==2 && !$body){
|
|
$return['msg'] = '管理员已拒绝您的申请,原因:'.$cahnge['statusbody'];
|
|
$return['errcode'] = 3;
|
|
}else{
|
|
|
if($this -> config['sy_change_noshen'] != '1'){
|
|
if($usertype == 1){
|
$InfoNum = $this -> select_num('resume',$where);
|
}else if($usertype == 2){
|
$InfoNum = $this -> select_num('company',$where);
|
}else if($usertype == 3){
|
$InfoNum = $this -> select_num('lt_info',$where);
|
}else if($usertype == 4){
|
$InfoNum = $this -> select_num('px_train',$where);
|
}
|
}
|
//免审核或已经审核过的可以直接切换
|
if($InfoNum>0 || $this -> config['sy_change_noshen'] == '1'){
|
|
$changeData['uid'] = $uid;
|
$changeData['usertype'] = $usertype;
|
$changeData['spid'] = $user['pid'];
|
|
$res = $this -> changeUsertype($changeData);
|
|
if($res['errcode'] == 9){
|
|
require_once('cookie.model.php');
|
$cookieM = new cookie_model($this->db,$this->def);
|
|
$cookieM -> add_cookie($uid, $user['username'], $user['salt'], $user['email'], $user['password'], $usertype, $this->config['sy_logintime'], $user['did']);
|
|
$return['errcode'] = 9;
|
|
$token = md5($user['username'].$user['password'].$user['salt'].$usertype);
|
$return['user'] = array('uid'=>$uid,'usertype'=>$usertype,'token'=>$token);
|
|
}else{
|
|
$return['msg'] = $res['msg'];
|
$return['errcode'] = 4;
|
}
|
|
|
}else{
|
//需要重新申请 如果有BODY字段 视为提交新申请 没有body则返回说明状态
|
if($body != ''){
|
|
$addData = array(
|
'uid' => $uid,
|
'name' => $user['username'],
|
'did' => $user['did'],
|
'apply_usertype' => $usertype,
|
'pres_usertype' => $user['usertype'],
|
'applybody' => $body,
|
'apply_time' => time(),
|
'lastupdate' => time(),
|
'type' => 1,
|
'state' => 0,
|
);
|
|
$this -> addUserChange($addData);
|
|
$return['wxid'] = $user['wxid'];
|
$return['msg'] = '申请成功,请等待管理员审核!';
|
$return['errcode'] = 6;
|
|
|
}else{
|
|
$return['errcode'] = 5;//需要填写申请理由
|
}
|
}
|
}
|
}
|
}else{
|
$return['msg'] = '请先完善基本信息或者退出登录选择新身份';
|
$return['url'] = $_SERVER['HTTP_REFERER'];
|
$return['errcode'] = 1;
|
}
|
}
|
|
return $return;
|
|
}
|
|
/**
|
* 第三方登录绑定账号
|
* @param array $data
|
* @param string $type
|
* @return array|string[]
|
*/
|
function bindacount($data = array(),$type='')
|
{
|
|
$username = $data['username'];
|
$return = array('msg'=>'系统繁忙','errcode'=>8);
|
|
require ('notice.model.php');
|
$noticeM = new notice_model($this->db, $this->def);
|
|
//会员已登录判断
|
if(!empty($data['uid']) && $data['uid'] > 0 && $username!=''){
|
|
if($data['usertype']=='1'){
|
return array('msg'=>'您现在是个人会员登录状态!');
|
}elseif($data['usertype']=='2'){
|
return array('msg'=>'您现在是企业会员登录状态!');
|
}elseif($data['usertype']=='3'){
|
return array('msg'=>'您现在是猎头会员登录状态!');
|
}elseif($data['usertype']=='4'){
|
return array('msg'=>'您现在是培训会员登录状态!');
|
}
|
}
|
//验证码判断
|
if(!isset($data['provider'])){
|
|
$result = $noticeM->jycheck($data['authcode'],'前台登录');
|
if(!empty($result)){
|
return array('msg'=>$result['msg'],'errcode'=>'8');
|
}
|
}
|
|
if(CheckRegUser($username)==false && CheckRegEmail($username)==false && ($username!='')){
|
return array('msg'=>'用户名包含特殊字符或为空!','errcode'=>'8');
|
}
|
|
$where = array('username'=> $username);
|
|
if(CheckMobile($username)){
|
|
$where['PHPYUNBTWSTART'] = 'OR';
|
$where['moblie'] = $username;
|
$where['moblie_status'] = 1;
|
$where['PHPYUNBTWEND'] = '';
|
}
|
//邮箱登录
|
if(CheckRegEmail($username)){
|
|
$where['PHPYUNBTWSTART'] = 'OR';
|
$where['email'] = $username;
|
$where['email_status'] = 1;
|
$where['PHPYUNBTWEND'] = '';
|
}
|
|
$user = $this->getInfo($where);
|
|
if (!empty($user)){
|
|
if($user['status']=='2'){
|
return array('msg'=>'您的账号已被锁定!','errcode'=>'8','url'=>Url('register',array('c'=>'ok','type'=>2),'1'));
|
}
|
//普通密码校验
|
$res = passCheck($data['password'],$user['salt'],$user['password']);
|
|
if($res){
|
|
//cookie设置
|
if (!isset($data['provider'])){
|
|
require_once('cookie.model.php');
|
$cookie = new cookie_model($this->db,$this->def);
|
$cookie->unset_cookie();
|
$cookie->add_cookie($user['uid'],$user['username'],$user['salt'],$user['email'],$user['password'],$user['usertype'],$this->config['sy_logintime'],$user['did']);
|
}
|
//会员登录信息变更
|
$ip = fun_ip_get();
|
$upLogin = array(
|
'login_ip'=>$ip,
|
'login_date'=> time(),
|
'login_hits' => array('+', 1)
|
);
|
if (isset($data['provider'])){
|
if (!empty($data['clientid'])){
|
$upLogin['clientid'] = $data['clientid'];
|
$upLogin['deviceToken'] = $data['deviceToken'];
|
//清除其他账号clientid
|
$this->clearPushId($data['clientid'], $user['uid']);
|
}
|
}
|
if($type=='weixin'){
|
if (isset($data['provider'])){
|
if ($data['provider'] == 'app'){
|
$upLogin['app_wxid'] = !empty($data['openid']) ? $data['openid'] : '';
|
}else{
|
$upLogin['wxopenid'] = !empty($data['openid']) ? $data['openid'] : '';
|
}
|
}else{
|
$upLogin['wxid'] = !empty($data['openid']) ? $data['openid'] : '';
|
}
|
$upLogin['unionid'] = !empty($data['unionid']) ? $data['unionid'] : '';
|
|
}elseif ($type == 'qq'){
|
|
$upLogin['qqid'] = !empty($data['openid']) ? $data['openid'] : '';
|
$upLogin['qqunionid'] = !empty($data['unionid']) ? $data['unionid'] : '';
|
|
}elseif ($type == 'sinaweibo'){
|
|
$upLogin['sinaid'] = !empty($data['openid']) ? $data['openid'] : '';
|
}elseif ($type=="baidu"){
|
$upLogin['bdopenid'] = !empty($data['openid']) ? $data['openid'] : '';
|
}
|
$this->upInfo(array('uid'=>$user['uid']), $upLogin);
|
|
if(!empty($user['usertype'])){
|
|
// 同步登录时间
|
$this->update_once('company', array('login_date' => time()), array('uid' => $user['uid']));
|
$this->update_once('resume', array('login_date' => time()), array('uid' => $user['uid']));
|
|
//登录日志
|
if (isset($data['provider'])){
|
if ($data['source'] == '3'){
|
$state_content = 'app绑定账号';
|
}elseif ($data['source'] == '13'){
|
$state_content = '微信小程序绑定账号';
|
}elseif ($data['source'] == '19'){
|
$state_content = '百度小程序绑定账号';
|
}
|
}elseif ($type=='weixin'){
|
|
$state_content = $data['source'] == 1 ? 'PC绑定微信' : 'wap绑定微信';
|
}elseif ($type=='qq'){
|
|
$state_content = $data['source'] == 1 ? 'PC绑定QQ' : 'wap绑定QQ';
|
}elseif ($type=='sinaweibo'){
|
|
$state_content = $data['source'] == 1 ? 'PC绑定新浪微博' : 'wap绑定新浪微博';
|
}
|
//会员日志,记录手动登录
|
require_once ('log.model.php');
|
$LogM = new log_model($this->db, $this->def);
|
$LogM->addMemberLog($user['uid'],$user['usertype'], $state_content. '登录成功');
|
|
$logtime = date('Ymd',$user['login_date']);
|
$nowtime = date('Ymd',time());
|
if($logtime!=$nowtime){
|
|
//登录积分
|
include_once ('integral.model.php');
|
$integralM = new integral_model($this->db, $this->def);
|
$integralM->invtalCheck($user['uid'],$user['usertype'],'integral_login','会员登录',22);
|
|
// 登录日志
|
$logdata['content'] = $state_content;
|
|
$logdata['uid'] = $user['uid'];
|
$logdata['usertype'] = $user['usertype'];
|
$logdata['did'] = $user['did'];
|
|
$LogM->addLoginlog($logdata);
|
}
|
}
|
|
if(empty($user['usertype'])){
|
$return['errcode'] = 2;
|
$return['msg'] = '';
|
}else{
|
|
$return['errcode'] = 9;
|
$return['msg'] = '登录成功';
|
}
|
|
if (isset($data['source'])){
|
// wap、pc所需跳转地址
|
if ($data['source'] == 2){
|
$return['url'] = Url('wap',array(),'member');
|
}elseif ($data['source'] == 1){
|
$return['url'] = $this->config['sy_weburl'].'/member/index.php';
|
}
|
}
|
// app/小程序, 需要token
|
if (isset($data['provider'])){
|
|
if($type=='weixin' && $data['provider'] == 'weixin' && !empty($data['unionid']) && empty($this->config['mini_wxopen'])){
|
// 微信小程序内登录的,已绑定开放平台的,处理微信小程序绑定微信开放平台状态
|
$new_config = array('mini_wxopen'=>1);
|
|
include 'config.model.php';
|
$configM = new config_model($this->db, $this->def);
|
$configM->setConfig($new_config);
|
// 重新生成config.php缓存
|
$configM->makeConfig();
|
}
|
|
$token = md5($user['username'].$user['password'].$user['salt'].$user['usertype']);
|
if($user['usertype'] > 0){
|
$usertype = $user['usertype'];
|
}else{
|
$usertype = 0;
|
}
|
$return['user'] = array('uid'=>$user['uid'],'usertype'=>$usertype,'token'=>$token);
|
if($user['pid']){
|
$return['user']['spid'] = 1;
|
}
|
}
|
|
return $return;
|
}else{
|
|
return array('msg'=>'用户名或密码不正确!','errcode'=>'8');
|
}
|
}else{
|
return array('msg'=>'用户名或密码不正确!','errcode'=>'8');
|
}
|
return $return;
|
}
|
|
/**
|
* 微信/QQ等直接登录注册
|
* @param array $data
|
* @param string $type
|
* @param string $provider
|
* @return mixed
|
*/
|
function fastReg($data = array(), $type = '', $provider = 'weixin')
|
{
|
|
// 微信小程序和百度小程序不需要验证
|
if($type != 'wxxcx' && $data['moblie']!=''){
|
|
// 验证手机号
|
if(!CheckMobile($data['moblie'])){
|
|
$return['msg'] = '手机格式错误!';
|
}else{
|
//检查手机号是否已存在 如果存在则直接绑定
|
$mobileUser = $this -> getInfo(array('moblie' => $data['moblie']));
|
}
|
|
if($return['msg']){
|
$return['errcode'] = 8;
|
return $return;
|
}
|
$regCertMobile = $this->select_once('company_cert',array('type' => '2', 'check' => $data['moblie'],'orderby'=>'ctime,desc'), '`check2`,`ctime`');
|
|
include_once ('notice.model.php');
|
$noticeM = new notice_model($this->db, $this->def);
|
|
$codeTime = $noticeM->checkTime($regCertMobile['ctime']);
|
|
if($data['moblie_code']==''){
|
|
$return['msg'] = '短信验证码不能为空!';
|
$return['errcode'] = 8;
|
return $return;
|
}elseif(!$codeTime){
|
|
$return['msg'] = '短信验证码验证超时,请重新点击发送验证码!';
|
$return['errcode'] = 8;
|
return $return;
|
}elseif($regCertMobile['check2']!=$data['moblie_code']){
|
|
$return['msg'] = '短信验证码错误!';
|
$return['errcode'] = 8;
|
return $return;
|
}
|
if($this->config['sy_msg_regcode']=='1' || $type != ''){
|
$needMsg = true;
|
}
|
if(!$needMsg){
|
|
$result = $noticeM->jycheck($data['code'],'前台登录');
|
|
if(!empty($result)){
|
|
$return['msg'] = $result['msg'];
|
$return['errcode'] = 8;
|
return $return;
|
}
|
}
|
}
|
if(!empty($mobileUser['uid'])){
|
//直接绑定该账户
|
if($mobileUser['status']=='2'){
|
|
$return['msg'] = '当前手机号对应账户已被锁定!';
|
$return['errcode'] = 8;
|
}else{
|
|
if ($provider == 'weixin'){
|
|
if ($type != ''){
|
if($type == 'app'){
|
|
$mdata['app_wxid'] = !empty($data['openid']) ? $data['openid'] : '';
|
$loginType = 'APP/微信';
|
}else{
|
$mdata['wxopenid'] = !empty($data['openid']) ? $data['openid'] : '';
|
$loginType = '微信小程序';
|
}
|
}else{
|
$mdata['wxid'] = !empty($data['openid']) ? $data['openid'] : '';
|
$loginType = '微信公众号';
|
}
|
$mdata['unionid'] = !empty($data['unionid']) ? $data['unionid'] : '';
|
|
}elseif ($provider == 'qq'){
|
|
$mdata['qqid'] = !empty($data['openid']) ? $data['openid'] : '';
|
$mdata['qqunionid'] = !empty($data['unionid']) ? $data['unionid'] : '';
|
$loginType = 'QQ';
|
|
}elseif ($provider == 'sinaweibo'){
|
|
$mdata['sinaid'] = !empty($data['openid']) ? $data['openid'] : '';
|
$loginType = 'weibo';
|
}
|
|
//更新登录信息
|
|
$ip = fun_ip_get();
|
$mdata['login_ip'] = $ip;
|
$mdata['login_date'] = time();
|
$mdata['login_hits'] = array('+', 1);
|
|
if ($type == 'app'){
|
if (!empty($data['clientid'])){
|
$mdata['clientid'] = $data['clientid'];
|
$mdata['deviceToken'] = $data['deviceToken'];
|
//清除其他账号clientid
|
$this->clearPushId($data['clientid'], $mobileUser['uid']);
|
}
|
}
|
//更新绑定 登录信息
|
$this->upInfo(array('uid'=>$mobileUser['uid']),$mdata);
|
|
if(!empty($mobileUser['usertype'])){
|
|
// 同步登录时间
|
$this->update_once('company', array('login_date' => time()), array('uid' => $mobileUser['uid']));
|
$this->update_once('resume', array('login_date' => time()), array('uid' => $mobileUser['uid']));
|
|
//会员日志,记录手动登录
|
require_once ('log.model.php');
|
$LogM = new log_model($this->db, $this->def);
|
$LogM->addMemberLog($mobileUser['uid'],$mobileUser['usertype'], $loginType. '绑定账号短信登录成功');
|
|
$logtime = date('Ymd',$mobileUser['login_date']);
|
$nowtime = date('Ymd',time());
|
if($logtime!=$nowtime){
|
//登录积分
|
require_once ('integral.model.php');
|
$IntegralM = new integral_model($this -> db, $this -> def);
|
$IntegralM->invtalCheck($mobileUser['uid'],$mobileUser['usertype'],'integral_login','会员登录',22);
|
//登录日志
|
$logdata['uid'] = $mobileUser['uid'];
|
$logdata['usertype'] = $mobileUser['usertype'];
|
$logdata['did'] = $mobileUser['did'];
|
|
$LogM->addLoginlog($logdata, array('provider'=>$provider));
|
}
|
}
|
|
if ($type == ''){
|
// 非小程序/APP
|
require_once('cookie.model.php');
|
$cookie = new cookie_model($this->db,$this->def);
|
$cookie->unset_cookie();
|
$cookie->add_cookie($mobileUser['uid'], $mobileUser['username'], $mobileUser['salt'], $mobileUser['email'], $mobileUser['password'], $mobileUser['usertype'], $this->config['sy_logintime'], $mobileUser['did']);
|
|
}else{
|
// 小程序/APP
|
$token = md5($mobileUser['username'].$mobileUser['password'].$mobileUser['salt'].$mobileUser['usertype']);
|
$return['user'] = array('uid'=>$mobileUser['uid'],'usertype'=>$mobileUser['usertype'],'token'=>$token);
|
|
if ($type == 'wxxcx' && !empty($data['unionid']) && empty($this->config['mini_wxopen'])){
|
// 微信小程序内登录的,已绑定开放平台的,处理微信小程序绑定微信开放平台状态
|
$new_config = array('mini_wxopen'=>1);
|
|
include 'config.model.php';
|
$configM = new config_model($this->db, $this->def);
|
$configM->setConfig($new_config);
|
// 重新生成config.php缓存
|
$configM->makeConfig();
|
}
|
}
|
|
$return['msg'] = '账户绑定成功!';
|
$return['errcode'] = 9;
|
if ($type != ''){
|
|
$return['error'] = 1;
|
}
|
}
|
}else{
|
$ip = fun_ip_get();
|
$time = time();
|
$salt = substr(uniqid(rand()),-6);
|
$rand = mt_rand(111111,999999);
|
// 处理用户名
|
if (!empty($data['moblie'])){
|
|
$username = $data['moblie'];
|
}else{
|
|
if ($provider == 'weixin'){
|
|
$username = 'wxid_'.$time.$rand;
|
}elseif ($provider == 'qq'){
|
|
$username = 'qqid_'.$time.$rand;
|
}elseif ($provider == 'sinaweibo'){
|
|
$username = 'sinaid_'.$time.$rand;
|
}
|
}
|
|
$mdata = array(
|
'username' => $username,
|
'password' => passCheck($rand,$salt),
|
'salt' => $salt,
|
'moblie' => !empty($data['moblie']) ? $data['moblie'] : '',
|
'moblie_status' => !empty($data['moblie']) ? 1 : 0,
|
'usertype' => 0,
|
'reg_date' => $time,
|
'reg_ip' => $ip,
|
'login_date' => $time,
|
'login_ip' => $ip,
|
'status' => 1,
|
'source' => $data['source'],
|
'clientid' => !empty($data['clientid']) ? $data['clientid'] : '',
|
'deviceToken' => !empty($data['deviceToken']) ? $data['deviceToken'] : '',
|
'did' => $this->config['did']
|
);
|
if ($provider == 'weixin'){
|
|
if ($type != ''){
|
if($type == 'app'){
|
$mdata['app_wxid'] = !empty($data['openid']) ? $data['openid'] : '';
|
}else{
|
$mdata['wxopenid'] = !empty($data['openid']) ? $data['openid'] : '';
|
}
|
}else{
|
$mdata['wxid'] = !empty($data['openid']) ? $data['openid'] : '';
|
}
|
$mdata['unionid'] = !empty($data['unionid']) ? $data['unionid'] : '';
|
|
}elseif ($provider == 'qq'){
|
|
$mdata['qqid'] = !empty($data['openid']) ? $data['openid'] : '';
|
$mdata['qqunionid'] = !empty($data['unionid']) ? $data['unionid'] : '';
|
|
}elseif ($provider == 'sinaweibo'){
|
|
$mdata['sinaid'] = !empty($data['openid']) ? $data['openid'] : '';
|
}
|
$userid = $this->insert_into('member', $mdata);
|
|
if ($userid){
|
|
//处理注册赠送优惠券
|
if($this->config['reg_coupon']){
|
$coupon = $this->select_once('coupon',array('id'=>$this->config['reg_coupon']));
|
$cdata['uid'] = $userid;
|
$cdata['number'] = $time;
|
$cdata['ctime'] = $time;
|
$cdata['coupon_id'] = $coupon['id'];
|
$cdata['coupon_name'] = $coupon['name'];
|
$cdata['validity'] = $time+$coupon['time']*86400;
|
$cdata['coupon_amount'] = $coupon['amount'];
|
$cdata['coupon_scope'] = $coupon['scope'];
|
$this->insert_into('coupon_list',$cdata);
|
}
|
if ($type == ''){
|
// 非小程序/APP
|
require_once('cookie.model.php');
|
$cookie = new cookie_model($this->db,$this->def);
|
$cookie->unset_cookie();
|
$cookie->add_cookie($userid, $mdata['username'], $salt, '', $mdata['password'], '', $this->config['sy_logintime'], $mdata['did']);
|
|
}else{
|
// 小程序/APP
|
$token = md5($mdata['username'].$mdata['password'].$salt.'0');
|
$return['user'] = array('uid'=>$userid,'usertype'=>0,'token'=>$token);
|
}
|
|
$return['msg'] = '注册成功';
|
|
$return['errcode'] = 9;
|
if($type != ''){
|
$return['error']= 1;
|
}
|
|
$return['uid'] = $userid;
|
|
}else{
|
|
$return['msg'] = '注册失败';
|
$return['errcode'] = 8;
|
//增加错误日志
|
$this -> addErrorLog('', 1,$return['msg']);
|
}
|
|
}
|
if ($type == 'wxxcx' && !empty($data['unionid']) && empty($this->config['mini_wxopen'])){
|
// 微信小程序内登录的,已绑定开放平台的,处理微信小程序绑定微信开放平台状态
|
$new_config = array('mini_wxopen'=>1);
|
|
include 'config.model.php';
|
$configM = new config_model($this->db, $this->def);
|
$configM->setConfig($new_config);
|
// 重新生成config.php缓存
|
$configM->makeConfig();
|
}
|
if ($type != '' && $return['errcode'] == 8){
|
|
$return['error'] = -1;
|
$return['errmsg'] = $return['msg'];
|
$return['user'] = array();
|
unset($return['msg']);
|
}
|
return $return;
|
}
|
/**
|
* 清除其他账号绑定的app推送标识
|
*/
|
function clearPushId($clientid, $uid = ''){
|
if (!empty($clientid)){
|
if ($uid == ''){
|
$this->update_once('member', array('clientid'=>'', 'deviceToken'=>''),array('clientid'=>$clientid));
|
}else{
|
$appmember = $this->select_all('member',array('clientid'=>$clientid,'uid'=>array('<>',$uid)),'uid');
|
if (!empty($appmember)){
|
$appuid = array();
|
foreach ($appmember as $v){
|
$appuid[] = $v['uid'];
|
}
|
$this->update_once('member',array('clientid'=>'','deviceToken'=>''),array('uid'=>array('in',pylode(',', $appuid))));
|
}
|
}
|
}
|
}
|
}
|
?>
|