chengkun
2025-05-30 abb66a0e799e7ca613e8967a304e7c5ed00e034e
app/model/userinfo.model.php
@@ -1,128 +1,116 @@
<?php
/*
 * $Author :PHPYUN开发团队
 *
 * 官网: http://www.phpyun.com
 *
 * 版权所有 2009-2021 宿迁鑫潮信息技术有限公司,并保留所有权利。
 *
 * 软件声明:未经授权前提下,不得用于商业运营、二次开发以及任何形式的再次发布。
 */
class userinfo_model extends model
{
    private $comstatusStr =array(
       0   =>   ' 被设为未审核状态',
       1   =>   ' 通过审核',
       2   =>   ' 被锁定',
       3   =>   ' 审核未通过',
       4   =>   ' 被暂停'
class userinfo_model extends model {
    private $comstatusStr = array(
        0 => ' 被设为未审核状态',
        1 => ' 通过审核',
        2 => ' 被锁定',
        3 => ' 审核未通过',
        4 => ' 被暂停'
    );
    private function addErrorLog($uid,$type='',$content)
    {
    private function addErrorLog($uid, $type = '', $content) {
        
        require_once ('errlog.model.php');
        require_once('errlog.model.php');
        $ErrlogM = new errlog_model($this->db, $this->def);
        return  $ErrlogM -> addErrorLog($uid, $type, $content);
        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 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){
        }
    }
    //  账户数目
    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) {
@@ -130,314 +118,313 @@
                            $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);
      /*
                    $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']
        //检查会员信息
        $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'   => ''
        );
       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;
        return $res;
    }
    /**
     * @desc  添加企业子账户
     * @param array $data
     * $data['uid'] 企业的uid
     * $data['cdata'] 子账号的信息
     * $data['ptype'] vip 扣除套餐数量
     */
    public function addChildInfo($data = array()) {
        $res = array(
            'ecode' => 0,
            'msg'   => ''
        );
        
        $comSdata   =   array(
            'rating'        =>  $id,
            'rating_name'   =>  $rInfo['name'],
            'vipstime'      =>  time(),
            'vipetime'      =>  $rInfo['service_time'] ? strtotime('+'.$rInfo['service_time'].' day') : 0
        $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){
        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'])));
            require_once('coupon.model.php');
            
            $val            =   array(
            $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']
                '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())
    {
            $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'])) {
@@ -454,660 +441,664 @@
            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'];
    /**
     * 用户注册检测,修改基本信息检测
     * @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['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'=>'邮箱已被使用');
        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) {
                        
                    }elseif (!empty($oldMem) && $data['moblie'] != $oldMem['moblie']){//判断现有的和之前是否相同,不同返回可修改的值
                        return array('error' => '102', 'msg' => '用户名已被使用');
                        
                        $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'])) {
                } 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'])) {
                }
                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))
    {
    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'] : '*';
            $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);
    /**
     * 根据用户类型,直接批量查找用户信息
     * @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(
    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' => array('in', pylode(',', $type[1]))
                    ),
                    '`uid`,`name`,`photo`'
                    );
                );
            }
            if (!empty($type[2])){
                $ComList   =   $this -> select_all(
            if (!empty($type[2])) {
                $ComList = $this->select_all(
                    'company',
                    array(
                        'uid'=>array('in',pylode(',',$type[2]))
                        'uid' => array('in', pylode(',', $type[2]))
                    ),
                    '`uid`,`name`,`logo`'
                    );
                );
            }
            if (!empty($type['3'])){
                $LtList      =   $this -> select_all(
            if (!empty($type['3'])) {
                $LtList = $this->select_all(
                    'lt_info',
                    array(
                        'uid'=>array('in',pylode(',',$type[3]))
                        'uid' => array('in', pylode(',', $type[3]))
                    ),
                    '`uid`,`realname` as name,`photo`'
                    );
                );
            }
            if (!empty($type[4])){
                $TrainList   =   $this -> select_all(
            if (!empty($type[4])) {
                $TrainList = $this->select_all(
                    'px_train',
                    array(
                        'uid'=>array('in',pylode(',',$type[4]))
                        'uid' => array('in', pylode(',', $type[4]))
                    ),
                    '`uid`,`name`,`logo`'
                    );
                );
            }
            if (!empty($type[5])){
                $GqList   =   $this -> select_all(
            if (!empty($type[5])) {
                $GqList = $this->select_all(
                    'gq_info',
                    array(
                        'uid'=>array('in',pylode(',',$type[5]))
                        '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;
      }
            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[1]:resume表查询条件
     * $whereData[2]:company表查询条件
     * $whereData[3]:lt_info表查询条件
     * $whereData[4]:px_train表查询条件
     * $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';
    public function getUidsByWhere($whereData = array()) {
        if ($whereData) {
            
                        $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));
                     }
                       }
            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'];
                    }
                    $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);
                    $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);
        $resumeM = new resume_model($this->db, $this->def);
        
       $this->update_once('resume', $up, $where);
        $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;
        if ($up['r_status'] != 1) {
            $expectdata['state'] = 3; // 锁定账户 将简历状态改成未通过
            $expectdata['statusbody'] = $lock_info;
        }
        $resumeM->setExpectState($expectdata,$where);
        $resumeM->setExpectState($expectdata, $where);
        $this->update_once('company_job', $up, $where);
        $this->update_once('partjob', $up, $where);
        $this->update_once('school_xjh', $up, $where);
@@ -1117,40 +1108,39 @@
        $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))
    {
    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)
            $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){
            if ($up['r_status'] == 4) {
                $msg = '暂停';
            }elseif ($up['r_status'] == 3){
            } elseif ($up['r_status'] == 3) {
                $msg = '审核未通过';
            }elseif ($up['r_status'] == 0){
            } elseif ($up['r_status'] == 0) {
                $msg = '未审核';
            }elseif ($up['r_status'] == 1){
            } elseif ($up['r_status'] == 1) {
                $msg = '审核通过';
            }
            $lock_info = !empty($post['lock_info']) ? '。原因:'.$post['lock_info'] : '';
            $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']));
            if (isset($post['lock_info'])) {
                $this->update_once('member', array('lock_info' => $post['lock_info']), array('uid' => $whereData['uid']));
            }
            $isSendMsg = true;
            /**
@@ -1159,88 +1149,88 @@
            if ($usertype == 1) {
                
                $identity = '个人';
                $nid  =  $this->update_once('resume', $up, $where);
                $nid = $this->update_once('resume', $up, $where);
                include_once('resume.model.php');
                $resumeM   =   new resume_model($this->db, $this->def);
                $resumeM = new resume_model($this->db, $this->def);
                $expectdata = $up;
              if($up['r_status']!=1){
                 $expectdata['state'] = 0;
              }
                $resumeM->setExpectState($expectdata,$where);
                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){
                if ($data['post']['status'] == 4) {
                    $comup['zt_time'] = time();
                }else if($post['setup']!='1'){
                  $where['r_status'][] = array('<>', 4);
                } else if ($post['setup'] != '1') {
                    $where['r_status'][] = array('<>', 4);
                }
                if ($comup['r_status'] == 1){
                if ($comup['r_status'] == 1) {
                    // 企业审核通过,同步把logo审核状态设为通过
                    $comup['logo_status'] = 0;
                }
                if($post['setup']=='1'){
                   $isSendMsg = false;
                if ($post['setup'] == '1') {
                    $isSendMsg = false;
                }
                $identity = '企业';
                $nid  =  $this->update_once('company', $comup, $where);
                $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));
                $this->update_once('lt_job', $up, array('uid' => $whereData['uid'], 'usertype' => 2));
                
                $comcrm = $this->select_all('company',$where,'`name`,`r_status`,`crm_uid`');
                $comcrm = $this->select_all('company', $where, '`name`,`r_status`,`crm_uid`');
                
                if(is_array($comcrm)){
                if (is_array($comcrm)) {
                    
                    require_once 'crm.model.php';
                    
                    $crmM    =   new crm_model($this->db, $this->def);
                    $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));
                        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 ));
                $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);
                $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
                   );
               }
                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['msg'] = $identity . '会员' . $msg . '设置成功(ID:' . $whereData['uid']['1'] . $lock_info . ')';
                
                $return['errcode'] = '9';
            } else {
                $return['msg'] = $identity.'会员'.$msg.'设置失败(ID:' . $whereData['uid']['1'] . ')';
                $return['msg'] = $identity . '会员' . $msg . '设置失败(ID:' . $whereData['uid']['1'] . ')';
                $return['errcode'] = '8';
            }
        } else {
@@ -1249,1840 +1239,1827 @@
        }
        return $return;
    }
   /**
    * 会员审核发送通知
    * @param $uid   参数格式:uid = array('in', '1,2,3'); uid = 1;
    * @param array $post
    */
   private function sendStatus($uid,$post=array()){
        //审核通过和审核未通过才提醒,并且要先判断审核提醒是否开启通知
    /**
     * 会员审核发送通知
     * @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()) {
        $msgtx = $this->config['sy_msg_userstatus'];
        $emailtx = $this->config['sy_email_userstatus'];
        
        $value      =   array('username' => trim($data['username']));
        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'];
            $value['password'] = $data['password'];
            $value['restname'] = $data['restname'];
        }
        $uid        =   intval($data['uid']);
        
        $result     =   $this -> addMemberCheck($value, $uid);
        $uid = intval($data['uid']);
        $result = $this->addMemberCheck($value, $uid);
        if ($result['username']) {
            
            if ($data['restname']=='1' || $data['admin'] == '1') {
            if ($data['restname'] == '1' || $data['admin'] == '1') {
                
                unset($value['password']);
                unset($value['password']);
                
                require_once ('log.model.php');
                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));
                $LogM->addMemberLog($data['uid'], $data['usertype'], '修改用户名,原用户名:' . $result['oldusername'], 11);
                
            $return['errcode'] = '1';
            }else{
                $this->update_once('member', $value, array('uid' => $uid));
                
            $return['msg'] = '修改次数已用完!';
         }
                $return['errcode'] = '1';
            } else {
                $return['msg'] = '修改次数已用完!';
            }
            
        }else{
        } else {
            
            if ($data['admin'] == '1') {
                
                return $result;
            }else{
            } else {
                
              $return['msg'] = $result['msg']?$result['msg']:'修改失败!';
                $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;
        
    }
    /**
     * @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']
     * @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);
    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' => '您现在是培训会员登录状态!');
            }
         //更新用户新浪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;
   }
        }
        //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) && !CheckRegEmail($username) && ($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'];
                        if (!$res) {
                            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;
                }
            }
        } 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'));
    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');
            $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');
            }
        }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'];
        $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($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;
      }
   }
        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']
     * @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;
   }
    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;
      }
    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['msg'] = '企业名称已存在!';
                    $return['errcode'] = 8;
                    return $return;
                }
            }
        }
      /* 用户名注册 */
        /* 用户名注册 */
        if ($data['codeid'] == '1') {
            $data['username']   =   str_replace('!', '!', $data['username']);
            $username           =   $data['username'];
            $msg                =   regUserNameComplex($username);//检测用户名复杂度
            $data['username'] = str_replace('!', '!', $data['username']);
            $username = $data['username'];
            $msg = regUserNameComplex($username);//检测用户名复杂度
            if ($username == '') {
                $return['msg']  =   '用户名不能为空!';
                $return['msg'] = '用户名不能为空!';
            } elseif (CheckRegUser($username) == false && CheckRegEmail($username) == false) {
                $return['msg']  =   '用户名不得包含特殊字符!';
                $return['msg'] = '用户名不得包含特殊字符!';
            } elseif ($msg != '') {
                $return['msg']  =   $msg;
                $return['msg'] = $msg;
            } else {
                $usernameNum    =   $this->getMemberNum(array('username' => $username));
                $usernameNum = $this->getMemberNum(array('username' => $username));
                if ($usernameNum > 0) {
                    $return['msg'] = '用户名已存在,请重新输入!';
                }
            }
            if ($return['msg']) {
                $return['errcode']  =   8;
                $return['errcode'] = 8;
                return $return;
            }
        }
      /* 是否要输入手机号 */
        $needMobile     =   false;
        /* 是否要输入手机号 */
        $needMobile = false;
        if ($data['codeid'] == 2) {
            $needMobile =   true;
            $needMobile = true;
        } else if ($this->config['reg_real_name_check'] == 1) {
            $needMobile =   true;
            $needMobile = true;
        }
        if ($needMobile) {
            if ($data['moblie'] == '') {
                $return['msg']  =   '手机号码不能为空!';
                $return['msg'] = '手机号码不能为空!';
            } elseif (!CheckMobile($data['moblie'])) {
                $return['msg']  =   '手机格式错误!';
                $return['msg'] = '手机格式错误!';
            } else {
                $moblieNum      =   $this->getMemberNum(array('moblie' => $data['moblie']));
                $moblieNum = $this->getMemberNum(array('moblie' => $data['moblie']));
                if ($moblieNum > 0) {
                    $return['msg']  =   '手机已存在!';
                    $return['msg'] = '手机已存在!';
                }
            }
            if ($return['msg']) {
                $return['errcode']  =   8;
                $return['errcode'] = 8;
                return $return;
            }
        }
      /* 是否要输入email */
        $needEmail  =   false;
        /* 是否要输入email */
        $needEmail = false;
        if ($data['codeid'] == 3) {
            $needEmail  =   true;
            $needEmail = true;
        }
        if ($needEmail) {
            if ($data['email'] == '') {
@@ -3100,41 +3077,41 @@
                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'], '注册会员');
@@ -3145,44 +3122,44 @@
                }
            }
        }
      /* 手机注册和邮箱注册 */
        /* 手机注册和邮箱注册 */
        if ($data['codeid'] == '2') {
            $data['username'] = $data['moblie'];
        } elseif ($data['codeid'] == '3') {
            $data['username'] = $data['email'];
        }
        $password   =   $data['password'];
        $pwmsg      =   regPassWordComplex($password);//检测用户名复杂度
        $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']){
        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';
@@ -3234,7 +3211,7 @@
                $salt = substr(uniqid(rand()), -6);
                $pass = passCheck($data['password'], $salt);
            }
            if (isset($_COOKIE['wxid'])) {
                $source = '9';
            } elseif (isset($_SESSION['wx']['openid'])) {
@@ -3248,8 +3225,8 @@
            } else {
                $source = 1;
            }
         /* 生成uid */
            /* 生成uid */
            $adata['username'] = $data['username'];
            $adata['password'] = $pass;
            $adata['email'] = $data['email'];
@@ -3263,14 +3240,14 @@
            $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'];
                $adata['usertype'] = $data['reg_type'];
                if (isset($data['wxapp'])) {
                    if (isset($data['bdopenid'])) {
                        $adata['bdopenid'] = $data['bdopenid'];
@@ -3291,186 +3268,185 @@
                        $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'];
                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'];
            //马甲app内注册的
            if (isset($_SESSION['mag'])) {
                unset($_SESSION['mag']);
            }
         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));
            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{
                    } 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 {
                        $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{
            } else {
                $this->addErrorLog('', 1, $return['msg']);
                $return['msg'] = '注册失败';
                $return['errcode'] = 8;
                return $return;
         }
      }else{
            }
        } 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`'));
    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'],
                '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()
                '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'];
@@ -3491,19 +3467,19 @@
            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'];
@@ -3515,7 +3491,7 @@
            $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'];
@@ -3529,36 +3505,36 @@
            $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', '手机绑定');
                    }
@@ -3585,66 +3561,65 @@
                $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']);
    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`'));
            $user = $this->getInfo(array('uid' => $uid), array('field' => '`uid`,`username`,`email_status`,`moblie_status`,`password`,`salt`,`email`,`moblie`,`did`'));
            
            $return =   array();
            $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['provider'])) {
                    $user['provider'] = $data['provider'];
                }
                if (isset($data['iswap'])) {
                    $user['source'] = 2;
                }
                $this->activUser($user['uid'], $usertype, $user);
                
               if (!isset($data['wxapp'])) {
                if (!isset($data['wxapp'])) {
                    
                    $cookie = new cookie_model($this->db, $this->def);
                    $cookie->setcookie('usertype', intval($usertype), time() + 86400);
@@ -3653,15 +3628,15 @@
                if (isset($data['iswap'])) {
                    
                    if ($usertype == 1) {
                        $return['url'] = Url('wap').'member/index.php?c=addresume';
                        $return['url'] = Url('wap') . 'member/index.php?c=addresume';
                    } else {
                        
                        $return['url'] = Url('wap').'member/index.php?c=info';
                        $return['url'] = Url('wap') . 'member/index.php?c=info';
                    }
                    
                } else {
                    if ($usertype == 1) {
                        
                        $return['url'] = Url('member', array('c' => 'expect', 'act' => 'add'));
@@ -3670,78 +3645,77 @@
                        $return['url'] = Url('member', array('c' => 'info'));
                    }
                }
                $return['errcode']  =   1;
                $return['errcode'] = 1;
                
                // uni-app 需要token
                if (isset($data['wxapp'])) {
                    
                    $token        =   md5($user['username'].$user['password'].$user['salt'].$usertype);
                    $token = md5($user['username'] . $user['password'] . $user['salt'] . $usertype);
                    
                    $return['user'] =   array('uid' => $uid, 'usertype' => $usertype, 'token' => $token);
                    $return['user'] = array('uid' => $uid, 'usertype' => $usertype, 'token' => $token);
                }
            } else {
                
                $return['msg']      =   '请先注册';
                $return['errcode']  =   9;
                $return['msg'] = '请先注册';
                $return['errcode'] = 9;
            }
        } else {
            $return['msg']      =   '参数错误,请正确选择!';
            $return['errcode']  =   9;
            $return['msg'] = '参数错误,请正确选择!';
            $return['errcode'] = 9;
        }
        return $return;
    }
    /**
     * 选择身份
     * @param $uid
     * @param $usertype
     * @param array $user
     */
    public function activUser($uid, $usertype, $user = array())
    {
    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`'));
            $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'],
            $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()
                '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'];
@@ -3760,8 +3734,8 @@
            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();
@@ -3769,10 +3743,10 @@
        } 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'];
@@ -3794,36 +3768,36 @@
            $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', '手机绑定');
                    }
@@ -3851,225 +3825,225 @@
            }
        }
    }
    /**
     * @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`');
    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`');
            $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;
        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']);
    //快捷登录信息绑定
    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'];
                $result['errcode'] = 8;
                $result['url'] = $_SERVER['HTTP_REFERER'];
                return $result;
            }
            if (!empty($setData['did'])){
                $result['did']  =   $setData['did'];
            if (!empty($setData['did'])) {
                $result['did'] = $setData['did'];
            }
            $result['reg_ip']   =   $setData['reg_ip'];
            $result['reg_ip'] = $setData['reg_ip'];
            
            if($setData['utype'] == 'admin'){
            if ($setData['utype'] == 'admin') {
                
                $result['moblie']   =   $result['moblie'] ? $result['moblie'] : $setData['moblie'];
                $result['email']    =   $result['email'] ? $result['email'] : $setData['email'];
                $result['moblie'] = $result['moblie'] ? $result['moblie'] : $setData['moblie'];
                $result['email'] = $result['email'] ? $result['email'] : $setData['email'];
            }
            $nid    =   $this->upInfo(array('uid' => $uData['uid']), $result);
            $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('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('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'])));
                    }
                    
                    $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']));
                    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('&amp;', '&', $uData['lasturl']);
            $result['url']      =   $lasturl;
            }
            $result['msg'] = $nid ? '修改成功!' : '修改失败!';
            $result['errcode'] = $nid ? 9 : 8;
            $lasturl = str_replace('&amp;', '&', $uData['lasturl']);
            $result['url'] = $lasturl;
            return $result;
        }
    }
   function delMember($del){
    function delMember($del) {
        if (!empty($del)) {
            
            $return =   array();
            $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) {
@@ -4078,7 +4052,7 @@
                    }
                }
            }
            $comacc = $this->select_all('company_account', array('uid' => array('in', $delid)), '`uid`');
            if (is_array($comacc) && $comacc) {
                foreach ($comacc as $v) {
@@ -4096,15 +4070,15 @@
                    }
                }
            }
            $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`');
            $px = $this->select_all('px_train', array('uid' => array('in', $delid)), '`uid`');
            if (is_array($px) && $px) {
                foreach ($px as $v) {
                    if ($v['uid']) {
@@ -4112,7 +4086,7 @@
                    }
                }
            }
            $gq = $this->select_all('gq_info', array('uid' => array('in', $delid)), '`uid`');
            if (is_array($gq) && $gq) {
                foreach ($gq as $v) {
@@ -4121,304 +4095,304 @@
                    }
                }
            }
         $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 ? '会员删除成功' : '会员删除失败';
            $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['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);
    /**
     * 小程序和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'){
            } 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']    =  '您的账号已被锁定';
            $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)
            $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'];
            if (!empty($data['clientid'])) {
                $upLogin['clientid'] = $data['clientid'];
                $upLogin['deviceToken'] = $data['deviceToken'];
                //清除其他账号clientid
                $this->clearPushId($data['clientid'], $userinfo['uid']);
            }
            if ($data['provider'] == 'app'){
            if ($data['provider'] == 'app') {
                // app内微信登录
                $upLogin['app_wxid'] = $data['openid'];
            }else{
            } else {
                // 微信小程序内微信登录
                $upLogin['wxopenid'] = $data['openid'];
            }
            if (!empty($data['unionid'])){
            if (!empty($data['unionid'])) {
                $upLogin['unionid'] = $data['unionid'];
            }
            $this->upInfo(array('uid'=>$userinfo['uid']), $upLogin);
            if ($userinfo['usertype'] > 0){
            $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. '登录成功');
                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){
                $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);
                    $IntegralM = new integral_model($this->db, $this->def);
                    $IntegralM->invtalCheck($userinfo['uid'], $userinfo['usertype'], 'integral_login', '会员登录', 22);
                    
                    //登录日志
                    $logindata = array(
@@ -4429,744 +4403,754 @@
                }
            }
            
            $token  =  md5($userinfo['username'].$userinfo['password'].$userinfo['salt'].$userinfo['usertype']);
            $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);
            $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'])){
            if ($data['provider'] == 'weixin' && !empty($data['unionid']) && empty($this->config['mini_wxopen'])) {
                // 微信小程序内登录的,已绑定开放平台的,处理微信小程序绑定微信开放平台状态
                $new_config = array('mini_wxopen'=>1);
                $new_config = array('mini_wxopen' => 1);
                
                include 'config.model.php';
                $configM  =  new config_model($this->db, $this->def);
                $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;
   }
        } 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(
    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;
            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;
   }
        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'])){
                   //  同步登录时间
    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;
   }
                    //登录日志
                    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
@@ -5174,323 +5158,324 @@
     * @param string $provider
     * @return mixed
     */
   function fastReg($data = array(), $type = '', $provider = 'weixin')
   {
       // 微信小程序和百度小程序不需要验证
       if($type != 'wxxcx' && $data['moblie']!=''){
           // 验证手机号
         if(!CheckMobile($data['moblie'])){
            $return['msg']         =      '手机格式错误!';
         }else{
    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'])){
                $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{
                    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;
    }
    
               $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))));
               }
           }
       }
   }
    /**
     * 清除其他账号绑定的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))));
                }
            }
        }
    }
}
?>