用户集
更新时间: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)
请求参数
参数 | 类型 | 含义 |
---|---|---|
$fields | array | 待添加的用户资料,数组的 key 为字段类型,value 为字段的值 |
返回参数
参数 | 类型 | 含义 |
---|---|---|
ret | int | 见“用户集返回码” |
uuid | int | [Ret_Success] 添加的用户 uuid,一个不重复的长整型数字 |
exists | array | [Ret_Exist] 添加失败,返回重复的字段类型(key)和对应的uuid(value) |
创建成功后,应用可保存 uuid,此 id 代表用户的唯一身份
通过 uuid 增加用户资料
Lib\Member::AddByUUID($uuid, $fields)
请求参数
参数 | 类型 | 含义 |
---|---|---|
$uuid | int | 需增加资料的用户 uuid |
$fields | array | 待增加的用户资料,数组的 key 为字段类型,value 为字段的值 |
返回参数
参数 | 类型 | 含义 |
---|---|---|
ret | int | 见“用户集返回码” |
exists | array | [Ret_Exist] 增加失败,返回重复的字段类型(key)和对应的uuid(value) |
通过 uuid 更新用户资料
Lib\Member::UpdateByUUID($uuid, $fields)
请求参数
参数 | 类型 | 含义 |
---|---|---|
$uuid | int | 待更新的用户 uuid |
$fields | array | 待更新的用户资料,数组的 key 为字段类型,value 为字段的值 |
返回参数
参数 | 类型 | 含义 |
---|---|---|
ret | int | 见“用户集返回码” |
exists | array | [Ret_Exist] 更新失败,返回重复的字段类型(key)和对应的uuid(value) |
按 uuid 获取用户资料
Lib\Member::GetByUUID($uuid)
请求参数
参数 | 类型 | 含义 |
---|---|---|
$uuid | int | 待更新的用户 uuid |
返回参数
参数 | 类型 | 含义 |
---|---|---|
ret | int | 见“用户集返回码” |
uuid | int | 用户 uuid |
field | array | [Ret_Success] 返回用户的所有字段数据,包含字段类型(type)、字段的值(value) |
extraField | array | [Ret_Success] 返回所有非本应用的额外字段数据,以应用的 appid 分组,包含字段类型(key)、字段的值(value) |
按照 uuid 数组批量获取用户
Lib\Member::ListByUUIDs($uuids, $fieldTypes)
请求参数
参数 | 类型 | 含义 |
---|---|---|
$uuid | int | 待更新的用户 uuid |
$fieldTypes | array | 字段类型组成的数组 |
返回参数
参数 | 类型 | 含义 |
---|---|---|
ret | int | 见“用户集返回码” |
list | array | [Ret_Success] 返回用户列表以及指定的字段数据,以用户的 uuid 分组,包含字段类型(key)、字段的值(value) |
此批量接口不返回非本应用的额外字段数据
按字段查找并获取用户资料
Lib\Member::GetByField($fieldType, $fieldValue)
请求参数
参数 | 类型 | 含义 |
---|---|---|
$fieldType | int | 字段类型 |
$fieldValue | mixed | 字段的值 |
返回参数
同 GetByUUID
删除用户指定的字段
Lib\Member::RemoveField($fields)
请求参数
参数 | 类型 | 含义 |
---|---|---|
$fields | array | 待删除的用户资料,数组的 key 为字段类型,value 为字段的值 |
返回参数
直接返回“用户集返回码”所对应的值
删除用户
Lib\Member::RemoveByUUID($uuid)
请求参数
参数 | 类型 | 含义 |
---|---|---|
$uuid | int | 待删除的用户 uuid |
返回参数
直接返回“用户集返回码”所对应的值
此接口会删除指定用户的所有字段,慎重
查找并删除用户
Lib\Member::RemoveByField($fieldType, $fieldValue)
请求参数
参数 | 类型 | 含义 |
---|---|---|
$fieldType | int | 字段类型 |
$fieldValue | mixed | 字段的值 |
返回参数
直接返回“用户集返回码”所对应的值
此接口会删除指定用户的所有字段,慎重
拉取用户列表
Lib\Member::List($limit = array(), $fieldType = '', $fieldValue = null, $order = 'ASC')
请求参数
参数 | 类型 | 含义 |
---|---|---|
$limit | array | (可选)返回的数据条目数,按照格式 array($start, $number) 传递 |
$fieldType | mixed | (可选)筛选条件字段类型 |
$fieldValue | mixed | (可选)筛选条件字段的值 |
$order | string | (可选)顺序,ASC 或者 DESC,传递 $order 时必须传递 $fieldType |
$fieldType 可携带以下连接符
连接符 | 含义 | |
---|---|---|
= | 相等,可省略 | |
+、- | 加减运算 | |
、&、^、&~ | 位运算 | |
>、<、<>、<=、>= | 比较 | |
like | like 搜索,请自行包含"%"符号 | |
in、notin | in 集合,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()