HC小区接口文档

门禁开门接口文档

一、接口名称

门禁开门

二、接口描述

该接口用于远程控制门禁设备开门,适用于小区、办公楼等场景的门禁系统。

三、接口路径

http://ip:port/iot/api/accessControl.openAccessControlDoor

四、请求方法

POST

五、请求头

参数名称 必填 类型 描述
Authorization String 用户认证token,通过登录接口获取
app-id String 应用ID,系统分配
transaction-id String 请求流水号,格式:1000000000+YYYYMMDDhhmmss+6位序列
sign String 签名
req-time String 请求时间,格式:YYYYMMDDhhmmss

六、请求参数

6.1 请求体(JSON格式)

参数名称 必填 类型 描述
machineId String 门禁设备ID
communityId String 小区ID

七、返回值

7.1 成功响应(200 OK)

{
  "code": "0",
  "msg": "成功",
  "data": null
}

7.2 失败响应

{
  "code": "1",
  "msg": "开门失败",
  "data": null
}

7.3 错误状态码

状态码 描述
400 参数缺失(如缺少 machineId 或 communityId)
404 门禁设备不存在或用户不存在
500 服务器内部错误

八、示例请求

POST /iot/api/accessControl.openAccessControlDoor HTTP/1.1
Host: localhost:8080
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
app-id: 10001
transaction-id: 100000000020231201143000000001
sign: 9a8b7c6d5e4f3g2h1i0j
req-time: 20231201143000
Content-Type: application/json

{
  "machineId": "AC001",
  "communityId": "CM001"
}

九、示例响应

9.1 成功响应

HTTP/1.1 200 OK
Content-Type: application/json

{
  "code": "0",
  "msg": "成功",
  "data": null
}

9.2 失败响应

HTTP/1.1 200 OK
Content-Type: application/json

{
  "code": "1",
  "msg": "开门失败",
  "data": null
}

十、业务逻辑说明

  1. 参数校验:检查 machineIdcommunityId 是否有效。
  2. 用户验证:检查请求用户是否存在。
  3. 门禁设备查询:根据 machineIdcommunityId 查询门禁设备信息。
  4. 厂商协议解析:根据门禁设备的实现类(implBean)获取对应的厂商协议实现类。
  5. 执行开门:调用厂商协议实现类的 openDoor 方法执行开门操作。
  6. 返回结果:根据开门结果返回成功或失败响应。

十一、相关DTO类说明

AccessControlDto(门禁设备信息)

字段 类型 描述
machineId String 设备ID
communityId String 小区ID
implBean String 厂商协议实现类
userId String 操作用户ID
userName String 操作用户名称

UserDto(用户信息)

字段 类型 描述
userId String 用户ID
name String 用户姓名

HardwareManufacturerDto(硬件厂商信息)

字段 类型 描述
hmId String 厂商ID
protocolImpl String 厂商协议实现类

这份文档符合 RESTful API 规范,并包含了完整的请求、响应示例和业务逻辑说明。