# 设备管理服务平台
版本 |  创建时间   | 作者 |  备注信息
---|---|---|---
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"}]

## 设备终端接口服务

### 服务端地址获取

**广播端口:** 54321

**请求方式:** UDP


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

**简要描述:** 设备激活

**广播参数:**

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

**请求样例:**
```

{
"deviceNum":"12345678"
}

```
**响应参数:**

参数名称 |参数类型|备注|其它
---|---|---|---
code|Integer|结果码（-1.失败，1.成功）|-
msg|String|消息|-
data|String|数据对象|-


**响应消息样例:**
```

{
    "msg":"获取服务端地址成功",
    "code":1,
    "data":"http://192.168.0.98:11021"
}

```


### 设备注册

**请求URL:** m/api/register

**请求方式:** POST

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

**简要描述:** 设备注册，成功返回响应rabbmit连接参数

**请求参数:**

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

**请求样例:**
```
{
"deviceCode":"a12345678"
}

```
**响应参数:**

参数名称 |参数类型|备注|其它
---|---|---|---
code|Integer|结果码（-1.失败，1.成功）|-
msg|String|消息|-
data|object|数据对象|-
&emsp;content|String|加密后的内容|AES加密


**content解密参数:**

参数名称 |参数类型|备注|其它
---|---|---|---
downTopicFilter|String|下行队列topic|-
uploadTopicFilter|String|上行队列topic|-
username|String|rabbmit用户名|-
password|String|rabbmit密码|-
host|String|ip|-
port|String|端口|-
virtualHost|String|虚拟机|-
exchangeName|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|结果码（-1.失败，1.成功）|-
msg|String|消息|-
data|object|数据对象|-
&emsp;platformList|array|平台列表|数组
&emsp;&emsp;id|Long|ID|-
&emsp;&emsp;platformName|String|平台名称，名称唯一|-
&emsp;&emsp;platformSn|String|平台编码，编码唯一|-
&emsp;productList|array|产品列表|数组
&emsp;&emsp;id|Long|ID|-
&emsp;&emsp;productName|String|产品名称，名称唯一|-
&emsp;&emsp;productCode|String|产品编码，编码唯一|-


**响应消息样例:**
```

```

### 获取平台产品列表

**请求URL:** m/api/getPlatformAndProduct

**请求方式:** GET

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

**简要描述:** 查询平台产品列表数据，用于设备新增提交

**请求参数:**

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


**请求样例:**
```

```
**响应参数:**

参数名称 |参数类型|备注|其它
---|---|---|---
code|Integer|结果码（-1.失败，1.成功）|-
msg|String|消息|-
data|object|数据对象|-
&emsp;platformList|array|平台列表|数组
&emsp;&emsp;id|Long|ID|-
&emsp;&emsp;platformName|String|平台名称，名称唯一|-
&emsp;&emsp;platformSn|String|平台编码，编码唯一|-
&emsp;productList|array|产品列表|数组
&emsp;&emsp;id|Long|ID|-
&emsp;&emsp;productName|String|产品名称，名称唯一|-
&emsp;&emsp;productCode|String|产品编码，编码唯一|-


**响应消息样例:**
```

```


### 新增或更新设备

**请求URL:** m/api/saveOrUpdate

**请求方式:** POST

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

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

**简要描述:** 保存或更新设备，设备deviceCode存在更新，不存在新增,
             请求需添加接口鉴权token信息，来源getToken接口

**请求参数:**

参数名称|类型|备注|必填|其它
---|---|---|---|---
deviceName|String|设备名称|否|-
deviceCode|String|设备编码|是|-
deviceMac|String|设备的MAC地址|否|-
platformId|Long|平台系统Id|是|来源接口获取平台产品列表
platformName|String|平台系统名称|是|-
productId|Long|产品Id|是|来源接口获取平台产品列表
productName|String|产品名称|是|-
siteCode|String|站点编号，来源基础服务平台|是|-
siteName|String|站点名称|是|-
deviceRemark|String|备注|是|-

**请求样例:**
```

{
    "deviceName":"lmfrs8",
    "deviceCode":"yte9s3",
    "siteCode":"nmyc5u",
    "siteName":"a4vxhg",
    "deviceMac":"y9tuaw",
    "platformId":3125,
    "productId":362,
    "deviceRemark":"ah98cp",

}

```
**响应参数:**

参数名称 |参数类型|备注|其它
---|---|---|---
code|Integer|结果码（-1.失败，1.成功）|-
msg|String|消息|-
data|object|数据对象|-

**响应消息样例:**
```


```

### 激活设备

**请求URL:** m/api/active

**请求方式:** POST

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

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

**简要描述:** 激活设备
            请求需添加接口鉴权token信息，来源getToken接口

**请求参数:**

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


**请求样例:**
```
{
    "deviceCode":"yte9s3",
}

```
**响应参数:**

参数名称 |参数类型|备注|其它
---|---|---|---
code|Integer|结果码（-1.失败，1.成功）|-
msg|String|消息|-
data|object|数据对象|-

**响应消息样例:**
```


```



## 设备消息

### 上行消息

**topic:** uploadTopicFilter

**请求方式:** rabbmitMQ

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

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

**请求参数:**

参数名称|类型|备注|必填|其它
---|---|---|---|---
headers|Object|消息头|是|-
&emsp;data|Object|消息头数据对象|是|-
&emsp;&emsp;protocol|String|数据域协议类型，默认json|是|-
&emsp;&emsp;messageType|String|上报消息类型|是|HEART_BEAT
&emsp;&emsp;sign|String|签名|是|-
&emsp;&emsp;timestamp|String|时间戳|是|-
data|byte[]|byte数组，base64编码|是|-
key|String|消息唯一标识|是|-

**请求样例:**
```
{
    "data":"YWJjZDEyMzQ=",
    "headers":{
        "data":{
            "protocol":"json",
            "messageType":"HEART_BEAT",
            "sign":"abcd1234",
            "timestamp":"2022-04-15 09:48:05"
        }
    },
    "key":"d3635cd0597d46c88b85797c3846b04f"
}
```



### 下行消息

**topic:** downTopicFilter

**请求方式:** rabbmitMQ

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

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

**请求参数:**

参数名称|类型|备注|必填|其它
---|---|---|---|---
headers|Object|消息头|是|-
&emsp;data|Object|消息头数据对象|是|-
&emsp;&emsp;protocol|String|数据域协议类型，默认json|是|-
&emsp;&emsp;messageType|String|下发消息类型|是|DOWN_UPGREAD
&emsp;&emsp;sign|String|签名|是|-
&emsp;&emsp;timestamp|String|时间戳|是|-
data|byte[]|byte数组，base64编码|是|-
key|String|消息唯一标识|是|-

**请求样例:**
```
{
    "data":"YWJjZDEyMzQ=",
    "headers":{
        "data":{
            "protocol":"json",
            "messageType":"UPGREAD",
            "sign":"abcd1234",
            "timestamp":"2022-04-15 09:48:05"
        }
    },
    "key":"d3635cd0597d46c88b85797c3846b04f"
}
```


