public function detail() { $is_private = false; //是否允许显示隐私信息 if ($this->input['member_id']) { $field = 'm.member_id,m.guid,m.member_name,m.signature,m.type,m.type_name,m.gid,m.gradeid,m.groupexpiry,m.avatar,m.credits,m.status,m.isVerify,m.appid,m.appname,m.create_time,m.update_time,m.last_login_time,m.final_login_time,mb.nick_name,g.name as groupname,g.starnum,g.usernamecolor,g.icon as groupicon'; $condition = " AND m.member_id = " . intval($this->input['member_id']); } else { if ($this->input['guid']) { $field = 'm.member_id,m.guid,m.member_name,m.signature,m.type,m.type_name,m.gid,m.gradeid,m.groupexpiry,m.avatar,m.credits,m.status,m.isVerify,m.appid,m.appname,m.create_time,m.update_time,mb.nick_name,g.name as groupname,g.starnum,g.usernamecolor,g.icon as groupicon'; $condition = " AND m.guid = '" . trim($this->input['guid']) . "'"; } else { if ($this->user['user_id']) { $field = 'm.*,g.name as groupname,g.starnum,g.usernamecolor,g.icon as groupicon'; $is_private = true; //是否只可以取隐私数据 $condition = " AND m.member_id = " . intval($this->user['user_id']); } else { $this->errorOutput(NO_MEMBER_ID); } } } //会员信息 $leftjoin = ''; if (!$is_private) { $leftjoin = ' LEFT JOIN ' . DB_PREFIX . 'member_bind as mb ON mb.member_id = m.member_id'; } $leftjoin .= ' LEFT JOIN ' . DB_PREFIX . 'group as g ON m.gid=g.id'; $member = $this->mMember->get_member_info($condition, $field, $leftjoin); $member = $member[0]; if (empty($member)) { $this->errorOutput(NO_MEMBER); } $member_id = $member['member_id']; // 积分信息 $credits = $this->Members->membercredit($member_id, $is_on = 1, true, true); $member['credit'] = $credits[$member_id]; $this->Members->setMemberId($member_id); $gradeInfo = $this->Members->getMemberGrade(array($member['gradeid']), $member['credit']); if (is_array($gradeInfo)) { $member = array_merge($member, $gradeInfo); } if (empty($member['groupname'])) { $group_info = $this->Members->updategroup($member_id, 0); if ($group_info && is_array($group_info)) { foreach ($group_info as $key => $val) { $member[$key] = $val; } } } //获取勋章信息 $member_medal = $this->Members->get_member_medal(array($member_id), $field = 'member_id,medalid,expiration', 2); $medal_info = $this->Members->get_medal(array_keys($member_medal), 'id,name,image,brief'); $member = $this->Members->make_medal(array($member_id => $member), $medal_info, $member_medal, false); //绑定信息 //星星图标数据开始 $staricon = $this->Members->staricon(); $member['showstar'] = $this->Members->showstar($member['starnum'], $staricon); unset($member['starnum']); //星星图标数据结束 //获取用户签到信息 include CUR_CONF_PATH . 'lib/member_sign.class.php'; $Osign = new sign(); $member['isSign'] = $Osign->getIsSign($member_id); //获取用户签到信息结束 if ($is_private) { $condition = " AND mb.member_id = " . $member_id; $bind = $this->mMember->get_bind_info($condition); $blacklist = $this->Members->blacklist($member_id); $purview = $this->Members->showpurview($member['gid']); $is_exist_password = trim($member['password']) ? 1 : 0; unset($member['password'], $member['salt']); } $extension = array(); if ($member_id) { //扩展信息 $condition = " AND member_id = " . $member_id; $member_info = $this->mMemberInfo->show($condition); //可以根据分类id和分类字段分别查询,同时传值只有一个有效,分类id具有更高优先级 $condition = ''; //根据分类id查询 if (isset($this->input['extension_sort_id']) && !empty($this->input['extension_sort_id'])) { $condition = " AND field.extension_sort_id IN (" . trim($this->input['extension_sort_id']) . ")"; } //根据分类字段查询 if (empty($condition)) { if (isset($this->input['extension_sort']) && !empty($this->input['extension_sort'])) { $extension_sort = trim($this->input['extension_sort']); $condition = " AND sort.extension_sort IN ('" . $extension_sort . "')"; } } if (intval($this->input['app_id'])) { $extension = $this->mMemberInfo->extendDataProcessByApp($member_info, 1, $this->input['app_id']); } else { $extension = $this->mMemberInfo->extendDataProcess($member_info, 1, $condition); } } $return = $member; if ($is_private) { $return['bind'] = $bind; } if ($is_private) { //是否绑定手机 if ($bind) { $this->mMember->ExportbindData($bind, $return); } if (!$return['nick_name']) { $return['nick_name'] = $return['member_name']; } $return['nick_name'] = hg_hide_mobile($return['nick_name']); $return['mobile'] = $member['mobile'] ? $member['mobile'] : $return['mobile']; $return['email'] = $member['email'] ? $member['email'] : $return['email']; $return['is_exist_password'] = $is_exist_password; $return['blacklist'] = $blacklist[$member['member_id']]; $return['purview'] = $purview[$member['gid']] ? $purview[$member['gid']] : array(); $return['isComplete'] = isUserComplete($member['type']); $return['profilePercent'] = $this->mMember->profilePercentComplete($return); } // if ($this->input['version'] == CLIENT_VERSION) { $return = array('nick_name' => $return['member_name'], 'member_id' => $return['member_id'], 'avatar' => $return['avatar'] ? $return['avatar'] : array('host' => "", 'dir' => "", 'filepath' => "", 'filename' => "")); if ($is_private) { $return['token'] = $this->input['access_token']; $return['email'] = $return['email']; $return['is_exist_password'] = $is_exist_password; $return['is_exist_email'] = $return['email'] ? 1 : 0; $return['mobile'] = $return['mobile']; } } $return['extension'] = $extension ? $extension : array(); //查询好友关系 if ($this->input['member_id']) { $friend_ship = $this->getFriendship($member_id); $return['friendship'] = $friend_ship; } // $this->addItem($return); $this->output(); }
/** * 验证会员 * $member_name 会员名 * $password 密码 * $type 登陆类型 * $appid * $appkey */ public function verify_member() { try { $encrypt = $this->input['encrypt'] ? intval($this->input['encrypt']) : 0; $platform_id = trim($this->input['platform_id']); $password = $encrypt ? passport_decrypt(trim($this->input['password']), CUSTOM_APPKEY) : trim($this->input['password']); $type = trim($this->input['type']); $_type = trim($this->input['_type']); //防止本地M2O同步至UC后,再次验证本地密码BUG。 $identifierUserSystem = new identifierUserSystem(); $identifier = $identifierUserSystem->setIdentifier((int) $this->input['identifier'])->checkIdentifier(); //多用户系统 $ip = hg_getip(); $need_password_type = array('shouji', 'm2o', 'email'); $appid = intval($this->input['appid']); $appkey = trim($this->input['appkey']); //会员名 if (!$platform_id) { $this->errorOutput(NO_MEMBER_NAME); } //密码 if (!$password && in_array($type, $need_password_type)) { $this->errorOutput(NO_PASSWORD); } $condition = " AND mb.platform_id = '" . $platform_id . "' AND mb.type = '" . $type . "' AND mb.identifier = '" . $identifier . '\''; $_bind = $this->mMember->get_bind_info($condition); $bind = array(); if (is_array($_bind) && count($_bind) > 1) { foreach ($_bind as $v) { if ($v['inuc'] > 0) { $bind = $v; break; } } } elseif (is_array($_bind)) { $bind = $_bind[0]; } $member_id = intval($bind['member_id']); $platform_id = $bind['platform_id']; $condition = " AND m.member_id = " . $member_id; $fileds_array = array('member_id', 'member_name', 'password', 'salt', 'avatar', 'type', 'type_name', 'gid', 'gradeid', 'guid', 'signature', 'mobile', 'email', 'isVerify', 'identifier', 'last_login_device'); $fields = implode(',', $fileds_array); $member_info = $this->mMember->get_member_info($condition, $fields); $member_info = $member_info[0]; if (empty($member_info)) { $this->errorOutput(LOGIN_NOMEMBER_ERROR); } $isComplete = isUserComplete($member_info['type']); if (in_array($type, $need_password_type) && $_type != 'uc') { $encrypt_num = intval($this->input['encrypt_num']); if ($encrypt_num == 1) { $md5_password = md5($password . $member_info['salt']); } else { $md5_password = md5(md5($password) . $member_info['salt']); } if ($md5_password != $member_info['password']) { $this->errorOutput(PASSWORD_ERROR); } } else { //验证新浪微博、腾讯微博、QQ、人人、豆瓣 等 用户信息 //暂时不作处理 } //积分规则调用 $credit_rules = $this->Members->credits_rule('members_login_login', $member_info['member_id'], $coef = 1, $update = 1, APP_UNIQUEID); $copywriting_credit = copywriting_credit(array($credit_rules)); $check_Bind = new check_Bind(); $inuc = $check_Bind->check_uc($member_id, $type); if (!$inuc && ($_type == 'm2o' || $type == 'm2o') && $member_info['email']) { if ($inuc = $this->mMember->syncUcRegister($member_id, $member_info['member_name'], $password, $member_info['email'])) { $platform_id = $inuc; } } $return = array('user_id' => $member_info['member_id'], 'platform_id' => (string) $platform_id, 'inuc' => $inuc, 'user_name' => $member_info['member_name'], 'nick_name' => $bind['nick_name'], 'type' => $member_info['type'], 'avatar' => $member_info['avatar'], 'copywriting' => '登录成功', 'copywriting_credit' => $copywriting_credit, 'isVerify' => $member_info['isVerify'], 'identifier' => $member_info['identifier'], 'isComplete' => $isComplete); $return = array_merge($return, $member_info); $this->addItem($return); $this->output(); } catch (Exception $e) { $this->errorOutput($e->getMessage(), $e->getCode()); } }