关系服务
1 概述
本文档是设备与用户基础关系服务接口定义。
基础关系提供:设备 -> 设备组 -> 用户组 -> 用户的关系模型的管理能力。默认情况下,云端会自动处理用户的人脸权限到关联设备的权限部署。每个项目下面的实体数量和关系数量不能超过一定上限,详见第3节。
基础关系可以简化业务平台对下发逻辑的处理。
在没有关系管理的情况下,下发人员权限要查询到关联的设备,再一一下发。复杂度是O(n);
有关系管理的情况下,只要正常更新人员权限即可。云端会管理所有关联设备的权限下发。用户复杂度是O(1)。云端会通过数据模型把同步结果推送给ISV。
2 接口列表
模块 | API名称 | API展示名称 | API路径 | API版本 |
用户管理 | saveDomainUser | 保存用户 | /domain/user/save | 1.0.0 |
deleteDomainUser | 删除用户 | /domain/user/delete | 1.0.0 | |
getDomainUser | 获取用户 | /domain/user/get | 1.0.0 | |
queryDomainUser | 查询用户 | /domain/user/query | 1.0.0 | |
saveDomainUserGroup | 保存用户组 | /domain/user/group/save | 1.0.0 | |
deleteDomainUserGroup | 删除用户组 | /domain/user/group/delete | 1.0.0 | |
queryDomainUserGroup | 查询用户组 | /domain/user/group/query | 1.0.0 | |
setUserGroupRelation | 绑定/解绑用户与用户组 | /domain/user/group/relation/set | 1.0.0 | |
queryUserByGroup | 查询用户组中的用户 | /domain/group/users/query | 1.0.0 | |
queryGroupByUser | 查询用户所属的用户组 | /domain/user/groups/query | 1.0.0 | |
设备管理 | saveDomainDeviceGroup | 保存设备组 | /domain/device/group/save | 1.0.0 |
deleteDomainDeviceGroup | 删除设备组 | /domain/device/group/delete | 1.0.0 | |
queryDomainDeviceGroup | 查询设备组 | /domain/device/group/query | 1.0.0 | |
setDeviceGroupRelation | 绑定/解绑设备与设备组 | /domain/device/group/relation/set | 1.0.0 | |
queryDeviceByGroup | 查询设备组中的设备 | /domain/group/devices/query | 1.0.0 | |
queryGroupByDevice | 查询设备所属的设备组 | /domain/device/groups/query | 1.0.0 | |
组关系管理 | setGroupRelation | 绑定/解绑用户组与设备组 | /domain/group/relation/set | 1.0.0 |
queryRelationByUserGroup | 查询用户组绑定的设备组 | /domain/user/group/relations/query | 1.0.0 | |
queryRelationByDeviceGroup | 查询设备组绑定的用户组 | /domain/device/group/relations/query | 1.0.0 | |
queryGroupRelation | 查询用户组和设备组的绑定关系 | /domain/group/relation/query | 1.0.0 | |
权限管理 | saveFaceImageV2 | 保存用户人脸 | /domain/face/image/save | 1.0.0 |
deleteFaceImageV2 | 删除用户人脸 | /domain/face/image/delete | 1.0.0 | |
状态管理 | queryPermStatusByUser | 查询用户的权限下发状态 | /domain/perm/status/user/query | 1.0.0 |
queryPermStatusByDevice | 查询设备的权限下发状态 | /domain/perm/status/device/query | 1.0.1 |
保存用户
路径:/domain/user/save
版本:1.0.0
入参:
名称 | 类型 | 是否必须 | 说明 |
userType | String | 是 | 用户类型,支持IDENTITY/OPEN |
userId | String | 是 | 用户ID,支持identityId/openId,最大支持64位 |
userName | String | 否 | 用户名,最大支持128位 |
mobile | String | 否 | 手机号,最大支持64位 |
出参:(无)
删除用户
路径:/domain/user/delete
版本:1.0.0
入参:
名称 | 类型 | 是否必须 | 说明 |
userType | String | 是 | 用户类型,支持IDENTITY/OPEN |
userId | String | 是 | 用户ID,支持identityId/openId,最大支持64位 |
出参:(无)
获取用户
路径:/domain/user/get
版本:1.0.0
入参:
名称 | 类型 | 是否必须 | 说明 |
userType | String | 是 | 用户类型,支持IDENTITY/OPEN |
userId | String | 是 | 用户ID,支持identityId/openId,最大支持64位 |
出参:
名称 | 类型 | 说明 |
userType | String | 用户类型 |
userId | String | 用户ID |
userName | String | 用户名 |
mobile | String | 手机号 |
userFace | JSON | 用户人脸结构体 |
faceId | String | 人脸ID |
imageUrl | String | 人脸图URL |
expiryTime | String | 人脸有效期,格式yyyy-MM-dd HH:mm:ss |
userQrCodes | List | 用户二维码列表(本期暂不实现) |
codeType | String | 二维码类型 |
qrCode | String | 二维码 |
startTime | String | 生效时间,格式YYYY-MM-DD hh:mm:ss |
endTime | String | 失效时间,格式YYYY-MM-DD hh:mm:ss |
maxScanTimes | int | 最大刷码次数 |
maxScanScope | String | 最大刷码次数作用范围,默认为每个设备独立计数(边缘专用) |
userCards | List | 用户卡列表(本期暂不实现) |
cardType | String | 卡类型 |
cardId | String | 卡号 |
startTime | String | 生效时间,格式YYYY-MM-DD hh:mm:ss |
endTime | String | 失效时间,格式YYYY-MM-DD hh:mm:ss |
查询用户
路径:/domain/user/query
版本:1.0.0
入参:
名称 | 类型 | 是否必须 | 说明 |
pageNo | int | 是 | 当前页码,从1开始 |
pageSize | int | 是 | 每页条数, 最大100条 |
出参:
名称 | 类型 | 说明 |
pageNo | int | 当前页码 |
pageSize | int | 每页条数 |
total | int | 总条数 |
data | List | 数据列表 |
userType | String | 用户类型 |
userId | String | 用户ID |
userName | String | 用户名 |
mobile | String | 手机号 |
保存用户组
路径:/domain/user/group/save
版本:1.0.0
入参:
名称 | 类型 | 是否必须 | 说明 |
userGroupId | String | 否 | 用户组ID,可由调用方指定或随机生成,最大支持64位,由字母、数字和横线、下划线以及点号组成 |
userGroupName | String | 是 | 用户组名称,最大支持32位 |
description | String | 否 | 描述信息,最大支持256位 |
出参:
名称 | 类型 | 说明 |
userGroupId | String | 用户组ID |
删除用户组
路径:/domain/user/group/delete
版本:1.0.0
入参:
名称 | 类型 | 是否必须 | 说明 |
userGroupId | String | 是 | 用户组ID,可由调用方指定或随机生成,最大支持64位,由字母、数字和横线、下划线以及点号组成 |
出参:(无)
查询用户组
路径:/domain/user/group/query
版本:1.0.0
入参:
名称 | 类型 | 是否必须 | 说明 |
pageNo | int | 是 | 当前页码,从1开始 |
pageSize | int | 是 | 每页条数, 最大100条 |
出参:
名称 | 类型 | 说明 |
pageNo | int | 当前页码 |
pageSize | int | 每页条数 |
total | int | 总条数 |
data | List | 数据列表 |
userGroupId | String | 用户组ID |
userGroupName | String | 用户组名称 |
description | String | 描述信息 |
绑定/解绑用户与用户组
路径:/domain/user/group/relation/set
版本:1.0.0
入参:
名称 | 类型 | 是否必须 | 说明 |
userGroupId | String | 是 | 用户组ID |
userType | String | 是 | 用户类型,支持IDENTITY/OPEN |
userId | String | 是 | 用户ID,支持identityId/openId,最大支持64位 |
operation | String | 是 | 绑定操作,支持BIND/UNBIND,即绑定与解绑 |
出参:(无)
查询用户组中的用户
路径:/domain/group/users/query
版本:1.0.0
入参:
名称 | 类型 | 是否必须 | 说明 |
userGroupId | String | 是 | 用户组ID |
pageNo | int | 是 | 当前页码,从1开始 |
pageSize | int | 是 | 每页条数, 最大100条 |
出参:
名称 | 类型 | 说明 |
pageNo | int | 当前页码 |
pageSize | int | 每页条数 |
total | int | 总条数 |
data | List | 数据列表 |
userType | String | 用户类型 |
userId | String | 用户ID |
userName | String | 用户名 |
mobile | String | 手机号 |
查询用户所属的用户组
路径:/domain/user/groups/query
版本:1.0.0
入参:
名称 | 类型 | 是否必须 | 说明 |
userType | String | 是 | 用户类型,支持IDENTITY/OPEN |
userId | String | 是 | 用户ID,支持identityId/openId,最大支持64位 |
pageNo | int | 是 | 当前页码,从1开始 |
pageSize | int | 是 | 每页条数, 最大100条 |
出参:
名称 | 类型 | 说明 |
pageNo | int | 当前页码 |
pageSize | int | 每页条数 |
total | int | 总条数 |
data | List | 数据列表 |
userGroupId | String | 用户组ID |
userGroupName | String | 用户组名称 |
description | String | 描述信息 |
保存设备组
路径:/domain/device/group/save
版本:1.0.0
入参:
名称 | 类型 | 是否必须 | 说明 |
deviceGroupId | String | 否 | 设备组ID,可由调用方指定或随机生成,最大支持64位,由字母、数字和横线、下划线以及点号组成 |
deviceGroupName | String | 是 | 设备组名称,最大支持32位 |
description | String | 否 | 描述信息,最大支持256位 |
出参:
名称 | 类型 | 说明 |
deviceGroupId | String | 设备组ID |
删除设备组
路径:/domain/device/group/delete
版本:1.0.0
入参:
名称 | 类型 | 是否必须 | 说明 |
deviceGroupId | String | 否 | 设备组ID,可由调用方指定或随机生成,最大支持64位,由字母、数字和横线、下划线以及点号组成 |
出参:(无)
查询设备组
路径:/domain/device/group/query
版本:1.0.0
入参:
名称 | 类型 | 是否必须 | 说明 |
pageNo | int | 是 | 当前页码,从1开始 |
pageSize | int | 是 | 每页条数, 最大100条 |
出参:
名称 | 类型 | 说明 |
pageNo | int | 当前页码 |
pageSize | int | 每页条数 |
total | int | 总条数 |
data | List | 数据列表 |
deviceGroupId | String | 设备组ID |
deviceGroupName | String | 设备组名称 |
description | String | 描述信息 |
绑定/解绑设备与设备组
路径:/domain/device/group/relation/set
版本:1.0.0
入参:
名称 | 类型 | 是否必须 | 说明 |
deviceGroupId | String | 是 | 设备组ID,如该ID未保存过,则系统会默认创建一条名称和描述信息为空的记录 |
iotId | String | 是 | 设备ID |
operation | String | 是 | 绑定操作,支持BIND/UNBIND,即绑定与解绑 |
出参:(无)
查询设备组中的设备
路径:/domain/group/devices/query
版本:1.0.0
入参:
名称 | 类型 | 是否必须 | 说明 |
deviceGroupId | String | 是 | 设备组ID |
pageNo | int | 是 | 当前页码,从1开始 |
pageSize | int | 是 | 每页条数, 最大100条 |
出参:
名称 | 类型 | 说明 |
pageNo | int | 当前页码 |
pageSize | int | 每页条数 |
total | int | 总条数 |
data | List | 数据列表 |
iotId | String | 设备ID |
查询设备所属的设备组
路径:/domain/device/groups/query
版本:1.0.0
入参:
名称 | 类型 | 是否必须 | 说明 |
iotId | String | 是 | 设备ID |
pageNo | int | 是 | 当前页码,从1开始 |
pageSize | int | 是 | 每页条数, 最大100条 |
出参:
名称 | 类型 | 说明 |
pageNo | int | 当前页码 |
pageSize | int | 每页条数 |
total | int | 总条数 |
data | List | 数据列表 |
deviceGroupId | String | 设备组ID |
deviceGroupName | String | 设备组名称 |
description | String | 描述信息 |
绑定/解绑用户组与设备组
路径:/domain/group/relation/set
版本:1.0.0
入参:
名称 | 类型 | 是否必须 | 说明 |
userGroupId | String | 是 | 用户组ID,如该ID未保存过,则系统会默认创建一条名称和描述信息为空的记录 |
deviceGroupId | String | 是 | 设备组ID,如该ID未保存过,则系统会默认创建一条名称和描述信息为空的记录 |
operation | String | 是 | 绑定操作,支持BIND/UNBIND,即绑定与解绑 |
出参:(无)
查询用户组绑定的设备组
路径:/domain/user/group/relations/query
版本:1.0.0
入参:
名称 | 类型 | 是否必须 | 说明 |
userGroupId | String | 是 | 用户组ID |
pageNo | int | 是 | 当前页码,从1开始 |
pageSize | int | 是 | 每页条数, 最大100条 |
出参:
名称 | 类型 | 说明 |
pageNo | int | 当前页码 |
pageSize | int | 每页条数 |
total | int | 总条数 |
data | List | 数据列表 |
deviceGroupId | String | 设备组ID |
deviceGroupName | String | 设备组名称 |
description | String | 描述信息 |
查询设备组绑定的用户组
路径:/domain/device/group/relations/query
版本:1.0.0
入参:
名称 | 类型 | 是否必须 | 说明 |
deviceGroupId | String | 是 | 设备组ID |
pageNo | int | 是 | 当前页码,从1开始 |
pageSize | int | 是 | 每页条数, 最大100条 |
出参:
名称 | 类型 | 说明 |
pageNo | int | 当前页码 |
pageSize | int | 每页条数 |
total | int | 总条数 |
data | List | 数据列表 |
userGroupId | String | 用户组ID |
userGroupName | String | 用户组名称 |
description | String | 描述信息 |
查询用户组和设备组的绑定关系
路径:/domain/group/relation/query
版本:1.0.0
入参:
名称 | 类型 | 是否必须 | 说明 |
pageNo | int | 是 | 当前页码,从1开始 |
pageSize | int | 是 | 每页条数, 最大100条 |
出参:
名称 | 类型 | 说明 |
pageNo | int | 当前页码 |
pageSize | int | 每页条数 |
total | int | 总条数 |
data | List | 数据列表 |
userGroupId | String | 用户组ID |
userGroupName | String | 用户组名称 |
userGroupDescription | String | 用户组描述信息 |
deviceGroupId | String | 设备组ID |
deviceGroupName | String | 设备组名称 |
deviceGroupDescription | String | 设备组描述信息 |
保存用户人脸
路径:/domain/face/image/save
版本:1.0.0
入参:
名称 | 类型 | 是否必须 | 说明 |
userType | String | 是 | 用户类型,支持IDENTITY/OPEN |
userId | String | 是 | 用户ID,支持identityId/openId,最大支持64位 |
userName | String | 否 | 用户名,最大支持128位 |
mobile | String | 否 | 手机号,最大支持64位 |
faceId | String | 否 | 人脸ID,最大支持64位 |
imageUrl | String | 否 | 人脸图URL,与imageBase64二选一 |
imageBase64 | String | 否 | 人脸图base64,与imageUrl二选一 |
faceExtInfo | String | 否 | 扩展字段 |
expiryTime | String | 否 | 过期时间,格式YYYY-MM-DD hh:mm:ss |
policy | String | 否 | 人脸匹配后人员通行策略:PERMISSION(默认)-允许;DENY-禁止通行 |
出参:(无)
删除用户人脸
路径:/domain/face/image/delete
版本:1.0.0
入参:
名称 | 类型 | 是否必须 | 说明 |
userType | String | 是 | 用户类型,支持IDENTITY/OPEN |
userId | String | 是 | 用户ID,支持identityId/openId,最大支持64位 |
出参:(无)
查询用户的权限下发状态
路径:/domain/perm/status/user/query
版本:1.0.0
入参:
名称 | 类型 | 是否必须 | 说明 |
userType | String | 是 | 用户类型,支持IDENTITY/OPEN |
userId | String | 是 | 用户ID,支持identityId/openId,最大支持64位 |
permType | String | 是 | 查询类型,当前只支持FACE |
pageNo | int | 是 | 当前页码,从1开始 |
pageSize | int | 是 | 每页条数, 最大100条 |
出参:
名称 | 类型 | 说明 |
pageNo | int | 当前页码 |
pageSize | int | 每页条数 |
total | int | 总条数 |
data | List | 数据列表 |
iotId | String | 设备ID |
facePerm | JSON | 人脸权限 |
- faceId | String | 人脸ID |
- syncTime | String | 下发时间 |
- status | String | 下发状态 |
查询设备的权限下发状态
路径:/domain/perm/status/device/query
版本:1.0.1
入参:
名称 | 类型 | 是否必须 | 说明 |
iotId | String | 是 | 设备ID |
permType | String | 是 | 查询类型,当前只支持FACE |
pageNo | int | 是 | 当前页码,从1开始 |
pageSize | int | 是 | 每页条数, 最大100条 |
出参:
名称 | 类型 | 说明 |
pageNo | int | 当前页码 |
pageSize | int | 每页条数 |
total | int | 总条数 |
data | List | 数据列表 |
userType | String | 用户类型 |
userId | String | 用户ID |
userName | String | 用户名 |
mobile | String | 手机号 |
facePerm | JSON | 人脸权限 |
- faceId | String | 人脸ID |
- syncTime | String | 下发时间 |
- status | String | 下发状态 |
3 使用限制
单个项目下,各类实体的数量与关系绑定的数量存在以下限制:
用户数上限:50000
设备数上限:500
用户组数上限:20
设备组数上限:20
单用户绑定的用户组数上限:10
单设备绑定的设备组数上限:10
单用户组绑定的设备组数上限:10
单设备组绑定的用户组数上限:10
如有特殊需求,请与阿里小二联系。人如有特殊需求,请与联阿里处理