TRX 1 yıl önce
ebeveyn
işleme
bb246192c3

+ 6 - 0
src/main/java/com/zswl/dataservice/service/artemis/OperationMessageService.java

@@ -226,6 +226,10 @@ public class OperationMessageService {
                 event = arr[arr.length - 1];
                 jsonObject.put("event", event);
             }
+            if (event.equals("ping")) {
+                return;
+            }
+
             log.info("Topic: {}", topicName);
             String gateWayId = jsonObject.getStr("gatewayId");
             String deviceId = jsonObject.getStr("deviceId");
@@ -356,6 +360,8 @@ public class OperationMessageService {
             // 如果是ping,则平台也会处理
             if (event != null && event.equals("ping")) {
                 pingHandler(entity, requestData);
+            } else if (event != null && event.equals("ServerTime")) {
+                pingHandler(entity, requestData);
             } else {
                 // 业务处理失败
                 entity.setIsHandleSuccess(isHandleSuccess);

+ 40 - 0
src/main/java/com/zswl/dataservice/service/mqtt/ServerTimeService.java

@@ -0,0 +1,40 @@
+package com.zswl.dataservice.service.mqtt;
+
+import com.github.microservice.models.hxz.ServerTimeResult;
+import com.zswl.dataservice.domain.ExecuteAnnotationService;
+import com.zswl.dataservice.domain.ExecuteAnnotationServiceMethod;
+import com.zswl.dataservice.service.base.SuperService;
+import com.zswl.dataservice.utils.result.ResultContent;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
+import java.time.DayOfWeek;
+import java.time.LocalDate;
+import java.util.Date;
+import java.util.Map;
+
+/**
+ * @author TRX
+ * @date 2024/7/22
+ */
+@Slf4j
+@Service
+@ExecuteAnnotationService
+public class ServerTimeService extends SuperService {
+
+    @ExecuteAnnotationServiceMethod(value = "ServerTime", remark = "网关心跳")
+    public ResultContent ServerTime() {
+        var nowTime = new Date(System.currentTimeMillis());
+        ServerTimeResult result = new ServerTimeResult();
+        LocalDate date = LocalDate.now();
+        int week = Map.of(DayOfWeek.MONDAY, 1, DayOfWeek.TUESDAY, 2, DayOfWeek.WEDNESDAY, 3, DayOfWeek.THURSDAY, 4, DayOfWeek.FRIDAY, 5, DayOfWeek.SATURDAY, 6, DayOfWeek.SUNDAY, 0).get(date.getDayOfWeek());
+        String Time = new SimpleDateFormat("yyyyMMddHHmmss").format(nowTime) + "" + week;
+        result.setSuccess();
+        result.setTime(Time);
+        result.setWLPage(0);
+        result.setWLUptate(0);
+        return ResultContent.buildSuccess(result);
+    }
+
+}