/** * 返回一个包含指定UID的用户信息数组,key为UID * @param string $uid_list 用户UID列表 * @return array */ public static function getUserInfo($uid_list) { //整理UID列表为一个可用的IN LIST $in_list = Util::formatIntList($uid_list); // 没有需要查询的用户ID if (!$in_list) { return array(); } // 取得数据库实例 $db = self::db(); // 取得数据表名称 $table = self::table('user'); // 准备用于查询的SQL语句 $sql = "SELECT `uid`,`uname` FROM {$table} WHERE `uid` " . "IN({$in_list}) AND `is_del`=0 ORDER BY FIELD(`uid`,{$in_list})"; // 查询内容,并把uid设置为键名,并返回新数组 return Util::arrayColumn($db->query($sql) ?: array(), null, 'uid'); }
/** * 根据用户Id,获取全部客户端连接ID * @param string|array $uid_list 用户ID列表,逗号分隔或一个数组 * @param bool $remove_current_user 如果为false,那么如果查询结果有当前用户将会保留 * @return array 返回一个包含指定用户id的客户端连接Id数组 */ public static function getClientByUser($uid_list, $remove_current_user = true) { $in_list = Util::formatIntList($uid_list); if (!$in_list) { return array(); } $where = "uid IN({$in_list})"; if ($remove_current_user) { $uid = (int) self::getLoggedUserInfo('uid'); if ($uid) { $where .= " AND uid<>{$uid}"; } } $db = self::db(); $table = self::table('message_ucmap'); $result = $db->select('uid,client_id')->from($table)->where($where)->query(); return $result ? Util::arrayColumn($result, 'client_id', 'uid') : array(); }