Example #1
0
 /**
  * 第三方登录
  * @param unknown $data
  */
 public function trust_login($post)
 {
     $userPassport = kernel::single('b2c_user_passport');
     if ($userPassport->userObject->is_login()) {
         $this->rpcService->send_user_error('login_error', '您已经是登录状态,不需要重新登录');
     }
     /*
     openid: "1707357339",
     provider_code: "qzone",
     provider_openid: "ADB189CA2182398213E6FC0905BB0333",
     nickname: "是非亦航",
     realname: "是非亦航",
     avatar: "http://qzapp.qlogo.cn/qzapp/100278270/ADB189CA2182398213E6FC0905BB0333/100",
     email: "",
     gender: "1",
     address: "中国 广东 广州",
     province: "广东",
     city: "广州"
     */
     $data['provider_code'] = $post['provider_code'];
     $data['openid'] = $post['openid'];
     $data['nickname'] = $post['nickname'] ? $post['nickname'] : '';
     $data['realname'] = $post['realname'] ? $post['realname'] : '';
     $data['avatar'] = $post['avatar'] ? $post['avatar'] : '';
     $data['email'] = $post['email'] ? $post['email'] : '';
     $data['gender'] = $post['gender'] ? $post['gender'] : "2";
     $result['data'] = $data;
     $login_name = $this->trust_save_login_data($result, $msg);
     if (!$login_name) {
         $this->rpcService->send_user_error('login_error', $msg);
     }
     $row = app::get('pam')->model('auth')->getList('account_id,module_uid', array('module_uid' => $login_name));
     $member_id = $row[0]['account_id'];
     if (!$member_id) {
         $this->rpcService->send_user_error('login_error', '登录ID错误');
     }
     //记录登录信息
     $b2c_members_model = kernel::single('b2c_mdl_members');
     $member_point_model = kernel::single('b2c_mdl_member_point');
     $member_data = $b2c_members_model->getList('*', array('member_id' => $member_id));
     if (!$member_data) {
         kernel::single('b2c_service_vcode')->set_error_count();
         $data['needVcode'] = kernel::single('b2c_service_vcode')->status();
         //在登录认证表中存在记录,但是在会员信息表中不存在记录
         //$msg = $this->app->_('登录失败:会员数据存在问题,请联系商家或客服');
         //$this->splash('failed',null,$msg,true,$data);exit;
         $data['msg'] = '登录失败:会员数据存在问题,请联系商家或客服';
         $this->rpcService->send_user_error('login_error', $data);
     }
     $member_data = $member_data[0];
     $member_data['order_num'] = kernel::single('b2c_mdl_orders')->count(array('member_id' => $member_id));
     /*
      if($this->app->getConf('site.level_switch')==1)
      {
     $member_data['member_lv_id'] = $b2c_members_model->member_lv_chk($member_data['member_lv_id'],$member_data['experience']);
     }
     if($this->app->getConf('site.level_switch')==0)
     {
     $member_data['member_lv_id'] = $member_point_model->member_lv_chk($member_id,$member_data['member_lv_id'],$member_data['point']);
     }
     */
     $b2c_members_model->update($member_data, array('member_id' => $member_id));
     $this->userObject->set_member_session($member_id);
     $this->bind_member($member_id);
     $this->set_cookie('loginName', $_POST['uname'], time() + 31536000);
     //用于记住密码
     @kernel::single('b2c_mdl_cart_objects')->setCartNum();
     $member_data['session'] = $_SESSION;
     // 微店
     //$member_data['microshop_info']  = array();
     if ($member_data['member_type'] == 2) {
         $mdl = app::get('microshop')->model('shop');
         $filter = array('member_id' => $member_data['member_id']);
         if ($mic_info = $mdl->getDetail($filter)) {
             $member_data['microshop_info'] = $mic_info;
         }
     }
     $member_data['avatar'] = $member_data['avatar'] ? kernel::single('base_storager')->image_path($member_data['avatar']) : $this->app->res_url . '/images/top-bg.png';
     $member_data['cover'] = $member_data['cover'] ? kernel::single('base_storager')->image_path($member_data['cover']) : $this->app->res_url . '/images/top-bg.png';
     return $member_data;
 }