From 715f40da0c953ec0080ccf056f9d759c3a249ea0 Mon Sep 17 00:00:00 2001
From: jiazx0107@163.com <jiazx0107@163.com>
Date: 星期五, 10 十一月 2023 01:37:12 +0800
Subject: [PATCH] 重新调整代码结构和实现方式2,注意设备中的上行协议调整

---
 src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java |   87 ++++++++++++++++++++++++++++++-------------
 1 files changed, 61 insertions(+), 26 deletions(-)

diff --git a/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java b/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java
index 7f76daa..f91b0b8 100644
--- a/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java
+++ b/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java
@@ -1,12 +1,13 @@
 package com.fzzy.gateway.hx2023.service;
 
-import com.fzzy.api.data.GatewayProtocol;
 import com.fzzy.api.data.PushProtocol;
-import com.fzzy.gateway.api.DeviceReportService;
+import com.fzzy.gateway.api.GatewayDeviceReportService;
+import com.fzzy.gateway.data.BaseReqData;
+import com.fzzy.gateway.data.BaseResp;
 import com.fzzy.gateway.entity.GatewayDevice;
-import com.fzzy.gateway.hx2023.data.WebSocketPacket;
-import com.fzzy.gateway.hx2023.data.WebSocketPacketHeader;
-import com.fzzy.gateway.hx2023.websocket.WebSocketDeviceReport;
+import com.fzzy.gateway.hx2023.ScConstant;
+import com.fzzy.gateway.hx2023.kafka.KafkaDeviceReportService;
+import com.fzzy.mqtt.MqttGatewayService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 
@@ -14,14 +15,15 @@
 
 @Slf4j
 @Component
-public class DeviceReportServiceImpl implements DeviceReportService {
-
+public class DeviceReportServiceImpl implements GatewayDeviceReportService {
 
     @Resource
-    private WebSocketDeviceReport webSocketDeviceReport;
+    private KafkaDeviceReportService kafkaDeviceReportService;
+    @Resource
+    private MqttGatewayService publishService;
 
     @Override
-    public String getProvinceProtocol() {
+    public String getProtocol() {
         return PushProtocol.GATEWAY_SC_2023.getCode();
     }
 
@@ -33,24 +35,57 @@
             return "ERROR:娌℃湁鑾峰彇鍒拌澶囬厤缃俊鎭�";
         }
 
-        //浣跨敤WEBSOCKET杩斿洖
-        if (GatewayProtocol.GATE_WEBSOCKET.equals(device.getPushProtocol())) {
-
-            WebSocketPacket packet = new WebSocketPacket();
-
-            WebSocketPacketHeader header = new WebSocketPacketHeader();
-            header.setDeviceName(device.getDeviceName());
-            packet.setHeaders(header);
-            packet.setMessageType("");
-            packet.setDeviceId(device.getDeviceId());
-            packet.setProperties(null);
-            packet.setTimestamp(System.currentTimeMillis());
-
-
-            webSocketDeviceReport.sendByPacket(packet);
-
-        }
 
         return null;
     }
+
+    @Override
+    public BaseResp reportGrainData(BaseReqData reqData) {
+
+        String topic = ScConstant.TOPIC_REPORT;
+        topic = topic.replace("${productId}", reqData.getProductId()).replace("${deviceId}", reqData.getDeviceId());
+
+        publishService.publishMqttWithTopic(reqData.getData(), topic);
+
+        log.info("----------------------------鎺ㄩ�丮QTT绮儏淇℃伅---------------------------");
+        log.info("-----TOPIC-----{}", topic);
+        log.info("-----Message-----{}", reqData.getData());
+
+        return new BaseResp();
+    }
+
+    @Override
+    public BaseResp reportWeightData(BaseReqData reqData) {
+
+        String topic = ScConstant.TOPIC_MESSAGE_REPORT;
+
+        topic = topic.replace("${productId}", reqData.getProductId()).replace("{deviceId}", reqData.getDeviceId());
+
+        publishService.publishMqttWithTopic(reqData.getData(), topic);
+
+        log.info("----------------------------鎺ㄩ�丮QTT鍦扮淇℃伅---------------------------");
+        log.info("-----TOPIC-----{}", topic);
+        log.info("-----Message-----{}", reqData.getData());
+        return new BaseResp();
+    }
+
+    @Override
+    public BaseResp reportLprData(BaseReqData reqData) {
+        String topic = ScConstant.TOPIC_MESSAGE_REPORT;
+        topic = topic.replace("${productId}", reqData.getProductId()).replace("{deviceId}", reqData.getDeviceId());
+
+        publishService.publishMqttWithTopic(reqData.getData(), topic);
+
+        log.info("----------------------------鎺ㄩ�丮QTT杞︾墝璇嗗埆淇℃伅---------------------------");
+        log.info("-----TOPIC-----{}", topic);
+        log.info("-----Message-----{}", reqData.getData());
+        return new BaseResp();
+    }
+
+    @Override
+    public BaseResp reportGrainDataByKafka(BaseReqData reqData) {
+        String topic = ScConstant.TOPIC_MESSAGE_REPORT;
+        kafkaDeviceReportService.publishWithTopic(reqData.getData(), topic);
+        return new BaseResp();
+    }
 }

--
Gitblit v1.9.3