Переглянути джерело

新增默认连接信息接口

xucaiqin 1 рік тому
батько
коміт
c4de0aaf3b

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

@@ -0,0 +1,71 @@
+package com.middle.platform.data.biz.controller;
+
+import cn.hutool.core.util.StrUtil;
+import com.middle.platform.common.exception.BusinessException;
+import com.middle.platform.common.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.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.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.util.Objects;
+
+/**
+ * @author xucaiqin
+ * @date 2023-12-15 08:46:49
+ */
+@RestController
+@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 DeviceApi deviceApi;
+
+    /**
+     * 属性上报
+     *
+     * @param id 设备id
+     */
+    @GetMapping("/url")
+    public Result<Object> url(@RequestParam("id") Long id) throws UnknownHostException {
+        DeviceDetailVo deviceDetailVo = deviceApi.deviceDetail(id);
+        if (Objects.isNull(deviceDetailVo)) {
+            throw new BusinessException("设备不存在");
+        }
+        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.setUrl("mqtt://" + iotDeviceUrlVo.getHost());
+            return Result.ok(iotDeviceUrlVo);
+        }
+        InetAddress inetAddress = InetAddress.getLocalHost();
+        IotHttpUrlVo iotHttpUrlVo = new IotHttpUrlVo();
+        iotHttpUrlVo.setHost(inetAddress.getHostAddress());
+        iotHttpUrlVo.setPort("9000");//网关端口,暂时默认9000写死
+        iotHttpUrlVo.setMethod("POST");
+        iotHttpUrlVo.setPath(String.format("/iot-data/data/report/%s/%s", deviceDetailVo.getProductCode(), deviceDetailVo.getSn()));
+        iotHttpUrlVo.setUrl("http://" + iotHttpUrlVo.getHost() + ":" + iotHttpUrlVo.getPort() + iotHttpUrlVo.getPath());
+        return Result.ok(iotHttpUrlVo);
+    }
+
+}

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

@@ -0,0 +1,40 @@
+package com.middle.platform.data.biz.pojo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 设备连接信息
+ *
+ * @author xucaiqin
+ * @date 2023-12-19 13:43:38
+ */
+@Getter
+@Setter
+public class IotDeviceUrlVo {
+    /**
+     * 用户名
+     */
+    private String username;
+
+    /**
+     * 密码
+     */
+    private String password;
+
+    /**
+     * host
+     */
+    private String host;
+
+    /**
+     * port
+     */
+    private String port;
+    /**
+     * 连接地址
+     */
+    private String url;
+
+
+}

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

@@ -0,0 +1,36 @@
+package com.middle.platform.data.biz.pojo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * http设备连接信息
+ *
+ * @author xucaiqin
+ * @date 2023-12-19 13:43:38
+ */
+@Getter
+@Setter
+public class IotHttpUrlVo {
+
+    /**
+     * host
+     */
+    private String host;
+
+    /**
+     * port
+     */
+    private String port;
+    /**
+     * 方法
+     */
+    private String method;
+    /**
+     * 路径
+     */
+    private String path;
+    private String url;
+
+
+}

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

@@ -0,0 +1,10 @@
+package com.middle.platform.data.biz.pojo.constant;
+
+/**
+ * @author xucaiqin
+ * @date 2023-12-21 09:23:36
+ */
+public interface UrlProtocol {
+    String MQTT = "1";
+    String HTTP = "2";
+}