Browse Source

开发MQTT设备数据上报调试接口

james 2 months ago
parent
commit
c923b9d814

+ 18 - 0
data-transfer/data-transfer-api/src/main/java/com/usky/transfer/domain/MqttDeviceDataVO.java

@@ -0,0 +1,18 @@
+package com.usky.transfer.domain;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class MqttDeviceDataVO implements Serializable {
+    /**
+     * topic
+     */
+    private String topic;
+
+    /**
+     * 设备数据体
+     */
+    private String deviceData;
+}

+ 12 - 0
data-transfer/data-transfer-biz/src/main/java/com/usky/transfer/controller/web/SendMessageController.java

@@ -2,6 +2,7 @@ package com.usky.transfer.controller.web;
 
 import com.usky.common.core.bean.ApiResult;
 import com.usky.transfer.domain.DeviceDataWriteVO;
+import com.usky.transfer.domain.MqttDeviceDataVO;
 import com.usky.transfer.service.QueryInfluxdbDataService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -28,4 +29,15 @@ public class SendMessageController {
         return ApiResult.success(queryInfluxdbDataService.sendDeviceDataToMQ(writeVO));
     }
 
+    /**
+     * MQTT设备数据上报调试
+     * @param mqttDeviceDataVO
+     * @return
+     */
+    @PostMapping("/mqttDeviceData")
+    public ApiResult<Map<String,Object>> mqttDeviceData(@RequestBody MqttDeviceDataVO mqttDeviceDataVO){
+        return ApiResult.success(queryInfluxdbDataService.mqttDeviceData(mqttDeviceDataVO));
+    }
+
+
 }

+ 3 - 0
data-transfer/data-transfer-biz/src/main/java/com/usky/transfer/service/QueryInfluxdbDataService.java

@@ -2,6 +2,7 @@ package com.usky.transfer.service;
 
 import com.usky.transfer.domain.*;
 import com.usky.common.mybatis.core.CrudService;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.List;
 import java.util.Map;
@@ -18,6 +19,8 @@ public interface QueryInfluxdbDataService extends CrudService<QueryInfluxdbData>
 
     Map<String,Object> sendDeviceDataToMQ(DeviceDataWriteVO writeVO);
 
+    Map<String,Object> mqttDeviceData(MqttDeviceDataVO mqttDeviceDataVO);
+
     Map<String,Object> deviceControl(String productCode, String deviceUuid, String commandStr,Integer tenantId, Long userId, String userName);
 
 }

+ 16 - 0
data-transfer/data-transfer-biz/src/main/java/com/usky/transfer/service/impl/QueryInfluxdbDataServiceImpl.java

@@ -247,4 +247,20 @@ public class QueryInfluxdbDataServiceImpl extends AbstractCrudService<QueryInflu
         return rec_map;
     }
 
+    @Override
+    public Map<String,Object> mqttDeviceData(MqttDeviceDataVO mqttDeviceDataVO){
+        Map<String,Object> rec_map = new HashMap<>();
+
+        String topic = mqttDeviceDataVO.getTopic();
+        String payload = mqttDeviceDataVO.getDeviceData();
+
+        JSONObject deviceDataJson = JSONObject.parseObject(payload);
+
+        mqttGateway.sendToMqtt(topic, deviceDataJson.toJSONString());
+
+        rec_map.put("code",200);
+        rec_map.put("message","发送成功");
+
+        return rec_map;
+    }
 }