HC小区接口文档

添加门禁接口文档

一、接口名称

accessControl.saveAccessControl

二、接口描述

用于外部系统添加门禁设备信息,包括设备名称、位置、所属小区等基本信息。

三、接口路径

http://{ip}:{port}/iot/api/accessControl.SaveAccessControl

四、请求方法

POST

五、请求头

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

六、请求参数

6.1 请求体(JSON格式)

参数名称 必填 类型 长度 描述
machineCode String - 设备编码
machineName String 64 设备名称
implBean String - 实现类Bean
locationId String - 设备位置ID
communityId String 30 小区ID
monitorId String - 关联监控设备ID(可选,默认-1表示无关联)

七、返回值

7.1 返回格式(JSON)

参数名称 必填 类型 描述
code int 返回码,0 表示成功,其他表示失败
msg String 返回信息,成功或失败描述
data Object 返回数据(本接口无额外数据返回)

八、示例请求

8.1 请求示例

{
  "machineCode": "DEV001",
  "machineName": "小区南门门禁",
  "implBean": "accessControlServiceImpl",
  "locationId": "LOC123456",
  "communityId": "2022081539020475",
  "monitorId": "MON789012"
}

九、示例响应

9.1 成功响应

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

9.2 失败响应

{
  "code": 1001,
  "msg": "设备位置不存在"
}

十、业务逻辑说明

  1. 参数校验

    • 检查必填参数是否完整(machineCodemachineNameimplBeanlocationIdcommunityId)。
    • 验证 locationId 对应的设备位置是否存在。
    • 如果 monitorId 不为空且不等于 -1,则验证关联的监控设备是否存在。
  2. 数据存储

    • 生成唯一 machineId(格式:10 + 唯一ID)。
    • 记录当前时间作为心跳时间(heartbeatTime)。
    • 调用 IAccessControlV1InnerServiceSMO 存储门禁设备信息。
  3. 事务管理

    • 使用 @Java110Transactional 确保数据一致性,失败时回滚。

十一、注意事项

  1. communityId 必须为有效的小区ID。
  2. locationId 必须对应系统中已存在的位置。
  3. 如果关联监控设备(monitorId),需确保该设备已存在。
  4. 接口需在请求头携带正确的认证信息。

这份文档符合 RESTful API 规范,并包含了完整的请求、响应示例及业务逻辑说明。如需调整,可根据实际业务需求修改参数或描述。