设备管理服务平台

版本 创建时间 作者 备注信息
v1.0 2022-01-20 zxfei 接口文档

数据类型

类型名称 类型描述 参考样例
String 字符串 A、a、ab
Integer 数字类型 1、12、-1
Long 长整型数字 1、12、-1
date 时间类型,单位纳秒数字 167988745573
BigDecimal 小数类型 545.256
object 对象类型 {"name":"zhang3"}
arrays 数组类型 [{"name":"zhang3"},{"name":"zhang2"}]

设备终端接口服务

服务端地址获取

广播服务端口: 8074

广播客户端口: 8073

请求方式: UDP

内容类型: application/json;charset=utf-8

简要描述: 服务端地址获取

广播参数:

参数名称 类型 备注 必填 其它
deviceNum String 设备编码 -

请求样例:


{
"deviceNum":"12345678"
}

响应参数:

参数名称 参数类型 备注 其它
code Integer 结果码(-1.失败,1.成功) -
msg String 消息 -
data Object 数据对象 -
 ip String ip -
 port Integer port -
 deviceRegisterApi String 设备注册API -
 deviceInitApi String 设备初始化信息API -
 deviceUpdateApi String 设备页面修改API -

响应消息样例:


{
    "msg":"获取服务端地址成功",
    "code":1,
    "data":{
        "ip":"192.168.0.98",
        "port":11091,,
        "deviceRegisterApi":"/m/api/register",
        "deviceInitApi":"/m/api/deviceInit",
        "deviceUpdateApi":"/m/api/deviceUpdate"
    }
}

设备注册

请求URL: m/api/register

请求方式: POST

内容类型: application/json;charset=utf-8

简要描述: 设备注册,成功返回响应rabbmit连接参数,如未找到该设备,系统会根据设备码创建新设备

请求参数:

参数名称 类型 备注 必填 其它
deviceCode String 设备编码,唯一 可是编码或者mac地址,由平台创建
deviceVersion String 设备版本信息 -

请求样例:

{
    "deviceCode":"a12345678",
    "deviceVersion":"1"
}

响应参数:

参数名称 参数类型 备注 其它
code Integer 结果码(-1.失败,1.成功) -
msg String 消息 -
data object 数据对象 -
 content String 加密后的内容 AES加密

content解密参数:

参数名称 参数类型 备注 其它
rabbmitInfo Object rabbmit相关链接信息 -
 downTopicFilter String 下行队列topic -
 uploadTopicFilter String 上行队列topic -
 username String rabbmit用户名 -
 password String rabbmit密码 -
 host String ip -
 port String 端口 -
 virtualHost String 虚拟机 -
 exchangeName String 交换机名称 -
 messageTtl String 队列消息超时时间,毫秒 -
serviceInfo Object 服务接口连接信息 -
 homeUrl String 首页 -
 eventUrl String 事件地址 -
 serverUrl String 前端服务接口地址 -
deviceInfo Object 设备基础信息 -
 siteId Long 站点ID -
 siteCode String 站点编码 -
 siteName String 站点名称 -
 productId Long 设备产品类型Id -
 productName String 设备产品类型 -
 enabled Integer 设备启用状态 (0.停止,1.启用) -
 source Integer 设备来源,默认1(0.旧设备,1.新设备) -

响应消息样例:

{
    "code":1,
    "data":{
        "content":"hRNPu+V1hc4lGRHtXGyVOF0U7ez8/ZxFke9L4o7DWVLMfsZwkViAChfLKSydAEWAdsbgP1dzfNrQTq7X0diu1awR/qdPNcDcpj5/hBozLn+OmuTKLUWhq9+WGtuoF3BTbtIpWkpQWDGolOCfRadenGUkuMozjEwwkt5CIDa+nzOqh56BJIhGahlx79Qt30ugj3UNhLTfvw5lpN9jY7u+icx+xnCRWIAKF8spLJ0ARYAbMXXhI21dYty7e1b+Cb2wZobupPyXRmyuy8Fkn4bculmkCywq78F6tPlu0rCCgJA="
    }
}

设备初始化信息

请求URL: m/api/deviceInit

请求方式: GET

内容类型: application/json;charset=utf-8

简要描述: 设备初始化信息,提供手机编辑设备入口信息

请求参数:

参数名称 类型 备注 必填 其它

请求样例:

{}

响应参数:

参数名称 参数类型 备注 其它
code Integer 结果码(-1.失败,1.成功) -
msg String 消息 -
data object 数据对象 -
 productList array 产品列表 数组
  productId Long 产品id -
  productName String 产品名称 -
  productCode String 产品编码 -
 firmList array 设备生产商列表 数组
  deviceFirmId Long 生产商id -
  deviceFirmname String 生产商名称 -
 siteList array 站点列表 数组
  siteId Long 站点id -
  siteName String 站点名称 -
  siteCode String 站点编码 -

响应消息样例:

{
  "code": 1,
  "data": {
    "firmList": [
      {
        "deviceFirmId": 1,
        "deviceFirmname": "四川新鸿翔"
      }
    ],
    "productList": [
      {
        "productCode": "pdj",
        "productId": 1,
        "productName": "排队机"
      },
      {
        "productCode": "ckp",
        "productId": 2,
        "productName": "窗口屏"
      }
    ],
    "siteList": [
      {
        "siteCode": "510105521000-0001",
        "siteId": 1,
        "siteName": "测试站点1"
      },
      {
        "siteCode": "513400000000-0001",
        "siteId": 2,
        "siteName": "凉山州行政审批局"
      }
    ]
  }
}

设备新增或更新

请求URL: m/api/deviceUpdate

请求方式: POST

内容类型: application/json;charset=utf-8

简要描述: 设备新增或更新,提供给前端手机页面更新设备操作

请求参数:

参数名称 类型 必填 其它
deviceName String 设备名称
deviceCode String 设备编码,默认为MAC地址
deviceMac String 设备MAC地址,如不填写,默认等于deviceCode
siteId Long 站点Id
siteCode String 站点编号
siteName String 站点名称
productId Long 产品Id
deviceFirmId Long 设备生产厂商ID
deviceFirmname String 设备生产厂商名称
lon String 经度
lati String 经度
deviceInBuilding Integer 所属楼栋
deviceInFloor Integer 所属楼层
defectsLiabilityPeriod Date 保修期,如2020-08-12 15:00:00
leadingOfficial String 负责人
leadingOfficialTelephone String 联系电话
source Integer 设备来源,默认1(0.旧设备,1.新设备)
active Integer 设备激活,默认0(0.否,1.是)

请求样例:

{
    "deviceName":"agpla8",
    "deviceCode":"a1-a2",
    "deviceMac":"a1-a2",
    "siteId":1,
    "siteCode":"510105521000-0001",
    "siteName":"测试站点1",
    "productId":1,
    "deviceFirmId":1,
    "lon":"12",
    "lati":"22",
    "deviceInBuilding":13,
    "deviceInFloor":22,
    "defectsLiabilityPeriod":"2022-06-30",
    "leadingOfficial":"张三",
    "leadingOfficialTelephone":"13281114856",
    "source":1,
    "active":1
}

响应参数:

参数名称 参数类型 备注 其它
code Integer 结果码 见附录码表
msg String 消息 -
data object 数据对象 -
 content String 加密后的内容 AES加密

content解密参数:

参数名称 参数类型 备注 其它
rabbmitInfo Object rabbmit相关链接信息 -
 downTopicFilter String 下行队列topic -
 uploadTopicFilter String 上行队列topic -
 username String rabbmit用户名 -
 password String rabbmit密码 -
 host String ip -
 port String 端口 -
 virtualHost String 虚拟机 -
 exchangeName String 交换机名称 -
 messageTtl String 队列消息超时时间,毫秒 -
serviceInfo Object 服务接口连接信息 -
 homeUrl String 首页 -
 serverUrl String 前端服务接口地址 -
serviceInfo Object 服务接口连接信息 -
 homeUrl String 首页 -
 eventUrl String 事件地址 -
 serverUrl String 前端服务接口地址 -
deviceInfo Object 设备基础信息 -
 siteId Long 站点ID -
 siteCode String 站点编码 -
 siteName String 站点名称 -
 productId Long 设备产品类型Id -
 productName String 设备产品类型 -
 enabled Integer 设备启用状态 (0.停止,1.启用) -

响应消息样例:

{
    "code":1,
    "data":{
        "content":"hRNPu+V1hc4lGRHtXGyVOF0U7ez8/ZxFke9L4o7DWVLMfsZwkViAChfLKSydAEWAdsbgP1dzfNrQTq7X0diu1awR/qdPNcDcpj5/hBozLn+OmuTKLUWhq9+WGtuoF3BTbtIpWkpQWDGolOCfRadenGUkuMozjEwwkt5CIDa+nzOqh56BJIhGahlx79Qt30ugj3UNhLTfvw5lpN9jY7u+icx+xnCRWIAKF8spLJ0ARYAbMXXhI21dYty7e1b+Cb2wZobupPyXRmyuy8Fkn4bculmkCywq78F6tPlu0rCCgJA="
    }
}

设备版本检查

请求URL: m/api/checkVersion

请求方式: POST

内容类型: application/json;charset=utf-8

简要描述: 检查当前设备所属版本最新版本信息

请求参数:

参数名称 类型 备注 必填 其它
deviceCode String 设备编码,唯一 可是编码或者mac地址,由平台创建
deviceVersion String 设备版本信息 -

请求样例:

{
    "deviceCode":"a12345678"
}

响应参数:

参数名称 参数类型 备注 其它
code Integer 结果码(-1.失败,1.成功) -
msg String 消息 -
data object 数据对象 -
 content String 加密后的内容 AES加密

content解密参数:

参数名称 参数类型 备注 其它
 productId Long 产品Id -
 productCode String 产品编号 -
 productName String 产品名称 -
 version Int 版本号 -
 remark String 备注信息 -
 downloadUrl String 版本下载地址 -

响应消息样例:

{
    "code":1,
    "data":{
        "content":"hRNPu+V1hc4lGRHtXGyVOF0U7ez8/ZxFke9L4o7DWVLMfsZwkViAChfLKSydAEWAdsbgP1dzfNrQTq7X0diu1awR/qdPNcDcpj5/hBozLn+OmuTKLUWhq9+WGtuoF3BTbtIpWkpQWDGolOCfRadenGUkuMozjEwwkt5CIDa+nzOqh56BJIhGahlx79Qt30ugj3UNhLTfvw5lpN9jY7u+icx+xnCRWIAKF8spLJ0ARYAbMXXhI21dYty7e1b+Cb2wZobupPyXRmyuy8Fkn4bculmkCywq78F6tPlu0rCCgJA="
    }
}

对外平台接口服务

获取接口访问token

请求URL: m/api/getToken

请求方式: POST

内容类型: application/json;charset=utf-8

简要描述: 获取接口访问token

请求参数:

参数名称 类型 备注 必填 其它
loginName String 平台用户名称 -
password String 平台用户密码 -

请求样例:


响应参数:

参数名称 参数类型 备注 其它
code Integer 结果码 见附录码表
msg String 消息 -
data object 数据对象 -

响应消息样例:


接收第三方平台设备消息

请求URL: m/api/receive

请求方式: POST

鉴权头信息: Authorization: {{token}}

内容类型: application/json;charset=utf-8

简要描述:

请求参数:

参数名称 类型 备注 必填 其它
receiveMethod Integer 1:新增,2:修改,3:删除,4:激活,5:启用,6:停用 -
deviceName String 设备名称 -
deviceCode String 设备编码,如MAC地址 -
platformCode String 平台系统编码 见平台编码附录
productCode String 产品编码 见产品编码附录
ip String 设备访问ip -
port String 设备端口 -
siteId Long 站点ID,来源基础服务平台 -
leadingOfficial String 负责人 -
leadingOfficialTelephone String 联系电话 -
siteCode String 站点编号,来源基础服务平台 -
siteName String 站点名称 -
homeUrl String 首页地址 -
deviceRemark String 备注 -
deviceStatus Integer 设备状态 (0.未激活,1.离线,2.在线) 默认0为激活
source Integer (0.旧设备,1.新设备) 默认1新设备

请求样例:

{}

响应参数:

参数名称 参数类型 备注 其它
code Integer 结果码 见附录码表
msg String 消息 -
data object 数据对象 -

响应消息样例:



接收第三方平台命令消息

请求URL: m/api/callback

请求方式: POST

内容类型: application/json;charset=utf-8

简要描述: 以数组方式进行提交

请求参数:

参数名称 类型 备注 必填 其它
deviceCode String 设备编码,如MAC地址 -
messageType String 消息类型 如HEART_BEAT
timestamp Long 时间戳 -
data String 数据体,内容自行定义 -

请求样例:

[
    {
        "data":"{xxxx}",
        "deviceCode":"a1",
        "messageType":"HEART_BEAT",
        "timestamp":1654656951795
    },
    {
        "data":"{bbbbbb}",
        "deviceCode":"a2",
        "messageType":"HEART_BEAT",
        "timestamp":1654656951795
    }
]

响应参数:

参数名称 参数类型 备注 其它
code Integer 结果码 见附录码表
msg String 消息 -

响应消息样例:



回调各个平台通知消息

请求URL: 各平台通知地址

请求方式: POST

内容类型: application/json;charset=utf-8

简要描述: 设备消息通知各个平台,当配置了地址时候

请求参数:

参数名称 类型 备注 必填 其它
type Integer 消息类型 0:设备增删改查,data数据域封装具体设备消息,1:设备消息类,数据域透传设备上行消息体。
msg String 消息 -
data object 数据对象 -
 deviceStatus Integer 状态,1:新增,2:修改,3:删除,4:激活,5:启用,6:停用,7:上线,8:下线
 deviceName String 设备名称 -
 deviceCode String 设备编码,如MAC地址 -
 productCode String 产品编码 见附录
 ip String 设备访问ip -
 port String 设备端口 -
 leadingOfficial String 负责人 -
 leadingOfficialTelephone String 联系电话 -
 siteId Long 站点ID,来源基础服务平台 -
 siteCode String 站点编号,来源基础服务平台 -
 siteName String 站点名称 -
 deviceRemark String 备注 -

请求样例:

{}

响应参数:

参数名称 参数类型 备注 其它
code Integer 结果码 见附录码表
msg String 消息 -
data object 数据对象 -

响应消息样例:



设备消息

上行消息

topic: uploadTopicFilter

请求方式: rabbmitMQ

内容类型: application/json;charset=utf-8

简要描述: 上行消息存放队列

请求参数:

参数名称 类型 备注 必填 其它
headers Object 消息头 -
 data Object 消息头数据对象 -
  protocol String 数据域协议类型,默认json -
  messageType String 上报消息类型 HEART_BEAT
  deviceCode String 设备编码信息 如:mac地址
  sign String 签名 -
  timestamp String 时间戳 -
data byte[] byte数组,base64编码 -
key String 消息唯一标识 -

请求样例:

{
    "data":"YWJjZDEyMzQ=",
    "headers":{
        "data":{
            "protocol":"json",
            "messageType":"HEART_BEAT",
            "deviceCode":"A1:A2:A3:A4:A5:A6",
            "sign":"abcd1234",
            "timestamp":"2022-04-15 09:48:05"
        }
    },
    "key":"d3635cd0597d46c88b85797c3846b04f"
}

下行消息

topic: downTopicFilter

请求方式: rabbmitMQ

内容类型: application/json;charset=utf-8

简要描述: 下行消息存放队列

请求参数:

参数名称 类型 备注 必填 其它
headers Object 消息头 -
 data Object 消息头数据对象 -
  protocol String 数据域协议类型,默认json -
  messageType String 下发消息类型 UPGREAD
  deviceCode String 设备编码信息 如:mac地址
  sign String 签名 -
  timestamp String 时间戳 -
data byte[] byte数组,base64编码 -
key String 消息唯一标识 -

请求样例:

{
    "data":"YWJjZDEyMzQ=",
    "headers":{
        "data":{
            "protocol":"json",
            "messageType":"UPGREAD",
            "deviceCode":"A1:A2:A3:A4:A5:A6",
            "sign":"abcd1234",
            "downloadUrl":"http://xxxxx",
            "timestamp":"2022-04-15 09:48:05"
        }
    },
    "key":"d3635cd0597d46c88b85797c3846b04f"
}

码表

响应结果码表

结果码 结果 其它
1 成功 -
1001 当前设备编码不存在 -
1002 当前设备编码已存在 -
1003 所属产品编码不存在 -
1004 当前设备未激活,请在后台配置后再激活 -
1005 所属平台不存在!请在后台添加后再激活 -
1006 当前设备所属产品平台未配置,请在后台配置后再激活 -
1007 站点ID为空 -
1008 设备已创建,请完善设备配置信息 -
1009 当前设备不存在 -
1010 token认证失败 -
1011 未找到设备版本信息 -
-1 系统内部异常 -

附录

业务上行下行消息类型

编码 说明 其它
HEART_BEAT 设备心跳消息 设备上行发送