用户集

更新时间:2023-03-12 08:05

用户集是一个存放用户资料的仓库,多个项目如果配置使用同一个用户集,可以共享其中的用户数据。

用户集字段类型

用户集字段类型为整数,数字范围及含义见下表,字段以16进制表示;

范围含义唯一性
-0xFF ~ -0x80共享字段类型
-0x7F ~ -0x01共享字段类型
0x00 ~ 0x7f应用专属字段类型
0x80 ~ 0xFF应用专属字段类型

共享字段类型的字段,同项目的应用都可读取;应用专属字段类型的字段,当前应用有读写权限,其他应用只有读取的权限。
字段的值最长 50 字节。

公共约定共享字段类型

-0x9F ~ -0x1 为系统预置区段,请不要随意占用,具体已规定含义见上表

-0xFF ~ -0xC0 为应用预置区段。 友情提示,除非很必要把字段共享给其他应用,否则不建议使用此区段,以避免应用之间的冲突,如需使用请提审时告知

    // 唯一性字段区域
    const Type_UserName             = -0x1; // 用户名
    const Type_Email                = -0x2; // Email
    const Type_Mobile               = -0x3; // 手机
    const Type_OpenID_QQ            = -0x4; // QQ OPENID
    const Type_OpenID_WX            = -0x5; // 微信 OPENID
    
    const Type_ClientPlatform_01    = -0x31; // 客户端平台预留区段
    ...
    const Type_ClientPlatform_0F    = -0x3F;    
    
    // 非唯一性字段区域
    const Type_PassWord             = -0x80; // 密码
    const Type_PassWordHash         = -0x81; // 密码掩码
    const Type_MobileArea           = -0x82; // 手机区号
    
    const Type_ClientPlatform_11    = -0x91; // 客户端平台预留区段
    ...
    const Type_ClientPlatform_1F    = -0x9F;
    
    const Type_Credit_0             = -0xA0; // 公共积分预留
    const Type_MobileArea           = -0xA1; // 手机区号    区段
    ...
    const Type_Credit_16            = -0xAF;

用户集返回码

    const Ret_Success = 0;//成功
    const Ret_Exist = -1;//已存在
    const Ret_NotExist = -2;//不存在
    const Ret_NotInit = -3;//未初始化,可当做无数据处理,有写入操作时会自动进行初始化

接口列表

通过字段添加用户资料

Lib\Member::AddByFields($fields)

请求参数

参数类型含义
$fieldsarray待添加的用户资料,数组的 key 为字段类型,value 为字段的值

返回参数

参数类型含义
retint见“用户集返回码”
uuidint[Ret_Success] 添加的用户 uuid,一个不重复的长整型数字
existsarray[Ret_Exist] 添加失败,返回重复的字段类型(key)和对应的uuid(value)

创建成功后,应用可保存 uuid,此 id 代表用户的唯一身份


通过 uuid 增加用户资料

Lib\Member::AddByUUID($uuid, $fields)

请求参数

参数类型含义
$uuidint需增加资料的用户 uuid
$fieldsarray待增加的用户资料,数组的 key 为字段类型,value 为字段的值

返回参数

参数类型含义
retint见“用户集返回码”
existsarray[Ret_Exist] 增加失败,返回重复的字段类型(key)和对应的uuid(value)


通过 uuid 更新用户资料

Lib\Member::UpdateByUUID($uuid, $fields)

请求参数

参数类型含义
$uuidint待更新的用户 uuid
$fieldsarray待更新的用户资料,数组的 key 为字段类型,value 为字段的值

返回参数

参数类型含义
retint见“用户集返回码”
existsarray[Ret_Exist] 更新失败,返回重复的字段类型(key)和对应的uuid(value)

按 uuid 获取用户资料

Lib\Member::GetByUUID($uuid)

请求参数

参数类型含义
$uuidint待更新的用户 uuid

返回参数

参数类型含义
retint见“用户集返回码”
uuidint用户 uuid
fieldarray[Ret_Success] 返回用户的所有字段数据,包含字段类型(type)、字段的值(value)
extraFieldarray[Ret_Success] 返回所有非本应用的额外字段数据,以应用的 appid 分组,包含字段类型(key)、字段的值(value)

按照 uuid 数组批量获取用户

Lib\Member::ListByUUIDs($uuids, $fieldTypes)

请求参数

参数类型含义
$uuidint待更新的用户 uuid
$fieldTypesarray字段类型组成的数组

返回参数

参数类型含义
retint见“用户集返回码”
listarray[Ret_Success] 返回用户列表以及指定的字段数据,以用户的 uuid 分组,包含字段类型(key)、字段的值(value)

此批量接口不返回非本应用的额外字段数据


按字段查找并获取用户资料

Lib\Member::GetByField($fieldType, $fieldValue)

请求参数

参数类型含义
$fieldTypeint字段类型
$fieldValuemixed字段的值

返回参数

同 GetByUUID


删除用户指定的字段

Lib\Member::RemoveField($fields)

请求参数

参数类型含义
$fieldsarray待删除的用户资料,数组的 key 为字段类型,value 为字段的值

返回参数

直接返回“用户集返回码”所对应的值


删除用户

Lib\Member::RemoveByUUID($uuid)

请求参数

参数类型含义
$uuidint待删除的用户 uuid

返回参数

直接返回“用户集返回码”所对应的值

此接口会删除指定用户的所有字段,慎重


查找并删除用户

Lib\Member::RemoveByField($fieldType, $fieldValue)

请求参数

参数类型含义
$fieldTypeint字段类型
$fieldValuemixed字段的值

返回参数

直接返回“用户集返回码”所对应的值

此接口会删除指定用户的所有字段,慎重


拉取用户列表

Lib\Member::List($limit = array(), $fieldType = '', $fieldValue = null, $order = 'ASC')

请求参数

参数类型含义
$limitarray(可选)返回的数据条目数,按照格式 array($start, $number) 传递
$fieldTypemixed(可选)筛选条件字段类型
$fieldValuemixed(可选)筛选条件字段的值
$orderstring(可选)顺序,ASC 或者 DESC,传递 $order 时必须传递 $fieldType

$fieldType 可携带以下连接符

连接符含义
=相等,可省略
+、-加减运算
、&、^、&~位运算
>、<、<>、<=、>=比较
likelike 搜索,请自行包含"%"符号
in、notinin 集合,value 必须是数组

可用以下方式携带连接符

$fieldType = Type_UserName.' like';
$fieldValue = 'wit%';

目前用户集仅支持单字段筛选,复杂筛选请配合数据集实现


扩展接口

我们建议用户在自己应用中自行封装一个 Ext_Member 类,该类中包含如下例的 3 个方法,自行处理用户的登录、退出登录和获取当前登录态的功能,然后通过
Lib\Member::Ext_xxx 进行统一调用。 这样做的目的是为方便今后 WitFrame 去对接更多的客户端产品。

封装扩展接口

class Ext_Member {

    public static function Login($uuid) {
        ... 设置指定 uuid 的登录态
    }

    public static function Logout() {
        ... 清除当前的登录态
    }

    public static function Current() {
        ... 解析登录态返回 $uuid
        return $uuid;
    }
}

调用扩展接口

用户登录

Lib\Member::Ext_Login($uuid)

退出登录

Lib\Member::Ext_Logout()

返回当前登录用户的 uuid

Lib\Member::Ext_Current()