软件协议文档
终端设备协议文档
功能&协议池(所有功能协议)
MQTT协议文档
HTTP协议文档
微光TLV协议文档
微光卡&码协议
功能模块&UI文档
人脸机
VF105
门禁标品MQTT协议文档(DejaOS版本)
Access control standard MQTT protocol document
VF系列HTTP协议接口文档V1.0.28(Vbar版本)
VF系列MQTT协议文档V1.37.0(Vbar版本)
VF系列-协议模式下通讯协议文档V1.0.4(Vbar版本)
VF203
门禁标品MQTT协议文档(DejaOS版本)
Access control standard MQTT protocol document
VF系列HTTP协议接口文档V1.0.28(Vbar版本)
VF系列-协议模式下通讯协议文档V1.0.4(Vbar版本)
VF系列-MQTT协议文档V1.37.2(Vbar版本)
VF 系列 HTTP 协议接口文档-V1.37.1(Vbar版本)
VF106
门禁标品MQTT协议文档(Android版本)
Access control standard MQTT protocol document
VF114
门禁标品MQTT协议文档(DejaOS版本)
Access control standard MQTT protocol document
VF系列HTTP协议接口文档V1.0.28(Vbar版本)
VF系列-协议模式下通讯协议文档V1.0.4(Vbar版本)
VF205
门禁标品MQTT协议文档(DejaOS版本)
VF系列HTTP协议接口文档V1.0.28(Vbar版本)
VF系列-协议模式下通讯协议文档V1.0.4(Vbar版本)
读头
EE200
读头标品TLV通讯协议
Read header standard TLV communication protocol
读头标品TLV通讯协议V3.10(Vbar版本)
TX200
读头标品TLV通讯协议
Read header standard TLV communication protocol
QT960
读头标品TLV通讯协议
Read header standard TLV communication protocol
QT660
读头标品TLV通讯协议
Read header standard TLV communication protocol
Q340
读头标品TLV通讯协议
Read header standard TLV communication protocol
M300
读头标品TLV通讯协议
Read header standard TLV communication protocol
读头标品TLV通讯协议V3.10(Vbar版本)
JL7000
读头标品TLV通讯协议
Read header standard TLV communication protocol
Q350
读头标品TLV通讯协议
Read header standard TLV communication protocol
MU86
读头标品TLV通讯协议
Read header standard TLV communication protocol
读头标品TLV通讯协议V3.10(Vbar版本)
MET
读头标品TLV通讯协议
Read header standard TLV communication protocol
扫码器TCP/HTT通讯协议V1.0(Vbar版本)
读头标品TLV通讯协议V3.10(Vbar版本)
M350
读头标品TLV通讯协议
Read header standard TLV communication protocol
读头标品TLV通讯协议V3.10(Vbar版本)
扫码器TCP/HTT通讯协议V1.0(Vbar版本)
DW200
读头标品TLV通讯协议(DejaOS版本)
Read header standard TLV communication protocol
读头标品HTTP&TCP协议文档(DejaOS版本)
读头标品HTTP&TCP协议文档(Vbar版本)
读头标品TLV通讯协议V3.10(Vbar版)
读头标品RS485一拖多协议V0.7(Vbar版本)
M340
读头标品TLV通讯协议
Read header standard TLV communication protocol
CR90
刷卡模块通信协议v3.0
CR90指令文档
微光指令:0x60 蓝牙设备控制
1.7/2.x扫码器配置字段说明文档
门禁
DW200
门禁标品MQTT协议文档(DejaOS版本)
Access control standard MQTT protocol document
门禁扫码器MQTT协议文档(Vbar版本)
MU86
门禁标品MQTT协议文档
Access control standard MQTT protocol document
门禁20180820 MQTT协议文档V1.0.2(Vbar版)
Q350
门禁标品MQTT协议文档
Access control standard MQTT protocol document
门禁20180820 MQTT协议文档V1.0.2(Vbar版)
MET
门禁标品MQTT协议文档
Access control standard MQTT protocol document
门禁20180820 MQTT协议文档V1.0.2(Vbar版)
M350
门禁标品MQTT协议文档
Access control standard MQTT protocol document
门禁20180820 MQTT协议V1.0.1(Vbar版本)
门禁20180820 MQTT协议文档V1.0.2(Vbar版本)
MP86
门禁20180820 MQTT协议文档V1.0.2(Vbar版本)
控制板
CC104
控制板标品MQTT协议文档
Control board standard MQTT protocol documentation
CC101
控制板标品MQTT协议文档
Control board standard MQTT protocol documentation
CC101标品20211101MQTT协议V3.6(Vbar版本)
平台服务协议文档
网关服务接口定义
门禁应用接口定义
工具文档
多弦产品API签名安全规则
海外锁
app和后台的mqtt协议
文档
-
+
首页
门禁应用接口定义
# 一. 概述 多弦办公云平台是一款通用的门禁SaaS云平台。平台主要包括两部分功能:一是设备网关功能,可以通过本平台的HTTP接口直接控制设备。二是门禁基础业务接口,包括:用户管理、设备管理、访客管理、通行记录管理等等相关接口。此文档主要描述平台对外提供的HTTP API接口,方便用户开发自己的业务系统。平台目前集成了人脸、二维码等多款设备。 接口只支持 GET 和 POST 多弦办公云平台版本支持多租户,租户只能访问自己租户下的数据,所以需要使用 AppKey来区分租户标识,用 HMAC 签名机制来保证安全,请参考 [多弦产品API签名安全规则](../278) # 二. 北向接口 ## 1. 人员查询 ##### 接口描述 - 分页获取当前组织下的所有人员信息 ##### 请求URL - `http://serveraddr:port/saas/api/user/findAll` ##### 请求方式 - **GET** ##### Query参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |name |否 |string |人员姓名 |- | |phone |否 |string |人员姓名 |- | |page |否 |string |第几页(缺省1) |- | |size |否 |string |每页大小(缺省20) |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/user/findAll?name=李雷 ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容,详见下方响应示例 |- | ##### 响应示例 ``` json { "code": 1, "msg": "查询成功", "data": { "totalPages": 1, //返回的总页数 "totalElements": 1, //返回的元素总数 "number": 0, //当前第几页,从0开始 "size": 20, //每页的元素个数 "numberOfElements": 1, //返回当前页的元素数量,如果是最后一页有可能这个值和size不一致 "content": [ //返回的真正数据列表 { "id": "r5hzq9ale7rhey3o", //人员id "type": 0, //人员类型;1超管;2子管理员;0普通人员; "name": "李雷", //姓名 "phone": "19999999999", //电话 "state": 1, //状态:0 禁用、1 启用 "sex": null, //性别;1男2女0未设置 "avatar": null, //头像地址 "userGroupId": "a4ravef3hv3547t1", //人员组id "userGroupName": "人员分组1", //人员组名称 "voucherCountList": { "face": 0, //人脸凭证数量 "qrcode": 1, //二维码凭证数量 "fingerprint": 0, //指纹凭证数量 "card": 0 //卡凭证数量 }, "remark": "", //备注 "createTime": "2023-03-02 11:14:07" //加入组织时间 } ] } } ``` ## 2. 人员删除 ##### 接口描述 - 批量删除当前组织下的人员信息 ##### 请求URL - `http://serveraddr:port/saas/api/user/deleteAll` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |-|是 |string[] |人员id的数组 |item 类型: string | ##### 请求示例 ``` json http://serveraddr:port/saas/api/user/deleteAll [ "zriciw8ww96vlamt", "r5hzq9ale7rhey3o" ] ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容 |- | ##### 响应示例 ``` json { "code": 1, "msg": "删除成功", "data": null } ``` ## 3. 人员添加 ##### 接口描述 - 批量为当前组织添加人员信息 ##### 请求URL - `http://serveraddr:port/saas/api/user/insert` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |- |是 |object[] |人员添加对象的列表 |- | |--id |是 |string |人员id |- | |--name |是 |string |人员姓名 |- | |--phone|是 |string |人员手机号 |- | |--userGroupId|否 |string |人员分组id |- | |--type |否 |string |人员类型:2子管理员;0普通人员。缺省普通人员 |- | |--password |否 |string |自定义密码的MD5(缺省为123456的MD5) |- | |--remark|否 |string |备注 |- | |--extra |否 |string |自定义字段数据,json格式:{key:value} |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/user/insert [ { "id":"zriciw8ww96vlamt", "name": "李雷", "phone": "19999999999", "remark": "", "type": 0 }, { "id":"r5hzq9ale7rhey3o", "name": "韩梅梅", "phone": "16666666666", "remark": "", "type": 0 } ] ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容 |- | ##### 响应示例 ``` json { "code": 1, "msg": "添加成功", "data": null } ``` ## 4. 人员更新 ##### 接口描述 - 批量为当前组织更新人员信息 ##### 请求URL - `http://serveraddr:port/saas/api/user/update` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |--id |是 |string |人员id |- | |--name |否 |string |人员姓名 |- | |--userGroupId|否 |string |人员分组id |- | |--type |否 |string |人员类型:2子管理员;0普通人员 |- | |--password |否 |string |自定义密码的MD5(缺省为123456的MD5) |- | |--remark|否 |string |备注 |- | |--extra |否 |string |自定义字段数据,json格式:{key:value} |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/user/update { "id":"zriciw8ww96vlamt", "name": "李雷", "remark": "", "type": 0 } ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容 |- | ##### 响应示例 ``` json { "code": 1, "msg": "添加成功", "data": null } ``` ## 5. 人员分组查询 ##### 接口描述 - 获取当前组织下的所有人员分组信息 ##### 请求URL - `http://serveraddr:port/saas/api/user/group/findAll` ##### 请求方式 - **GET** ##### Query参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/user/group/findAll ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容,详见下方响应示例 |- | ##### 响应示例 ``` json { "code": 1, "msg": "", "data": [ { "id": "junxmq05ju6irly1", //人员分组id "createTime": "2023-03-09 15:12:39", //创建时间 "updateTime": "2023-03-09 15:12:46", //更新时间 "name": "人员分组1" //人员分组名称 } ] } ``` ## 6. 人员分组添加 ##### 接口描述 - 批量为当前组织添加人员分组 ##### 请求URL - `http://serveraddr:port/saas/api/user/group/insert` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |- |是 |object[] |人员分组添加对象的列表 |- | |--id|是 |string |人员分组id |- | |--name |是 |string |人员分组名称 |- | |--parentId |是 |string |人员分组父分组id,如果直接在根节点新建分组传“root” |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/user/group/insert [ { "id": "junxmq05ju6irly1", "name": "人员分组1", "parentId": "root" //作为根节点的一个子分组 }, { "id": "271hage05ju6irly1", "name": "人员分组2", "parentId": "junxmq05ju6irly1” //作为”人员分组1“的一个子分组 } ] ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容 |- | ##### 响应示例 ``` json { "code": 1, "msg": "添加成功", "data": null } ``` ## 7. 人员分组更新 ##### 接口描述 - 修改分组名 ##### 请求URL - `http://serveraddr:port/saas/api/user/group/update` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |- |是 |object[] |人员分组更新对象的列表 |- | |--groupId|是 |string |人员分组id |- | |--groupName |是 |string |人员分组名称 |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/user/group/update { "groupId": "271hage05ju6irly1", "groupName": "人员分组5" } ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容 |- | ##### 响应示例 ``` json { "code": 1, "msg": "操作成功", "data": null } ``` ## 8. 人员分组删除 ##### 接口描述 - 批量删除当前组织下的人员信息 ##### 请求URL - `http://serveraddr:port/saas/api/user/group/deleteAll` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |-|是 |string[] |人员id的数组 |item 类型: string | ##### 请求示例 ``` json http://serveraddr:port/saas/api/user/group/deleteAll [ "junxmq05ju6irly1" ] ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容 |- | ##### 响应示例 ``` json { "code": 1, "msg": "删除成功", "data": null } ``` ## 9. 设备查询 ##### 接口描述 - 获取当前组织下的所有人员分组信息 ##### 请求URL - `http://serveraddr:port/saas/api/access/device/findAll` ##### 请求方式 - **GET** ##### Query参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |name | 否 |String| 设备名称 | | |model | 否 |String| 设备型号 | | |uuid | 否 |String| 设备SN | | |state | 否 |String| 状态(0启用、1禁用) | | |online | 否 |String| 在线状态(1在线0离线) | | |page | 否 |string| 第几页(缺省1) |- | |size | 否 |string| 每页大小(缺省10) |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/access/device/findAll ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容,详见下方响应示例 |- | ##### 响应示例 ``` json { "code": 1, "msg": "查询成功", "data": { "totalPages": 1, //返回的总页数 "totalElements": 1, //返回的元素总数 "number": 0, //当前第几页,从0开始 "size": 20, //每页的元素个数 "numberOfElements": 1, //返回当前页的元素数量,如果是最后一页有可能这个值和size不一致 "content": [ //返回的真正数据列表 { "id": "ryyctbl1qltmdsh0", //设备id "uuid": "EVT5aUbnSJCB", //设备uuid "name": "公司大门", //设备名称 "state": "0", //设备状态 0启用、1禁用 "no": "1", //门控编号 "doorSensorState": 1, //门磁状态 1:门磁开、0:门磁关 "groupId": "", //设备分组id "groupName": "", //设备分组名 "remark": "", //备注 "model": "M350", //设备型号 "online": 0, //状态0离线,1在线 "gateControls": "1" //门控设备编号列表,用逗号“,”分隔 } ] } } ``` ## 10. 设备添加 ##### 接口描述 - 批量为当前组织添加设备 ##### 请求URL - `http://serveraddr:port/saas/api/access/device/insert` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |name |是 |string |设备名称 |- | |uuid |是 |string |设备uuid |- | |model |是 |string |设备型号 大写 如:“VF203” |- | |groupId |否 |string |设备分组id |- | |remark |否 |string |备注 |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/access/device/insert { "name":"设备", "uuid":"xiaoyu", "model":"VF203" } ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容 |- | ##### 响应示例 ``` json { "code": 1, "msg": "添加成功", "data": null } ``` ## 11. 设备更新 ##### 接口描述 - 修改分组名 ##### 请求URL - `http://serveraddr:port/saas/api/access/device/update` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |--id|是 |string |设备id |- | |--name |否 |string |名称 |- | |--groupId|否 |string |分组id |- | |--groupName |否 |string |分组名称 |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/access/device/update { "id":"ryyctbl1qltmdsh0", "name":"公司前门" } ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容 |- | ##### 响应示例 ``` json { "code": 1, "msg": "操作成功", "data": null } ``` ## 12. 设备删除 ##### 接口描述 - 批量删除当前组织下的设备信息 ##### 请求URL - `http://serveraddr:port/saas/api/access/device/deleteAll` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |uuids|是 |string[] |设备uuid的数组 |item 类型: string | ##### 请求示例 ``` json http://serveraddr:port/saas/api/access/device/deleteAll { "uuids": ["zzzsikong"] } ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容 |- | ##### 响应示例 ``` json { "code": 1, "msg": "删除成功", "data": null } ``` ## 13. 照片文件上传 ##### 接口描述 - 涉及到刷脸权限的人脸凭证需要先将人脸照片上传至服务器中,使用该接口将照片base64上传,而后获取该照片的id,后续使用该id号代表上传的人脸图片即可。 建议:照片存储空间不宜过大,照片太大会导致设备存储空间不足而导致人脸注册失败,同时也影响数据传输效率,建议300kb以内。 同时照片尺寸尽量减小。 ##### 请求URL - `http://serveraddr:port/saas/api/voucher/upload` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |-|是 |object |文件上传对象 | | |--picBase64|是 |string |人脸照片的base64数据 | | |--name|是 |string |文件名称(不可重复) | | |--userId|是 |string |把人脸和对应的人员唯一标识绑定,(访客可使用手机号作为userId) | | ##### 请求示例 ``` json http://serveraddr:port/saas/api/voucher/upload { "picBase64":"/9j...", //base64数据 "name":"李雷20230306101236" //文件名称 } ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容 |- | ##### 响应示例 ``` json { "code": 1, "msg": "上传成功", "data": "85e09fde8c494ef3b4a0a2cfc3c19888" //照片id,后面发送face类型的权限使用 } ``` ## 14. 凭证添加 ##### 接口描述 - 批量添加凭证(二维码凭证无需添加,人员新增时会自动生成二维码凭证) ##### 请求URL - `http://serveraddr:port/saas/api/voucher/insert` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |-|是 |object[] |凭证添加对象的列表 | | |--userId|是 |String| 人员Id | | |--voucherType|是 |String|凭证类型(人脸:face;卡:card;二维码:qrcode;指纹:fingerprint;密码:password;车牌:registrationPlate;) | | |--voucherValue|是 |String|凭证值 (卡号,人脸照片id,密码,指纹特征值或者车牌号) | | ##### 请求示例 ``` json http://serveraddr:port/saas/api/voucher/insert [ { "userId": "r5hzq9ale7rhey3o", "voucherType": "card", "voucherValue": "12345678" } ] ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容 |- | ##### 响应示例 ``` json { "code": 1, "msg": "添加成功", "data": null } ``` ## 15. 凭证查询 ##### 接口描述 - 通过userId进行凭证查询 ##### 请求URL - `http://serveraddr:port/saas/api/voucher/findByUserId` ##### 请求方式 - **GET** ##### Query参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |userId|是 |String |人员id | | ##### 请求示例 ``` json http://serveraddr:port/saas/api/voucher/findByUserId?userId=r5hzq9ale7rhey3o ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容(详见下方示例) |- | ##### 响应示例 ``` json { "code": 1, "msg": "查询成功", "data": [ { "id": "7oaxljlim06av8bn", //凭证id "name": "李雷qrcode", //凭证名称 "value": "r5hzq9ale7rhey3o", //凭证值 "voucherType": "qrcode", //凭证类型 "userId": "r5hzq9ale7rhey3o", //人员id "username": "李雷", //人员姓名 "userPhone": "19999999999" //人员手机号 }, { "id": "g5l3kxx3wq49gib0", "name": "李雷card", "value": "12345678", "voucherType": "card", "userId": "r5hzq9ale7rhey3o", "username": "李雷", "userPhone": "19999999999" } ] } ``` ## 16. 凭证删除(通过凭证id删除) ##### 接口描述 - 通过凭证id批量删除凭证 ##### 请求URL - `http://serveraddr:port/saas/api/voucher/deleteByIds` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |-|是 |string[] |凭证id的数组 |item 类型: string | ##### 请求示例 ``` json http://serveraddr:port/saas/api/voucher/deleteByIds [ "kmfyl9inko8w93vn" ] ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容 |- | ##### 响应示例 ``` json { "code": 1, "msg": "删除成功", "data": null } ``` ## 17. 凭证删除(通过UserId、凭证类型和凭证值进行删除) ##### 接口描述 - 通过UserId、凭证类型和凭证值进行批量删除凭证 ##### 请求URL - `http://serveraddr:port/saas/api/voucher/delete` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |-|是 |object[] |凭证添加对象的列表 | | |--userId|是 |String| 人员Id | | |--voucherType|是 |String|凭证类型(人脸:face;卡:card;二维码:qrcode;指纹:fingerprint;密码:password;) | | |--voucherValue|是 |String|凭证值 (卡号,人脸照片id,密码,或者指纹特征值) | | ##### 请求示例 ``` json http://serveraddr:port/saas/api/voucher/delete [ { "userId": "r5hzq9ale7rhey3o", "voucherType": "card", "voucherValue": "12345678" } ] ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容 |- | ##### 响应示例 ``` json { "code": 1, "msg": "删除成功", "data": null } ``` ## 18. 访客查询 ##### 接口描述 - 访客记录查询 ##### 请求URL - `http://serveraddr:port/saas/api/visit/findAll` ##### 请求方式 - **GET** ##### Query参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |name|是 |String |访客姓名 | | |phone|是 |String |访客手机号 | | |state|是 |Integer |访客状态:1已通过;0待审核;-1已取消;2已到;3未到 | | |visitStartTime|是 |String |访问开始时间 (如:2023-03-01 00:00:00) | | |visitEndTime|是 |String |访问结束时间 (如:2023-03-02 00:00:00) | | |page | 否 |string| 第几页(缺省1) |- | |size | 否 |string| 每页大小(缺省10) |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/visit/findAll?name=访客&visitStartTime=2023-03-09 00:00:00&visitEndTime=2023-03-11 00:00:00 ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容(详见下方示例) |- | ##### 响应示例 ``` json { "code": 1, "msg": "查询成功", "data": { "totalPages": 1, //返回的总页数 "totalElements": 1, //返回的元素总数 "number": 0, //当前第几页,从0开始 "size": 20, //每页的元素个数 "numberOfElements": 1, //返回当前页的元素数量,如果是最后一页有可能这个值和size不一致 "content": [ //返回的真正数据列表 { "id":"kmfyl9inko8w93vn", //访客记录id "name": "访客", //访客姓名 "phone": "19900990001", //访客电话 "state": -1, //访客状态 1已通过;0待审核;-1已取消;2已到;3未到 "visitorCodeUrl": "127.0.0.1:8099/visitor-office/code.html?visitorId=45aif1k989ksh83u&beginTime=1678341600&endTime=1678428000", //访客通行码地址 "visitStartTime": "2023-03-09 14:00:00", //访问权限有效期开始时间 "visitEndTime": "2023-03-10 14:00:00", //访问权限有效期结束时间 "remark": "", //访客备注 "auditTime": "2023-03-09 14:50:44", //审批时间 "auditName": "李雷", //审批人姓名 "inviteId": "mk53ie0zzqpqzzxx", //邀请人ID "inviteName": "李雷" //邀请人姓名 } ] } } ``` ## 19. 访客添加 ##### 接口描述 - 批量添加访客,访客添加前需要确认访客权限组中是否含有设备。 ##### 请求URL - `http://serveraddr:port/saas/api/visit/insert` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |-|是 |object[] |凭证添加对象的列表 | | |--permissionGroupId|是 |String| 权限组id| | |--name|是 |String| 访客姓名| | |--phone|是 |String|访客手机号 (与email有一个必填) | | |--email|是 |String|访客邮箱 (与phone有一个必填) | | |--visitStartTime|是 |LocalDateTime| 来访开始时间(yyyy-MM-dd HH:mm:ss) | | |--visitEndTime|是 |LocalDateTime| 来访结束时间(yyyy-MM-dd HH:mm:ss) | | |--userId|否 |String| 被访人id | | |--faceDate|否 |String| 访客人脸照片id | | |--remark|否 |String| 来访是由等备注 | | ##### 请求示例 ``` json http://serveraddr:port/saas/api/visit/insert [ { "permissionGroupId": "c7s6654a7e8f799281", "name": "访客1", "phone": "18855656666", "faceDate": "", "visitStartTime": "2023-03-12 11:00:00", "visitEndTime": "2023-03-13 11:00:00", "inviteId": "r5hzq9ale7rhey3o", "inviteName": "李雷", "remark": "" } ] ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容 |- | ##### 响应示例 ``` json { "code": 1, "msg": "邀请成功", "data": null } ``` ## 20. 访客记录删除 ##### 接口描述 - 通过访客记录id批量删除访客记录 ##### 请求URL - `http://serveraddr:port/saas/api/visit/deleteAll` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |-|是 |string[] |凭证id的数组 |item 类型: string | ##### 请求示例 ``` json http://serveraddr:port/saas/api/visit/deleteAll [ "kmfyl9inko8w93vn" ] ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容 |- | ##### 响应示例 ``` json { "code": 1, "msg": "删除成功", "data": null } ``` ## 21. 访客取消 ##### 接口描述 - 访客手机号或邮箱(有一个必填),以及访客权限组id对访客进行取消操作,访客取消后,将没有权限通行该权限组任何设备。 ##### 请求URL - `http://serveraddr:port/saas/api/visit/visitCancel` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |-|是 |object[] |对象数组 |item 类型: object(注意:数组元素不可超过100个) | |-visitPhone|否 |String |访客手机号 | 邮箱和手机号需要有一个必填 | |-visitEmail|否 |String |访客邮箱 | 邮箱和手机号需要有一个必填 | |-permissionGroupId|是 |String |权限组id | | ##### 请求示例 ``` json http://serveraddr:port/saas/api/visit/visitCancel [ { "visitPhone":"18800000000", "permissionGroupId":"c35a877bad54f9921bfed" }, { "visitEmail":"1880000000@qq.com", "permissionGroupId":"45ca877bad54f9921bfed" } ] ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容 |- | ##### 响应示例 ``` json { "code": 1, "msg": "操作成功", "data": null } ``` ## 22. 权限分组查询 ##### 接口描述 - 查询 ##### 请求URL - `http://serveraddr:port/saas/api/permission/group/findAll` ##### 请求方式 - **GET** ##### Query参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |name | 否 |string| 权限组名称 |- | |page | 否 |string| 第几页(缺省1) |- | |size | 否 |string| 每页大小(缺省10) |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/permission/group/findAll ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容,详见下方响应示例 |- | ##### 响应示例 ``` json { "code": 1, "msg": "查询成功", "data": { "totalPages": 1, //返回的总页数 "totalElements": 1, //返回的元素总数 "number": 0, //当前第几页,从0开始 "size": 20, //每页的元素个数 "numberOfElements": 1, //返回当前页的元素数量,如果是最后一页有可能这个值和size不一致 "content": [ //返回的真正数据列表 { "groupId": "lqc7kdu79xteg9g7", //权限组id "name": "组织人员", //权限组名称 "userCount": 3, //权限组人数 "deviceCount": 1, //权限组设备数 "timePeriod": "{\"type\":0}" //权限组时间规则 } ] } } ``` ## 23. 权限分组添加 ##### 接口描述 - 添加 ##### 请求URL - `http://serveraddr:port/saas/api/permission/group/insert` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |id|是 |string |权限分组id |- | |name |是 |string |权限分组名称 |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/permission/group/insert { "id": "67ac7b301307460b", "name": "权限分组1", } ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容 |- | ##### 响应示例 ``` json { "code": 1, "msg": "添加成功", "data": null } ``` ## 24. 权限分组更新 ##### 接口描述 - 修改分组名 ##### 请求URL - `http://serveraddr:port/saas/api/permission/group/update` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |- |是 |object[] |人员分组更新对象的列表 |- | |--groupId|是 |string |人员分组id |- | |--groupName |是 |string |人员分组名称 |- | |--timePeriod |是 |object |权限时间规则 |参考附录 | ##### 请求示例 ``` json http://serveraddr:port/saas/api/permission/group/update { "groupId": "271hage05ju6irly1", "groupName": "权限分组5" } ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容 |- | ##### 响应示例 ``` json { "code": 1, "msg": "操作成功", "data": null } ``` ## 25. 权限分组删除 ##### 接口描述 - 批量删除当前组织下的人员信息 ##### 请求URL - `http://serveraddr:port/saas/api/permission/group/deleteAll` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |ids|是 |string[] |人员id的数组 |item 类型: string | ##### 请求示例 ``` json http://serveraddr:port/saas/api/permission/group/deleteAll { "ids":["67ac7b301307460b"] } ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容 |- | ##### 响应示例 ``` json { "code": 1, "msg": "删除成功", "data": null } ``` ## 26. 权限分组人员查询 ##### 接口描述 - 获取当前组织下的某人员分组里的人员信息 ##### 请求URL - `http://serveraddr:port/saas/api/permission/group/findSelectedUser` ##### 请求方式 - **GET** ##### Query参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |groupId | 否 |string| 权限组id |- | |page | 否 |string| 第几页(缺省1) |- | |size | 否 |string| 每页大小(缺省10) |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/permission/group/findSelectedUser ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容,详见下方响应示例 |- | ##### 响应示例 ``` json { "code": 1, "msg": "查询成功", "data": { "totalPages": 1, //返回的总页数 "totalElements": 1, //返回的元素总数 "number": 0, //当前第几页,从0开始 "size": 20, //每页的元素个数 "numberOfElements": 1, //返回当前页的元素数量,如果是最后一页有可能这个值和size不一致 "content": [ //返回的真正数据列表 { "userId": "xbvraj0g2r71q3o4", //人员id "username": "李雷", //人员名称 "userPhone": "18888888882" //人员手机 } ] } } ``` ## 27. 权限分组人员添加 ##### 接口描述 - 当前组织下的某人员分组里的添加人员信息 ##### 请求URL - `http://serveraddr:port/saas/api/permission/group/insertUsers` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |- | 是 |Object[]| 添加对象的list |- | |--permissionGroupId | 是 |string| 权限组id|- | |--userId | 是 |string| 人员id |- | |--username | 是 |string| 人员名称 |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/permission/group/insertUsers [ { "permissionGroupId": "lqc7kdu79xteg9g7", "userId": "ws3hx8gpuvzz6lu9", "username": "组织人员" } ] ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容,详见下方响应示例 |- | ##### 响应示例 ``` json { "code": 1, "msg": "操作成功", "data": null } ``` ## 28. 权限分组人员移除 ##### 接口描述 - 当前组织下的某人员分组里的移除人员信息 ##### 请求URL - `http://serveraddr:port/saas/api/permission/group/deleteUsers` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |permissionGroupId | 否 |string| 权限组id |- | |ids | 否 |string[]| 人员id数组 |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/permission/group/deleteUsers { "permissionGroupId":"lqc7kdu79xteg9g7", "ids":["ws3hx8gpuvzz6lu9"] } ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容,详见下方响应示例 |- | ##### 响应示例 ``` json { "code": 1, "msg": "操作成功", "data": null } ``` ## 29. 权限分组设备查询 ##### 接口描述 - 获取当前组织下的某人员分组里的人员信息 ##### 请求URL - `http://serveraddr:port/saas/api/permission/group/findSelectedDevice` ##### 请求方式 - **GET** ##### Query参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |groupId | 否 |string| 权限组id |- | |page | 否 |string| 第几页(缺省1) |- | |size | 否 |string| 每页大小(缺省10) |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/permission/group/findSelectedDevice ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容,详见下方响应示例 |- | ##### 响应示例 ``` json { "code": 1, "msg": "查询成功", "data": { "totalPages": 1, //返回的总页数 "totalElements": 1, //返回的元素总数 "number": 0, //当前第几页,从0开始 "size": 20, //每页的元素个数 "numberOfElements": 1, //返回当前页的元素数量,如果是最后一页有可能这个值和size不一致 "content": [ //返回的真正数据列表 { "deviceName": "公司前门", //设备名称 "deviceUuid": "EVT5aUbnSJCB", //设备uuid "deviceModel": "M350", //设备型号 "gateControlId": "ryyctbl1qltmdsh0", //设备id "gateControlNo": "1" //门控编号 } ] } } ``` ## 30. 权限分组设备添加 ##### 接口描述 - 当前组织下的某人员分组里的添加设备信息 ##### 请求URL - `http://serveraddr:port/saas/api/permission/group/insertDevices` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |- | 是 |Object[]| 添加对象的list |- | |--permissionGroupId | 是 |string| 权限组id|- | |--deviceUuid | 是 |string| 设备uuid |- | |--gateControlNo | 是 |string| 门控编号 |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/permission/group/insertDevices [ { "permissionGroupId": "lqc7kdu79xteg9g7", "deviceUuid": "EVT5aUbnSJCB", "gateControlNo": "1" } ] ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容,详见下方响应示例 |- | ##### 响应示例 ``` json { "code": 1, "msg": "操作成功", "data": null } ``` ## 31. 权限分组设备移除 ##### 接口描述 - 当前组织下的某人员分组里的移除设备信息 ##### 请求URL - `http://serveraddr:port/saas/api/permission/group/deleteDevices` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |permissionGroupId | 是 |string| 权限组id |- | |items | 否 |Object[]| 设备数组 |- | |uuid | 是 |string| 设备uuid |- | |gateControlNo | 是 |string| 门控编号|- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/permission/group/deleteDevices { "permissionGroupId": "lqc7kdu79xteg9g7", "items": [ { "uuid": "EVT5aUbnSJCB", "gateControlNo":"1" } ] } ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容,详见下方响应示例 |- | ##### 响应示例 ``` json { "code": 1, "msg": "操作成功", "data": null } ``` ## 32. 通行记录 ##### 接口描述 - 通行记录查询 ##### 请求URL - `http://serveraddr:port/saas/api/passRecord/findAll` ##### 请求方式 - **GET** ##### Query参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |username|是 |String |通行者 | | |deviceName|是 |String |设备名称 | | |uuid|是 |Integer |设备Uuid | | |voucherType|是 |String |通行凭证类型 人脸:face;卡:card;二维码:qrcode;指纹:fingerprint;密码:password; | | |voucherValue|是 |String |通行凭证值 | | |result|是 |String |通行结果 -1所有、1成功、0失败 | | |personType|是 |String |人员类型 -1所有、0访客 1组织人员; | | |page | 否 |string| 第几页(缺省1) |- | |size | 否 |string| 每页大小(缺省10) |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/permission/group/findAll?name=李雷 ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容(详见下方示例) |- | ##### 响应示例 ``` json { "code": 1, "msg": "查询成功", "data": { "totalPages": 1, //返回的总页数 "totalElements": 1, //返回的元素总数 "number": 0, //当前第几页,从0开始 "size": 20, //每页的元素个数 "numberOfElements": 1, //返回当前页的元素数量,如果是最后一页有可能这个值和size不一致 "content": [ //返回的真正数据列表 { "time": "2023-03-10 16:57:06", //通行时间 "uuid": "EVT5aUbnSJCB", //设备uuid "deviceName": "met86", //设备名称 "result": 1, //通行结果 "userId": "r5hzq9ale7rhey3o", //通行人员id "username": 李雷, //通行人员姓名 "userPhone": "19999999999", //通行人员手机号 "personType": 1, //人员类型 "voucherValue": "9345ef18", //通行凭证值 "voucherType": "card", //通行凭证类型 } ] } } ``` ## 33. 访客权限组管理 ##### 33.1 查询 ##### 请求URL - `http://serveraddr:port/saas/api/visit/permission/group/findAll` ##### 请求方式 - **GET** ##### Query参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |name|否 |String |权限组名称 | | |page | 否 |string| 第几页(缺省1) |- | |size | 否 |string| 每页大小(缺省10) |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/visit/permission/group/findAll?name=大门 ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容(详见下方示例) |- | ##### 响应示例 ``` json { "code": 1, "msg": "查询成功", "data": { "totalPages": 1, //返回的总页数 "totalElements": 1, //返回的元素总数 "number": 0, //当前第几页,从0开始 "size": 20, //每页的元素个数 "numberOfElements": 1, //返回当前页的元素数量,如果是最后一页有可能这个值和size不一致 "content": [ //返回的真正数据列表 { "groupId": "", //权限组id "name": "", //权限组名称 "userCount": 0, //用户数量 "deviceCount": 0, //设备数量 "timePeriod": "" //权限时间规则 } ] } } ``` ##### 33.2 添加 ##### 请求URL - `http://serveraddr:port/saas/api/visit/permission/group/insert` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |id|是 |string |权限分组id |- | |name |是 |string |权限分组名称 |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/visit/permission/group/insert { "id": "67ac7b301307460b", "name": "权限分组1", } ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容 |- | ##### 响应示例 ``` json { "code": 1, "msg": "添加成功", "data": null } ``` ##### 33.3 更新 ##### 请求URL - `http://serveraddr:port/saas/api/visit/permission/group/update` ##### 请求方式 - **PUT** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |groupId|是 |string |人员分组id |- | |groupName |是 |string |人员分组名称 |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/visit/permission/group/update { "groupId": "271hage05ju6irly1", "groupName": "权限分组5" } ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容 |- | ##### 响应示例 ``` json { "code": 1, "msg": "操作成功", "data": null } ``` ##### 33.4 删除 ##### 请求URL - `http://serveraddr:port/saas/api/visit/permission/group/deleteAll` ##### 请求方式 - **DELETE** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |ids|是 |string[] |人员id的数组 |item 类型: string | ##### 请求示例 ``` json http://serveraddr:port/saas/api/visit/permission/group/deleteAll { "ids":["67ac7b301307460b"] } ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容 |- | ##### 响应示例 ``` json { "code": 1, "msg": "删除成功", "data": null } ``` ##### 33.5 查询所有可选择的设备(全部、已选、未选) ##### 请求URL - `http://serveraddr:port/saas/api/visit/permission/group/findAllDevice` ##### 请求方式 - **GET** ##### Query参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |groupId | 是 |string| 权限组id |- | |deviceUuid | 否 |string| 设备SN |- | |deviceName | 否 |string| 设备名称 |- | |deviceModel | 否 |string| 设备型号 |- | |online | 否 |string| 设备在线状态 |- | |selectState | 否 |string| 选中状态 |0 未选中、1 选中 | |page | 否 |string| 第几页(缺省1) |- | |size | 否 |string| 每页大小(缺省10) |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/visit/permission/group/findAllDevice ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容,详见下方响应示例 |- | ##### 响应示例 ``` json { "code": 1, "msg": "查询成功", "data": { "totalPages": 1, //返回的总页数 "totalElements": 1, //返回的元素总数 "number": 0, //当前第几页,从0开始 "size": 20, //每页的元素个数 "numberOfElements": 1, //返回当前页的元素数量,如果是最后一页有可能这个值和size不一致 "content": [ //返回的真正数据列表 { "gateControlId": "", //门控设备id "deviceUuid": "", //设备SN "deviceName": "", //设备名称 "deviceModel": "", //设备型号 "deviceCategory": "", //设备类型 "gateControlNo": "", //门控编号 "gateControls": "", //门控设备编号列表,用逗号“,”分隔 "isSelected": false, //是否被选中:true 选中、false 未选中 "isMultiGateControl": false, //是否是一拖一:true 是、false 不是 "online": "" //设备在线状态 } ] } } ``` ##### 33.6 在权限组中添加设备 ##### 请求URL - `http://serveraddr:port/saas/api/visit/permission/group/insertDevices` ##### 请求方式 - **POST** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |- | 是 |Object[]| 添加对象的list |- | |--permissionGroupId | 是 |string| 权限组id|- | |--deviceUuid | 是 |string| 设备sn |- | |--gateControlNo | 是 |string| 门控编号 |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/visit/permission/group/insertDevices [ { "permissionGroupId": "lqc7kdu79xteg9g7", "deviceUuid": "EVT5aUbnSJCB", "gateControlNo": "1" } ] ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容,详见下方响应示例 |- | ##### 响应示例 ``` json { "code": 1, "msg": "操作成功", "data": null } ``` ##### 33.7 在权限组中移除设备 ##### 请求URL - `http://serveraddr:port/saas/api/visit/permission/group/deleteDevices` ##### 请求方式 - **DELETE** ##### Body参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |permissionGroupId | 是 |string| 权限组id |- | |items | 否 |Object[]| 设备数组 |- | |uuid | 是 |string| 设备sn |- | |gateControlNo | 是 |string| 门控编号|- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/visit/permission/group/deleteDevices { "permissionGroupId": "lqc7kdu79xteg9g7", "items": [ { "uuid": "EVT5aUbnSJCB", "gateControlNo":"1" } ] } ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容,详见下方响应示例 |- | ##### 响应示例 ``` json { "code": 1, "msg": "操作成功", "data": null } ``` ##### 33.8 查询该权限组下面的所有设备列表(包含是否被选中) ##### 请求URL - `http://serveraddr:port/saas/api/visit/permission/group/findAllDeviceWithSelected` ##### 请求方式 - **GET** ##### Query参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |groupId | 是 |string| 权限组id |- | |deviceUuid | 否 |string| 设备SN |- | |deviceName | 否 |string| 设备名称 |- | |deviceModel | 否 |string| 设备型号 |- | |online | 否 |string| 设备在线状态 |- | |page | 否 |string| 第几页(缺省1) |- | |size | 否 |string| 每页大小(缺省10) |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/visit/permission/group/findAllDeviceWithSelected ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容,详见下方响应示例 |- | ##### 响应示例 ``` json { "code": 1, "msg": "查询成功", "data": { "totalPages": 1, //返回的总页数 "totalElements": 1, //返回的元素总数 "number": 0, //当前第几页,从0开始 "size": 20, //每页的元素个数 "numberOfElements": 1, //返回当前页的元素数量,如果是最后一页有可能这个值和size不一致 "content": [ //返回的真正数据列表 { "gateControlId": "", //门控设备id "deviceUuid": "", //设备SN "deviceName": "", //设备名称 "deviceModel": "", //设备型号 "deviceCategory": "", //设备类型 "gateControlNo": "", //门控编号 "gateControls": "", //门控设备编号列表,用逗号“,”分隔 "isSelected": false, //是否被选中:true 选中、false 未选中 "isMultiGateControl": false, //是否是一拖一:true 是、false 不是 "online": "" //设备在线状态 } ] } } ``` ##### 33.9 查询该权限组下面所选择的设备列表 ##### 请求URL - `http://serveraddr:port/saas/api/visit/permission/group/findSelectedDevice` ##### 请求方式 - **GET** ##### Query参数 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |groupId | 是 |string| 权限组id |- | |deviceUuid | 否 |string| 设备SN |- | |deviceName | 否 |string| 设备名称 |- | |deviceModel | 否 |string| 设备型号 |- | |online | 否 |string| 设备在线状态 |- | |page | 否 |string| 第几页(缺省1) |- | |size | 否 |string| 每页大小(缺省10) |- | ##### 请求示例 ``` json http://serveraddr:port/saas/api/visit/permission/group/findSelectedDevice ``` ##### 响应参数说明 |参数名|必填|类型|说明|备注| |:---- |:---|:----- |----- |----- | |code | 是 |int| 状态码 | 成功:1,失败:0 | |msg | 是 |string| 描述信息 |- | |data | 是 |object| 返回内容,详见下方响应示例 |- | ##### 响应示例 ``` json { "code": 1, "msg": "查询成功", "data": { "totalPages": 1, //返回的总页数 "totalElements": 1, //返回的元素总数 "number": 0, //当前第几页,从0开始 "size": 20, //每页的元素个数 "numberOfElements": 1, //返回当前页的元素数量,如果是最后一页有可能这个值和size不一致 "content": [ //返回的真正数据列表 { "gateControlId": "", //门控设备id "deviceUuid": "", //设备SN "deviceName": "", //设备名称 "deviceModel": "", //设备型号 "deviceCategory": "", //设备类型 "gateControlNo": "", //门控编号 "gateControls": "" //门控设备编号列表,用逗号“,”分隔 } ] } } ``` ## 34. 参会记录 基础信息 **路径:** /saas/api/meeting/attendeeRecord/findAll **请求方法:** GET 请求参数 **Headers:** | 名称 | 值 | 必须 | 备注 | | ------------ | ------------ | ------------ | ------------ | | Authorization | 认证Token"" | 是 | 认证Token | **Query:** | 名称 | 值 | 必须 | 备注 | | ------------ | ------------ | ------------ | ------------ | | page | | 否 | 第几页(缺省1) | | size | | 否 | 每页大小(缺省10) | | meetingId | | 是 | 会议id | | username | | 否 | 用户姓名 | | signState | | 否 | 签到状态:0 未签到、1 迟到、2 已签到 | 返回数据 **Headers:** | 名称 | 值 | 必须 | 备注 | | ------------ | ------------ | ------------ | ------------ | | content-type | application/json;charset=UTF-8 | 否 | | **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | code | integer | 结果状态码(成功:1 失败:0) | | msg | string | 结果描述信息 | | data | object | 响应业务体 | |   |─content | array | | |     |─ | object | | |       |─id | string | | |       |─createById | string | | |       |─createTime | string | 创建时间<br>2018-01-01 01:01:01 | |       |─tenantId | string | 租户id | |       |─userId | string | 用户id | |       |─username | string | 用户姓名 | |       |─userPhone | string | 用户手机号 | |       |─userGroupId | string | 用户组id | |       |─userGroupName | string | 用户组名称 | |       |─signState | integer | 签到状态:0 未签到、1 迟到、2 已签到 | |       |─signTime | string | 签到时间 | |       |─signType | string | 签到方式,参考凭证类型:人脸:face;卡:card;二维码:qrcode;指纹:fingerprint;密码:password; | |       |─meetingId | string | 会议id | |   |─pageable | object | | |   |─total | integer | | **响应示例:** ```json { "code": 0, "msg": "", "data": { "content": [ { "id": "", "createById": "", "createTime": "", "tenantId": "", "userId": "", "username": "", "userPhone": "", "userGroupId": "", "userGroupName": "", "signState": 0, "signTime": "", "signType": "", "meetingId": "" } ], "pageable": {}, "total": 0 } } ``` ## 35. 会议预约 #### 35.1 查询所有 基础信息 **路径:** /saas/api/meeting/findAll **请求方法:** GET 请求参数 **Query:** | 名称 | 值 | 必须 | 备注 | | ------------ | ------------ | ------------ | ------------ | | page | | 否 | 第几页(缺省1) | | size | | 否 | 每页大小(缺省10) | | startTime | | 否 | | | endTime | | 否 | | | name | | 否 | 会议主题 | | reserveUsername | | 否 | 预约人 | | roomId | | 否 | 会议室id | | roomName | | 否 | 会议室名称 | | jointName | | 否 | 会议室名称/会议主题 联合查询 | | type | | 否 | 会议类型 0:周期会议、1: 普通会议 | | state | | 否 | 会议状态:0 待开始、1 进行中、2 已结束、3 已取消 | | day | | 否 | 日期 YYYY-MM-dd 2023-09-01 | 返回数据 **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | code | integer | 结果状态码(成功:1 失败:0) | | msg | string | 结果描述信息 | | data | object | 响应业务体 | |   |─content | array | | |     |─ | object | | |       |─id | string | | |       |─createById | string | | |       |─createTime | string | 创建时间<br>2018-01-01 01:01:01 | |       |─updateById | string | | |       |─updateTime | string | | |       |─tenantId | string | 租户id | |       |─day | string | 日期 2023-09-01 | |       |─startTime | string | 会议开始时间 09:00 | |       |─endTime | string | 会议结束时间 11:00 | |       |─state | integer | 会议状态:0 待开始、1 进行中、2 已结束、3 已取消 | |       |─lateTime | integer | 迟到判定(分钟) | |       |─remark | string | 备注 | |       |─meetingReserveId | string | 会议预约id | |       |─name | string | 会议主题 | |       |─reserveUserId | string | 预约人id | |       |─reserveUsername | string | 预约人姓名 | |       |─roomId | string | 会议室id | |       |─roomName | string | 会议室名称 | |       |─type | integer | 会议类型 0:周期会议、1: 普通会议 | |   |─pageable | object | | |   |─total | integer | | **响应示例:** ```json { "code": 0, "msg": "", "data": { "content": [ { "id": "", "createById": "", "createTime": "", "updateById": "", "updateTime": "", "tenantId": "", "day": "", "startTime": "", "endTime": "", "state": 0, "lateTime": 0, "remark": "", "meetingReserveId": "", "name": "", "reserveUserId": "", "reserveUsername": "", "roomId": "", "roomName": "", "type": 0 } ], "pageable": {}, "total": 0 } } ``` --- #### 35.2 获取详情 基础信息 **路径:** /saas/api/meeting/find **请求方法:** GET 请求参数 **Query:** | 名称 | 值 | 必须 | 备注 | | ------------ | ------------ | ------------ | ------------ | | id | | 是 | 会议id | 返回数据 **Headers:** | 名称 | 值 | 必须 | 备注 | | ------------ | ------------ | ------------ | ------------ | | content-type | application/json;charset=UTF-8 | 否 | | **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | code | integer | 结果状态码(成功:1 失败:0) | | msg | string | 结果描述信息 | | data | object | 响应业务体 | |   |─id | string | | |   |─createById | string | | |   |─createTime | string | 创建时间<br>2018-01-01 01:01:01 | |   |─updateById | string | | |   |─updateTime | string | | |   |─tenantId | string | 租户id | |   |─day | string | 日期 2023-09-01 | |   |─startTime | string | 会议开始时间 09:00 | |   |─endTime | string | 会议结束时间 11:00 | |   |─state | integer | 会议状态:0 待开始、1 进行中、2 已结束、3 已取消 | |   |─lateTime | integer | 迟到判定(分钟) | |   |─remark | string | 备注 | |   |─meetingReserveId | string | 会议预约id | |   |─name | string | 会议主题 | |   |─startDay | string | 会议开始日期 2023-09-01 | |   |─endDay | string | 会议结束日期 2023-09-01,不传就默认90天 | |   |─type | integer | 会议类型 0:周期会议、1: 普通会议 | |   |─repeatType | integer | 周期会议重复方式 0:每天、1: 每周,如果是周期会议必填 | |   |─roomId | string | 会议室id | |   |─roomName | string | 会议室名称 | |   |─attendeeUser | array | 参会人 userId | |     |─ | object | | |       |─id | string | 用户id | |       |─name | string | 用户姓名 | |       |─phone | string | 用户手机或邮箱 | |       |─userGroupId | string | 人员分组id | |       |─userGroupName | string | 人员分组Name | **响应示例:** ```json { "code": 0, "msg": "", "data": { "id": "", "createById": "", "createTime": "", "updateById": "", "updateTime": "", "tenantId": "", "day": "", "startTime": "", "endTime": "", "state": 0, "lateTime": 0, "remark": "", "meetingReserveId": "", "name": "", "startDay": "", "endDay": "", "type": 0, "repeatType": 0, "roomId": "", "roomName": "", "attendeeUser": [ { "id": "", "name": "", "phone": "", "userGroupId": "", "userGroupName": "" } ] } } ``` --- #### 35.3 新增(预约会议室) 基础信息 **路径:** /saas/api/meeting/insert **请求方法:** POST 请求参数 **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | roomId | string | 会议室id(周期会议不允许编辑) 必填| | roomName | string | 会议室名称(周期会议不允许编辑) | | name | string | 会议名称(周期会议不允许编辑) | | startDay | string | 会议开始日期 2023-09-01(周期会议不允许编辑) | | day | string | 会议日期 | | endDay | string | 会议结束日期 2023-09-30,不传就默认30天(周期会议不允许编辑) | | startTime | string | 会议开始时间 09:00 | | endTime | string | 会议结束时间 11:00 | | type | integer | 会议类型 0:周期会议、1: 普通会议(不允许编辑) | | repeatType | integer | 周期会议重复方式 0:每天、1: 每周,如果是周期会议必填 (不允许编辑) | | attendeeUser | array | 参会人 userId | |   |─ | string | | | lateTime | integer | 迟到判定(分钟) | | remark | string | 备注 | **Body示例:** ```json { "roomId": "", "roomName": "", "name": "", "startDay": "", "day": "", "endDay": "", "startTime": "", "endTime": "", "type": 0, "repeatType": 0, "attendeeUser": [ "" ], "lateTime": 0, "remark": "" } ``` 返回数据 **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | code | integer | 结果状态码(成功:1 失败:0) | | msg | string | 结果描述信息 | | data | List< string> | 响应业务体,新增会议idlist | **响应示例:** ```json { "code": 0, "msg": "", "data": ["id1","id2",...] } ``` --- #### 35.4 更新 基础信息 **路径:** /saas/api/meeting/update **请求方法:** POST 请求参数 **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | roomId | string | 会议室id(周期会议不允许编辑) | | roomName | string | 会议室名称(周期会议不允许编辑) | | name | string | 会议名称(周期会议不允许编辑) | | startDay | string | 会议开始日期 2023-09-01(周期会议不允许编辑) | | day | string | 会议日期 | | endDay | string | 会议结束日期 2023-09-30,不传就默认30天(周期会议不允许编辑) | | startTime | string | 会议开始时间 09:00 | | endTime | string | 会议结束时间 11:00 | | type | integer | 会议类型 0:周期会议、1: 普通会议(不允许编辑) | | repeatType | integer | 周期会议重复方式 0:每天、1: 每周,如果是周期会议必填 (不允许编辑) | | attendeeUser | array | 参会人 userId | |   |─ | string | | | lateTime | integer | 迟到判定(分钟) | | remark | string | 备注 | | id | string | 会议id | | action | integer | 修改的会议类型 0:取消周期会议、1: 取消本次会议 | **Body示例:** ```json { "roomId": "", "roomName": "", "name": "", "startDay": "", "day": "", "endDay": "", "startTime": "", "endTime": "", "type": 0, "repeatType": 0, "attendeeUser": [ "" ], "lateTime": 0, "remark": "", "id": "", "action": 0 } ``` 返回数据 **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | code | integer | 结果状态码(成功:1 失败:0) | | msg | string | 结果描述信息 | | data | string | 响应业务体 | **响应示例:** ```json { "code": 0, "msg": "", "data": "" } ``` --- #### 35.5 取消预约 基础信息 **路径:** /saas/api/meeting/cancel **请求方法:** Post 请求参数 **Query:** | 名称 | 值 | 必须 | 备注 | | ------------ | ------------ | ------------ | ------------ | | id | | 是 | | | action | | 是 | action 取消的会议类型 0:取消周期会议、1: 取消本次会议 | 返回数据 **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | code | integer | 结果状态码(成功:1 失败:0) | | msg | string | 结果描述信息 | | data | string | 响应业务体 | **响应示例:** ```json { "code": 0, "msg": "", "data": "" } ``` ## 36 会议室区域 --- #### 36.1 查询所有(带全部、未分组) 基础信息 **路径:** /saas/api/meeting/group/findAll **请求方法:** GET 请求参数 返回数据 **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | code | integer | 结果状态码(成功:1 失败:0) | | msg | string | 结果描述信息 | | data | array | 响应业务体 | |   |─ | object | | |     |─id | string | 节点id | |     |─name | string | 节点名称 | |     |─type | integer | 0 “文件夹”、1 “文件” | |     |─totalCount | integer | 总数量(包括子节点) | |     |─parentId | string | 父节点id | |     |─children | array | 子节点列表 | |       |─ | object | | |         |─id | string | 节点id | |         |─name | string | 节点名称 | |         |─type | integer | 0 “文件夹”、1 “文件” | |         |─totalCount | integer | 总数量(包括子节点) | |         |─parentId | string | 父节点id | |         |─children | array | 子节点列表 | |           |─ | object | | |             |─id | string | 节点id | |             |─name | string | 节点名称 | |             |─type | integer | 0 “文件夹”、1 “文件” | |             |─totalCount | integer | 总数量(包括子节点) | |             |─parentId | string | 父节点id | |             |─children | array | 子节点列表 | |               |─ | object | | |             |─childrenCount | integer | 子节点数量(包含“目录”和“文件”) | |             |─count | integer | 子节点数量(“文件”) | |         |─childrenCount | integer | 子节点数量(包含“目录”和“文件”) | |         |─count | integer | 子节点数量(“文件”) | |     |─childrenCount | integer | 子节点数量(包含“目录”和“文件”) | |     |─count | integer | 子节点数量(“文件”) | **响应示例:** ```json { "code": 0, "msg": "", "data": [ { "id": "", "name": "", "type": 0, "totalCount": 0, "parentId": "", "children": [ { "id": "", "name": "", "type": 0, "totalCount": 0, "parentId": "", "children": [ { "id": "", "name": "", "type": 0, "totalCount": 0, "parentId": "", "children": [], "childrenCount": 0, "count": 0 } ], "childrenCount": 0, "count": 0 } ], "childrenCount": 0, "count": 0 } ] } ``` --- #### 36.2 新增 基础信息 **路径:** /saas/api/meeting/group/insert **请求方法:** POST 请求参数 **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | name | string | 会议室区域名称 必填| | parentId | string | 父节点id:如果是根节点可以为空,如果是子节点不能为空 | **Body示例:** ```json { "name": "", "parentId": "" } ``` 返回数据 **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | code | integer | 结果状态码(成功:1 失败:0) | | msg | string | 结果描述信息 | | data | string | 响应业务体 | **响应示例:** ```json { "code": 0, "msg": "", "data": "" } ``` --- #### 36.3 更新 基础信息 **路径:** /saas/api/meeting/group/update **请求方法:** POST 请求参数 **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | groupId | string | 会议室区域id 必填| | groupName | string | 会议室区域名称 必填| **Body示例:** ```json { "groupId": "", "groupName": "" } ``` 返回数据 **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | code | integer | 结果状态码(成功:1 失败:0) | | msg | string | 结果描述信息 | | data | string | 响应业务体 | **响应示例:** ```json { "code": 0, "msg": "", "data": "" } ``` --- #### 36.4 删除 基础信息 **路径:** /saas/api/meeting/group/delete **请求方法:** GET 请求参数 **Query:** | 名称 | 值 | 必须 | 备注 | | ------------ | ------------ | ------------ | ------------ | | id | | 是 | 会议室分组的id | 返回数据 **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | code | integer | 结果状态码(成功:1 失败:0) | | msg | string | 结果描述信息 | | data | string | 响应业务体 | **响应示例:** ```json { "code": 0, "msg": "", "data": "" } ``` ## 37.会议室 --- #### 37.1 查询所有 基础信息 **路径:** /saas/api/meeting/room/findAll **请求方法:** GET 请求参数 **Query:** | 名称 | 值 | 必须 | 备注 | | ------------ | ------------ | ------------ | ------------ | | page | | 否 | 第几页(缺省1) | | size | | 否 | 每页大小(缺省10) | | reserveTime | | 是 | 预约时间 YYYY-MM-dd 格式 | | name | | 否 | 会议室名称 | | groupId | | 否 | 会议室区域id | 返回数据 **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | code | integer | 结果状态码(成功:1 失败:0) | | msg | string | 结果描述信息 | | data | object | 响应业务体 | |   |─content | array | | |     |─ | object | | |       |─id | string | | |       |─createById | string | | |       |─createTime | string | 创建时间<br2018-01-01 01:01:01 | |       |─updateById | string | | |       |─updateTime | string | | |       |─tenantId | string | 租户id | |       |─name | string | 会议室名称 | |       |─images | string | 会议室图片,多张用","分割 | |       |─location | string | 会议室位置 | |       |─remark | string | 备注 | |       |─uuid | string | 设备SN | |       |─no | string | 门控编号 | |       |─groupId | string | 分组id | |       |─groupName | string | 分组名称 | |       |─reserveIntervalTimes | array | 已经预约的时间段,开始时间与结束时间用“,”分割 | |         |─ | string | | |       |─imgUrl | string | 照片url | |   |─pageable | object | | |   |─total | integer | | **响应示例:** ```json { "code": 0, "msg": "", "data": { "content": [ { "id": "", "createById": "", "createTime": "", "updateById": "", "updateTime": "", "tenantId": "", "name": "", "images": "", "location": "", "remark": "", "uuid": "", "no": "", "groupId": "", "groupName": "", "reserveIntervalTimes": [ "" ], "imgUrl": "" } ], "pageable": {}, "total": 0 } } ``` --- #### 37.2 获取详情 基础信息 **路径:** /saas/api/meeting/room/find **请求方法:** GET 请求参数 **Headers:** **Query:** | 名称 | 值 | 必须 | 备注 | | ------------ | ------------ | ------------ | ------------ | | id | | 是 | 会议室id | 返回数据 **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | code | integer | 结果状态码(成功:1 失败:0) | | msg | string | 结果描述信息 | | data | object | 响应业务体 | |   |─id | string | | |   |─createById | string | | |   |─createTime | string | 创建时间<br2018-01-01 01:01:01 | |   |─updateById | string | | |   |─updateTime | string | | |   |─tenantId | string | 租户id | |   |─name | string | 会议室名称 | |   |─images | string | 会议室图片,多张用","分割 | |   |─location | string | 会议室位置 | |   |─remark | string | 备注 | |   |─uuid | string | 设备SN | |   |─no | string | 门控编号 | |   |─groupId | string | 分组id | |   |─groupName | string | 分组名称 | |   |─deviceName | string | 设备名称 | |   |─imgUrl | string | 照片url | **响应示例:** ```json { "code": 0, "msg": "", "data": { "id": "", "createById": "", "createTime": "", "updateById": "", "updateTime": "", "tenantId": "", "name": "", "images": "", "location": "", "remark": "", "uuid": "", "no": "", "groupId": "", "groupName": "", "deviceName": "", "imgUrl": "" } } ``` --- #### 37.3 新增 基础信息 **路径:** /saas/api/meeting/room/insert **请求方法:** POST 请求参数 **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | id | string | 会议室id | | name | string | 会议室名称 | | images | string | 会议室图片,多张用","分割 | | location | string | 会议室位置 | | remark | string | 备注 | | uuid | string | 设备SN | | no | string | 门控编号 | | groupId | string | 分组id | | groupName | string | 分组名称 | | userIds | array | 参会人员 | |   |─ | string | | **Body示例:** ```json { "name": "", "images": "", "location": "", "remark": "", "uuid": "", "no": "", "groupId": "", "groupName": "", "userIds": [ "" ] } ``` 返回数据 **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | code | integer | 结果状态码(成功:1 失败:0) | | msg | string | 结果描述信息 | | data | string | 响应业务体 | **响应示例:** ```json { "code": 0, "msg": "", "data": "" } ``` --- #### 37.4 更新 基础信息 **路径:** /saas/api/meeting/room/update **请求方法:** POST 请求参数 **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | name | string | 会议室名称 | | images | string | 会议室图片id(接口13获取的id),多张用","分割, | | location | string | 会议室位置 | | remark | string | 备注 | | uuid | string | 设备SN | | no | string | 门控编号 | | groupId | string | 分组id | | groupName | string | 分组名称 | | userIds | array | 参会人员 | |   |─ | string | | | id | string | 会议室id 必填| **Body示例:** ```json { "name": "", "images": "", "location": "", "remark": "", "uuid": "", "no": "", "groupId": "", "groupName": "", "userIds": [ "" ], "id": "" } ``` 返回数据 **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | code | integer | 结果状态码(成功:1 失败:0) | | msg | string | 结果描述信息 | | data | string | 响应业务体 | **响应示例:** ```json { "code": 0, "msg": "", "data": "" } ``` --- #### 37.5 调整会议室区域 基础信息 **路径:** /saas/api/meeting/room/updateGroup **请求方法:** POST 请求参数 **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | groupId | string | 会议室区域id 必填| | ids | array | 会议室id列表 | |   |─ | string | | **Body示例:** ```json { "groupId": "", "ids": [ "" ] } ``` 返回数据 **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | code | integer | 结果状态码(成功:1 失败:0) | | msg | string | 结果描述信息 | | data | string | 响应业务体 | **响应示例:** ```json { "code": 0, "msg": "", "data": "" } ``` --- #### 37.6 批量删除 基础信息 **路径:** /saas/api/meeting/room/deleteAll **请求方法:** POST 请求参数 **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | ids| List[String] | 会议室id的list | **Body示例:** ```json [ "" ] ``` 返回数据 **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | code | integer | 结果状态码(成功:1 失败:0) | | msg | string | 结果描述信息 | | data | string | 响应业务体 | **响应示例:** ```json { "code": 0, "msg": "", "data": "" } ``` --- #### 37.7 上传会议室照片(弃用,直接使用接口13上传图片获取图片id) 基础信息 **路径:** /saas/api/meeting/room/upload **请求方法:** POST 请求参数 **表单:** | 名称 | 值 | 必须 | 类型 | 备注 | | ------------ | ------------ | ------------ | ------------ | ------------ | | multipartFile | | 是 | file | | 返回数据 **Body:** | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | code | integer | 结果状态码(成功:1 失败:0) | | msg | string | 结果描述信息 | | data | object | 响应业务体 | |   |─id | string | 这个文件的唯一标识,后续可以通过这个文件下载文件,也可以根据这个文件查询文件相关属性 | |   |─startTime | integer | 文件上传启动的时间戳 毫秒 | |   |─endTime | integer | 文件上传结束的时间戳 毫秒 | |   |─md5 | string | 文件真实的md5值 | |   |─type | string | 文件真实的类型,比如png,csv等,但是有个别类型文件很难判断准确的类型 | |   |─length | integer | 文件真实的长度 | |   |─tag | string | 透传的标签 | |   |─name | string | 透传的文件保存后的名称,名称可以带相对路径,比如 /test/file1, 文件会保存在指定根目录下的test子目录下,文件名为file1 | **响应示例:** ```json { "code": 0, "msg": "", "data": { "id": "", "startTime": 0, "endTime": 0, "md5": "", "type": "", "length": 0, "tag": "", "name": "" } } ``` # 三. 附录 ### 附1:目前接入的设备型号 #### VF104人脸设备 #### VF105人脸设备 #### M350扫码设备 ### 附2:权限时间规则 | 名称 | 类型 | 备注 | | ------------ | ------------ | ------------ | | type | integer | 时间类 0:永久有效;1:特定时间区间内一直有效(startTime->endTime);2:特定时间区间内(startTime->endTime)的每周每天的特定时间区间内一直有效(weekPeriodTimes);3:每日模式,每日特定时间到特定时间内有效(时间戳为当日零点到该时间的秒数); | | startTime | Long | 时间区间开始时间戳(毫秒)| | endTime | Long | 时间区间结束时间戳(毫秒) | | startTimeDay | Long | 每日模式,每日特定时间到特定时间内有效(时间戳为当日零点到该时间的秒数) | | startTimeDay | Long | 每日模式,每日特定时间到特定时间内有效(时间戳为当日零点到该时间的秒数) | | weekPeriodTimes | string | TYPE_WEEK_PERIOD类型下设置周一到周日的开始时间到结束时间,每天可以设置多个时间段,中间用"\|"隔开,时间段之间不能重叠 {"1":"9:00-10:00\|11:00-13:30", * "2":"8:00-10:00", "4":"00:00-24:00" }如上示例,“1”表示周一,“2”表示周二,示例没有“3”,那么周三就全天无效,“4”表示周四全天有效String时间的格式是"HH:mm"这里面必须是一个json格式的完整string|
周小禹
2025年2月14日 16:13
107
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期