Kaynağa Gözat

获取设备连接协议数据配置

xucaiqin 1 yıl önce
ebeveyn
işleme
a62316840f

+ 16 - 15
iot-module/iot-module-data/iot-module-data-biz/src/main/java/com/middle/platform/data/biz/controller/UrlController.java

@@ -5,11 +5,13 @@ import com.middle.platform.common.core.exception.BusinessException;
 import com.middle.platform.common.core.utils.Result;
 import com.middle.platform.data.biz.pojo.IotDeviceUrlVo;
 import com.middle.platform.data.biz.pojo.IotHttpUrlVo;
+import com.middle.platform.data.biz.pojo.IotKafkaUrlVo;
 import com.middle.platform.data.biz.pojo.constant.UrlProtocol;
 import com.middle.platform.manage.api.feign.DeviceApi;
 import com.middle.platform.manage.api.pojo.DeviceDetailVo;
 import lombok.RequiredArgsConstructor;
-import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.amqp.RabbitProperties;
+import org.springframework.boot.autoconfigure.kafka.KafkaProperties;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -27,19 +29,12 @@ import java.util.Objects;
 @RequestMapping("/device")
 @RequiredArgsConstructor
 public class UrlController {
-    @Value("${spring.rabbitmq.host}")
-    private String host;
-    @Value("${spring.rabbitmq.username}")
-    private String username;
-    @Value("${spring.rabbitmq.password}")
-    private String password;
-    @Value("${spring.rabbitmq.port}")
-    private String port;
-
+    private final RabbitProperties rabbitProperties;
+    private final KafkaProperties kafkaProperties;
     private final DeviceApi deviceApi;
 
     /**
-     * 属性上报
+     * 获取设备连接协议数据配置
      *
      * @param id 设备id
      */
@@ -51,13 +46,19 @@ public class UrlController {
         }
         if (StrUtil.equals(String.valueOf(deviceDetailVo.getReportProtocol()), UrlProtocol.MQTT)) {
             IotDeviceUrlVo iotDeviceUrlVo = new IotDeviceUrlVo();
-            iotDeviceUrlVo.setUsername(username);
-            iotDeviceUrlVo.setPassword(password);
-            iotDeviceUrlVo.setHost(host);
-            iotDeviceUrlVo.setPort(port);
+            iotDeviceUrlVo.setUsername(rabbitProperties.getUsername());
+            iotDeviceUrlVo.setPassword(rabbitProperties.getPassword());
+            iotDeviceUrlVo.setHost(rabbitProperties.getHost());
+            iotDeviceUrlVo.setPort(rabbitProperties.getPort());
             iotDeviceUrlVo.setUrl("mqtt://" + iotDeviceUrlVo.getHost());
             return Result.ok(iotDeviceUrlVo);
         }
+        if (StrUtil.equals(String.valueOf(deviceDetailVo.getReportProtocol()), UrlProtocol.KAFKA)) {
+            IotKafkaUrlVo iotKafkaUrlVo = new IotKafkaUrlVo();
+            iotKafkaUrlVo.setBootstrapServers(kafkaProperties.getBootstrapServers());
+            return Result.ok(iotKafkaUrlVo);
+        }
+
         InetAddress inetAddress = InetAddress.getLocalHost();
         IotHttpUrlVo iotHttpUrlVo = new IotHttpUrlVo();
         iotHttpUrlVo.setHost(inetAddress.getHostAddress());

+ 1 - 1
iot-module/iot-module-data/iot-module-data-biz/src/main/java/com/middle/platform/data/biz/pojo/IotDeviceUrlVo.java

@@ -30,7 +30,7 @@ public class IotDeviceUrlVo {
     /**
      * port
      */
-    private String port;
+    private Integer port;
     /**
      * 连接地址
      */

+ 18 - 0
iot-module/iot-module-data/iot-module-data-biz/src/main/java/com/middle/platform/data/biz/pojo/IotKafkaUrlVo.java

@@ -0,0 +1,18 @@
+package com.middle.platform.data.biz.pojo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 设备连接信息
+ *
+ * @author xucaiqin
+ * @date 2023-12-19 13:43:38
+ */
+@Getter
+@Setter
+public class IotKafkaUrlVo {
+    private List<String> bootstrapServers;
+}

+ 1 - 0
iot-module/iot-module-data/iot-module-data-biz/src/main/java/com/middle/platform/data/biz/pojo/constant/UrlProtocol.java

@@ -7,4 +7,5 @@ package com.middle.platform.data.biz.pojo.constant;
 public interface UrlProtocol {
     String MQTT = "1";
     String HTTP = "2";
+    String KAFKA = "3";
 }

+ 3 - 3
iot-module/iot-module-data/iot-module-data-biz/src/main/java/com/middle/platform/data/biz/service/kafka/KafkaService.java

@@ -24,14 +24,14 @@ public class KafkaService {
 
     @KafkaListener(topics = {"iot.data"})
     public void receive(ConsumerRecord<String, Object> object) {
-        log.info("receive:" + JSONObject.toJSONString(object));
+        log.info("receive:" + object);
         Object value = object.value();
         if (value instanceof String vs) {
             KafkaData kafkaData = JSONObject.parseObject(vs, KafkaData.class);
-            if(StrUtil.isBlank(kafkaData.getProductKey())){
+            if (StrUtil.isBlank(kafkaData.getProductKey())) {
                 return;
             }
-            if(StrUtil.isBlank(kafkaData.getDeviceSn())){
+            if (StrUtil.isBlank(kafkaData.getDeviceSn())) {
                 return;
             }
             amqpTemplate.convertAndSend(RabbitConstant.TOPIC_EXCHANGE_DATA, RabbitConstant.ROUTING_POINT_DATA_PREFIX + RabbitConstant.RAW_QUEUE,