同步项目白名单
获取该设备白名单信息,包含白名单总数,当设备启动拥有网络能力后需要在第一时间请求此接口同步白名单数据
一、获取白名单
url:SERVICE-ADDRESS
/device/whitelist/V4?appid=APPID
&sign=SIGN
&deviceCode=DEVICECODE
&lastSyncTime=LASTSYNCTIME
请求类型:GET
1、参数说明
参数 | 类型 | 是否必须 | 说明 | 备注 |
---|---|---|---|---|
appid | string | 是 | 厂商Id | |
sign | string | 是 | 签名 | |
deviceCode | string | 是 | 设备编码 | |
lastSyncTime | long | 是 | 上次最后查询时间 | 首次查询传0,查询全量白名单;之后每次传上次白名单查询返回值中的syncTime,查询增量白名单 |
2、返回字段说明
字段 | 字段名称 | 字段格式 | 备注 |
---|---|---|---|
syncTime | 同步时间 | Long | 本次白名单查询截至时间戳,供下一次白名单查询时,lastSyncTime参数赋值使用 |
totalCount | 白名单总人数 | Integer | 最终白名单数量(注:全量查询时,数量等于白名单列表数量。增量请求时:该数量为设备处理完增量变更后的最终数量,如不一致,可再次全量查询,进行对比修正。) |
version | 白名单接口版本 | Integer | 白名单版本(显示V4) |
whitelist | 白名单列表 | List |
白名单人员列表(Whitelist属性见"3、白名单人员") |
3、白名单人员(Whitelist)
字段 | 字段名称 | 字段格式 | 备注 |
---|---|---|---|
workerId | 白名单对象(工人或vip巡检人员)唯一标识 | String | 对应V3版本中的objectId(V3版本中的whitelistId废弃) 白名单对象唯一标识 考勤数据上报时的workerId参数即传此值 |
type | 白名单对象类型 | byte | 0.工人 1.巡视员 |
syncState | 状态 | String | 状态值:ADD,DELETE(增量同步状态,用于在增量获取白名单后,对设备中的白名单进行相应操作。ADD:设备中不存在则添加,存在则更新;DELETE:从设备中删除) |
name | 姓名 | String | |
photo | 人员证件照 | String | |
recentPhoto | 人员近照 | String | |
hasRight | 是否有门区权限 | boolean | 使用此字段判断工人能否通行,此字段为所有规则全部计算完后的结果,设备端不需要再单独计算业务规则(V3接口中的门区规则,入场教育,证书等规则都不需额外计算) |
tips | 通行提示信息 | String | 字符串,每一项为一条通行信息代码,用于在设备界面显示通行信息。包括禁止通行信息和通行警告信息(代码含义可从通行提示字典接口中获取。见"4、通行提示信息") |
二、获取白名单通行提示字典
URL:SERVICE-ADDRESS
/device/whitelist/V4/passTip?appid=APPID
&sign=SIGN
&deviceCode=DEVICECODE
请求类型:GET
1、参数说明
参数 | 类型 | 是否必须 | 说明 | 备注 |
---|---|---|---|---|
appid | string | 是 | 厂商Id | |
sign | string | 是 | 签名 | |
deviceCode | string | 是 | 设备编码 |
2、返回字段说明
字段 | 字段名称 | 字段格式 | 备注 |
---|---|---|---|
tipType | 通行信息提示类型 | byte | 0:允许通行 1:禁止通行 2:允许通行,警告 |
code | 通行信息代码 | String | 与白名单列表中Tip.code值对应 |
describe | 通行息提示 | String | 供设备展示的文字,或者自定义 |
三、白名单V3和V4版本区别
字段 | V3 | V4 | 备注 |
---|---|---|---|
返回字段 | 数量多 | 精简版,只返回通行相关的字段 | |
通行权限判断 | syncState字段和其余字段 | hasRight字段 | V4版本只返回一个最终的通行状态字段,所有的业务规则都在平台计算完成 |
门区规则 | hasRight字段 | 统一整合 | 在V4版本,门区规则和其余规则在云端计算后,返回hasRight字段最终结果 |
证书规则 | 通过certificateCount字段和证书规则计算 | 统一整合 | 在V4版本,证书规则和其余规则在云端计算后,返回hasRight字段最终结果 |
教育规则 | 通过approachEdu字段和教育规则计算 | 统一整合 | 在V4版本,教育规则和其余规则在云端计算后,返回hasRight字段最终结果 |
测温规则 | temperatureStatus字段 | 统一整合 | 在V4版本,测温规则和其余规则在云端计算后,返回hasRight字段最终结果 |
苏安码 | authStatus字段 | 统一整合 | 在V4版本,苏安码和其余规则在云端计算后,返回hasRight字段最终结果 |
健康码 | healthCode字段 | 统一整合 | 在V4版本,健康码和其余规则在云端计算后,返回hasRight字段最终结果 |
巡检人员和普通人员 | 两种人员返回字段不一致 | 字段精简后,返回字段一致 | |
whitelistId字段 | 业务无关,不建议使用 | 废弃 | |
objectId字段 | 白名单对象唯一标识 | 改名为workerId和考勤上报字段保持一致 | |
通行结果显示 | 需要设备结合获取的平台规则来显示对应的信息 | 每个人返回tipMsg,包含具体禁止通行或通行警告的信息,设备可结合通行字典对应的描述来显示 |
白名单更新(服务)
设备端启动MQTT后监听消息,假如有 whitelistupdate
的服务指令,则再次去开放平台调用增量白名单获取接口
- 场景1: 设备启动之后
- 场景2: 白名单数据变化需要通知设备重新增量获取
{
"service" : "whitelistupdate",
"data": {},
"ts": "1551863638000"
}
ts
为字符串型 "1551863638000",兼容设备上int长度不够
设备端接收到以上指令后去如下地址去请求白名单:
上报白名单更新完成(事件)
白名单下载成功后,发起Mqtt的链接,并发送一下事件,告诉服务端设备白名单更新成功
{
"client" : "2017050001",
"event" : "whitelistupdate",
"data": {
"syncTime" : "1551863638000",
"total": 100
},
"success": 1,
"error": "",
"ts": "1551863638000"
}
-
total
本地白名单人员总数 -
syncTime
服务端调用同步服务的时间,whitelist service
结构中的ts
- 服务端下发指令去增量更新白名单时,whitelist service 指令的ts
- 如果是开机启动就传当前时间就行
白名单图片下载
{SERVICE-ADDRESS}/download?key={recentPhoto}
白名单返回的近照为图片的OSSKey,需要用此Key再次发起请求才能获取近照图片
测试环境是:https://aecloud-test.glodon.com/glm/services/download?key=
正式环境是: https://xmgl.glodon.com/glm/services/download?key=
拼接此url在浏览器访问即可访问到图片
补充说明
- 现场管理下的区域(也即门区)与设备是有绑定关系,门区权限设置完毕后,人员的进出权限会随白名单下发到指定设备中,设备方无需针对门区权限做额外的业务逻辑处理。