服务APP--和平板服务对接TCP
<p><strong>链接IP和端口:</strong> </p>
<ul>
<li>如:123.123.123.237:111</li>
</ul>
<p><strong>心跳 5s 发一次数据:</strong> </p>
<pre><code> {
"eui": "CCC820B74DBAB715740812F7B538590BB17A0889", #设备的唯一标识MAC
"status": "1", # =1 设备在线 =0 设备离线
}
</code></pre>
<p><strong>上面的心跳服务器返回回应数据</strong></p>
<pre><code> {
"type": "response", #操作类型 =response 硬件的回应
"mac": "CCC820B74DBAB715740812F7B538590BB17A0889", #设备的唯一标识MAC
"code": "1", # =1 成功 =0 失败
}
</code></pre>
<p><strong>服务器下发设备的数据,设备接收到后请求下面接口拉取更新数据:</strong> </p>
<pre><code> {
"type": "update_user",
# 操作类型
# =update_user 更新用户表
# =get_all_user 获取所有用户(包括已删除的)
# =update_consumable_type 更新物料类型表
# =update_consumable 更新物料表
# =update_consumable_batch 批量更新物料
# =open_door 远程开门
# =close_door 远程关门
# =update_apk 更新APK # http://域名/admin/apk?app_type=server (收到请求这个接口) 新服务器 http://域名/admin/apk?app_type=server (收到请求这个接口)
# =update_ota 更新OTA # http://域名/admin/ota (收到请求这个接口)
# =clear_data 清除数据
# =update_screen 更新屏保图片 http://域名/admin/screen (屏保更新此接口,然后显示屏保)
# =box_info 柜子信息 解锁数量 lock_count=1 单人 lock_count=2 双人 user_ids_a A组用户IDS(JSON数组) user_ids_b B组用户IDS(JSON数组)
"mac": "CCC820B74DBAB715740812F7B538590BB17A0889", #设备的唯一标识MAC
}
</code></pre>
<p><strong>连接端口如:1233服务器下发设备的数据,设备接收到后请求下面接口拉取更新数据:</strong> </p>
<pre><code> {
"type": "update_user",
# 操作类型
# =inventory 盘点命令
# =update_user 更新用户表
# =get_all_user 获取所有用户(包括已删除的)
# =update_consumable_type 更新物料类型表
# =update_consumable 更新物料表
# =update_consumable_batch 批量更新物料
# =open_door 远程开门
# =close_door 远程关门
# =update_apk 更新APK # http://域名/admin/apk?app_type=server (收到请求这个接口) 新服务器http://域名/admin/apk?app_type=server (收到请求这个接口)
# =clear_data 清除数据
# =update_screen 更新屏保图片 http://域名/admin/screen (屏保更新此接口,然后显示屏保)
# =box_info 柜子信息 解锁数量 lock_count=1 单人 lock_count=2 双人 user_ids_a A组用户IDS(JSON数组) user_ids_b B组用户IDS(JSON数组)
# =get_consumable_list 获取物料表
# =get_consumable_order 获取物料表领用记录
"mac": "CCC820B74DBAB715740812F7B538590BB17A0889", #设备的唯一标识MAC
"id": "1", # 单个信息ID
"batch_ids": [1,2,5"] # 多个批量信息ID数组
}
</code></pre>
<p><strong>设备拉取数据请求URL:</strong> </p>
<ul>
<li><a href="http://域名/device_v1">http://域名/device_v1</a></li>
</ul>
<p><strong>新调试设备拉取数据请求URL:</strong> </p>
<ul>
<li><a href="http://域名/device_v1">http://域名/device_v1</a></li>
</ul>
<p><strong>请求方式:</strong> </p>
<ul>
<li>POST
Content-Type:application/x-www-form-urlencoded
<strong>参数:</strong> </li>
</ul>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">mac</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>mac地址</td>
</tr>
<tr>
<td style="text-align: left;">type</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>更新类型 同上面的TCP类型一致 # =user_info 获取用户列表 # =consumable_info 获取物料表 # =consumable_info_move 获取移柜物料表 # =weigh 重量</td>
</tr>
<tr>
<td style="text-align: left;">user_id</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>用户ID</td>
</tr>
<tr>
<td style="text-align: left;">consumable_id</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>物料ID =get_consumable_order 获取物料表领用记录</td>
</tr>
<tr>
<td style="text-align: left;">page</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>页码 =get_consumable_order 获取物料表领用记录</td>
</tr>
<tr>
<td style="text-align: left;">consumable_ids</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">json</td>
<td>物料ID [1,2,32]</td>
</tr>
<tr>
<td style="text-align: left;">search</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>当 =get_consumable_list 传 搜索 rfid 或者 名称</td>
</tr>
<tr>
<td style="text-align: left;">update_time</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>本地保存的数据最新更新的时间 传空会拉取全部</td>
</tr>
<tr>
<td style="text-align: left;">time</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>本机的时间戳</td>
</tr>
<tr>
<td style="text-align: left;">sign</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>效验字符串 秘钥=Guang-Na-Yuan@0755 md5(秘钥+time参数+mac参数)</td>
</tr>
</tbody>
</table>
<p><strong>返回示例</strong>
(失败时输出公共参数)</p>
<p>成功</p>
<h1>用户数据</h1>
<h1>=update_user 更新用户表</h1>
<pre><code> {
"code": "200",
"msg": "",
"data": {
"list": [
{
"user_id": "31742691177408",
"account": "wangruiqing",
"password": "64654854dsfsd",
"name": "王瑞清",
"avatar": "http://域名/allfile/iot31532368854080/static/upload/avatar/20201224/16088073231965.jpeg",
"phone": "13211116666",
"update_time": "2020-12-24 19:05:54",
"is_manager": "0", #是否是管理员 =0 非管理员 =1是管理员(可以人脸识别登录APP后台系统)
}
]
}
}
</code></pre>
<h1>所有的用户数据</h1>
<h1>=get_all_user 获取所有用户(包括已删除的)</h1>
<pre><code> {
"code": "200",
"msg": "",
"data": {
"list": [
{
"user_id": "31742691177408",
"account": "wangruiqing",
"password": "64654854dsfsd",
"name": "王瑞清",
"avatar": "http://域名/allfile/iot31532368854080/static/upload/avatar/20201224/16088073231965.jpeg",
"phone": "13211116666",
"update_time": "2020-12-24 19:05:54",
"is_manager": "0", #是否是管理员 =0 非管理员 =1是管理员(可以人脸识别登录APP后台系统)
"is_delete": "0", #是否删除 =0 没有 =1 已删除
}
]
}
}
</code></pre>
<h1>物料类型</h1>
<h1>=update_consumable_type 更新物料类型表</h1>
<pre><code> {
"code": "200",
"msg": "",
"data": {
"list": [
{
"id": "1",
"name": "类型1",
"parent_id": "0",
"update_time": "2020-12-23 15:41:52"
},
{
"id": "6",
"name": "类型6",
"parent_id": "0",
"update_time": "2020-12-23 15:42:27"
},
{
"id": "13",
"name": "子类型1-1",
"parent_id": "1", #父ID =0的是一级 有值可能是2,3,4,5 级 最大五级
"update_time": "2020-12-24 20:06:01"
}
]
}
}
</code></pre>
<h1>物料表</h1>
<h1>=update_consumable 更新物料表</h1>
<pre><code> {
"code": "200",
"msg": "",
"data": {
"list": [
{
"id": "1",
"type_id": "2", #一级类型ID
"type_2_id": "1", #二级类型ID
"type_3_id": "3", #三级类型ID
"type_4_id": "4", #四级类型ID
"type_5_id": "5", #五级类型ID
"spec": "规格1",
"name": "物品1",
"rfid": "1", #RFID
"mark_id": "",
"num": "gdfgdf", #编码
"brand": "1212", #品牌
"stock": "23", #剩余量(库存)
"unit": "个", #单位
"price": "200.00", #价格
"expire_date": "保质期",
"advise_floor": "1", #建议存放板层
"real_floor": "1",#实际存放板层
"note": "备注说明",
"admin_name": "广纳院",
"update_time": "2020-12-23 17:32:13"
}
]
}
}
</code></pre>