From 7a2e82325091a39c32cf9940d0016178a3655dc9 Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期二, 02 十二月 2025 17:53:04 +0800
Subject: [PATCH] 大屏接口修改

---
 src/main/java/com/wgcloud/service/RouterConnectionService.java |   12 ++++--
 src/main/java/com/wgcloud/task/DataScheduledTask.java          |    6 +-
 src/main/java/com/wgcloud/task/ScheduledTask.java              |   19 +++++----
 src/main/java/com/wgcloud/service/OspfInfoService.java         |   57 ++++++++++++++++++----------
 wgcloud-server.iml                                             |    1 
 pom.xml                                                        |    7 +++
 src/main/resources/application.yml                             |   11 ++---
 7 files changed, 69 insertions(+), 44 deletions(-)

diff --git a/pom.xml b/pom.xml
index 75af7dc..d412139 100644
--- a/pom.xml
+++ b/pom.xml
@@ -78,6 +78,11 @@
             <artifactId>lombok</artifactId>
         </dependency>
         <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.83</version>
+        </dependency>
+        <dependency>
             <groupId>cn.hutool</groupId>
             <artifactId>hutool-all</artifactId>
             <version>5.6.5</version>
@@ -229,4 +234,4 @@
     </build>
 
 
-</project>
\ No newline at end of file
+</project>
diff --git a/src/main/java/com/wgcloud/service/OspfInfoService.java b/src/main/java/com/wgcloud/service/OspfInfoService.java
index 1f2f36f..26c4432 100644
--- a/src/main/java/com/wgcloud/service/OspfInfoService.java
+++ b/src/main/java/com/wgcloud/service/OspfInfoService.java
@@ -1,5 +1,7 @@
 package com.wgcloud.service;
 
+import cn.hutool.http.HttpRequest;
+import com.alibaba.fastjson.TypeReference;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.wgcloud.entity.OspfErrorLog;
@@ -15,7 +17,9 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import com.alibaba.fastjson.JSON;
 
 import java.util.HashMap;
 import java.util.List;
@@ -38,6 +42,11 @@
     private OspfNeighborUtil ospfNeighborUtil;
     @Autowired
     private OspfErrorLogMapper errorLogMapper;
+
+    @Value("${osfService.host}")
+    private String remoteHost;
+    @Value("${osfService.port}")
+    private String remotePort;
 
     private static final Logger logger = LoggerFactory.getLogger(OspfInfoService.class);
 
@@ -78,27 +87,6 @@
         OspfInfoMapper.updateById(ospfInfo);
     }
 
-//    public boolean checkOspfStatus() {
-//        String command = "display ospf brief";
-//        String output = routerConnectionService.executeCommand(command);
-//
-//        if (output == null) {
-//            return false;
-//        }
-//
-//        // 妫�鏌ヨ緭鍑轰腑鏄惁鍖呭惈OSPF鐩稿叧淇℃伅
-//        boolean containsRouterId = StringUtils.containsIgnoreCase(output, "Router ID");
-//        boolean containsArea = StringUtils.containsIgnoreCase(output, "Area");
-//        boolean containsProcessId = StringUtils.containsIgnoreCase(output, "Process ID");
-//
-//        // 妫�鏌ユ槸鍚︽湁閿欒淇℃伅
-//        boolean containsError = StringUtils.containsIgnoreCase(output, "Error") ||
-//                StringUtils.containsIgnoreCase(output, "Fail") ||
-//                StringUtils.containsIgnoreCase(output, "Invalid");
-//
-//        return (containsRouterId && containsArea && containsProcessId) && !containsError;
-//    }
-
     /**
      * 鑾峰彇璇︾粏鐨凮SPF閭诲眳淇℃伅
      */
@@ -107,6 +95,7 @@
         for (OspfInfo ospfInfo : ospfInfos) {
             String command = "display ospf peer "+ospfInfo.getHostname();
             String result =  routerConnectionService.executeCommand(command,ospfInfo.getMonitorUsername(),ospfInfo.getMonitorPassword(),ospfInfo.getMonitorIp());
+            System.out.println("鑾峰彇鍒扮殑閭诲眳淇℃伅涓猴細"+result);
             if(StringUtils.isNotBlank(result)){
                 List<OspfNeighbor> neighbors = ospfNeighborUtil.analysisStr(result);
                 if(neighbors != null || neighbors.size()>0){
@@ -144,6 +133,32 @@
         }
     }
 
+    public void getRouterStatus() {
+        List<OspfInfo> ospfInfos = OspfInfoMapper.selectAllByParams(null);
+        for (OspfInfo ospfInfo : ospfInfos) {
+            String command = "display ospf peer "+ospfInfo.getHostname();
+            Map<String,String> map = new HashMap<>();
+            map.put("command",command);
+            map.put("username",ospfInfo.getMonitorUsername());
+            map.put("password",ospfInfo.getMonitorPassword());
+            map.put("monitorIp",ospfInfo.getMonitorIp());
+            String str = JSON.toJSONString(map);
+            System.out.println(str);
+            try {
+                String url = "http://"+remoteHost+":"+remotePort+"/api/connect/getResult";
+                String responseBody = HttpRequest.post(url)
+                        .timeout(5000)
+                        .body(str)
+                        .execute()
+                        .body();
+                System.out.println(responseBody);
+
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
     /**
      * 鑾峰彇OSPF鎺ュ彛鐘舵��
      */
diff --git a/src/main/java/com/wgcloud/service/RouterConnectionService.java b/src/main/java/com/wgcloud/service/RouterConnectionService.java
index 61ff536..2ffdc2c 100644
--- a/src/main/java/com/wgcloud/service/RouterConnectionService.java
+++ b/src/main/java/com/wgcloud/service/RouterConnectionService.java
@@ -82,10 +82,13 @@
      * 鎵ц璺敱鍣ㄥ懡浠�
      */
     public String executeCommand(String command,String username,String password,String hostname) {
-        if (!isConnected()) {
-            if (!connect(username,hostname,password)) {
-                return null;
-            }
+//        if (!isConnected()) {
+//            if (!connect(username,hostname,password)) {
+//                return null;
+//            }
+//        }
+        if (!connect(username,hostname,password)) {
+            return null;
         }
 
         try {
@@ -101,6 +104,7 @@
 
             reader.close();
             channel.disconnect();
+            disconnect();
             return output.toString();
         } catch (Exception e) {
             System.err.println("鎵ц鍛戒护澶辫触: " + e.getMessage());
diff --git a/src/main/java/com/wgcloud/task/DataScheduledTask.java b/src/main/java/com/wgcloud/task/DataScheduledTask.java
index 8244141..9d95269 100644
--- a/src/main/java/com/wgcloud/task/DataScheduledTask.java
+++ b/src/main/java/com/wgcloud/task/DataScheduledTask.java
@@ -97,7 +97,7 @@
      * 29绉掑悗鎵ц锛屼箣鍚庢瘡闅�29绉掓墽琛�, 鍗曚綅锛歮s銆�
      * 鎵归噺鎻愪氦鏁版嵁
      */
-    @Scheduled(initialDelay = 29000L, fixedRate = 29 * 1000)
+    //@Scheduled(initialDelay = 29000L, fixedRate = 29 * 1000)
     public synchronized void commitTask() {
         if (DateUtil.isClearTime()) {
             logger.info("姝e湪娓呯┖鍘嗗彶瓒嬪娍鍥炬暟鎹紝涓嶆墽琛屾彁浜ょ洃鎺ф暟鎹�----------" + DateUtil.getCurrentDateTime());
@@ -470,7 +470,7 @@
      * 姣忓ぉ鍑屾櫒8:24:30鎵ц
      * 娓呯悊鍘嗗彶鏁版嵁杩囩▼鍗冲皢缁撴潫鏃讹紝灏嗕富鏈恒�佺鍙c�佽繘绋嬨�乨ocker鐨勬洿鏂版椂闂村埛鏂颁负褰撳墠鏃堕棿
      */
-    @Scheduled(cron = "30 24 8 * * ?")
+    //@Scheduled(cron = "30 24 8 * * ?")
     public void refreshCommitDate() {
         try {
             taskUtilService.refreshCommitDate();
@@ -483,7 +483,7 @@
      * 姣忓ぉ鍑屾櫒8:10鎵ц
      * 鍒犻櫎鍘嗗彶瓒嬪娍鍥炬暟鎹紝榛樿15澶�
      */
-    @Scheduled(cron = "0 10 8 * * ?")
+    //@Scheduled(cron = "0 10 8 * * ?")
     public void clearHisdataTask() {
         if (!StaticKeys.NODE_MASTER.equals(commonConfig.getNodeType())) {
             logger.info("slave鑺傜偣涓嶆墽琛屾竻绌哄巻鍙茶秼鍔垮浘鏁版嵁浠诲姟");
diff --git a/src/main/java/com/wgcloud/task/ScheduledTask.java b/src/main/java/com/wgcloud/task/ScheduledTask.java
index 55899af..9315994 100644
--- a/src/main/java/com/wgcloud/task/ScheduledTask.java
+++ b/src/main/java/com/wgcloud/task/ScheduledTask.java
@@ -78,13 +78,14 @@
     private ServletContext servletContext;
 
     /**
-     * 30绉掑悗鎵ц锛屾瘡2鍒嗛挓妫�娴嬩竴娆�
+     * 30绉掑悗鎵ц锛屾瘡1鍒嗛挓妫�娴嬩竴娆�
      * 妫�娴媜spf鐘舵��
      */
     @Scheduled(initialDelay = 30000L, fixedRate = 2 * 60 * 1000)
     public void ospfDownCheckTask() {
-        logger.info("ospfDownCheckTask------------" + DateUtil.getDateTimeString(new Date()));
+        logger.info("ospf閾捐矾妫�娴嬩换鍔″紑濮�------------" + DateUtil.getDateTimeString(new Date()));
         ospfInfoService.getDetailedOspfNeighborInfo();
+        logger.info("ospf閾捐矾妫�娴嬩换鍔$粨鏉�------------" + DateUtil.getDateTimeString(new Date()));
     }
 
     /**
@@ -124,7 +125,7 @@
      * 20绉掑悗鎵ц锛屼箣鍚庢瘡6鍒嗛挓鍒锋柊涓�娆�
      * 鍒濆鍖栦竴浜涗换鍔�
      */
-    @Scheduled(initialDelay = 20000L, fixedRate = 6 * 60 * 1000)
+    //@Scheduled(initialDelay = 20000L, fixedRate = 6 * 60 * 1000)
     public void initTask() {
         logger.info("initTask------------" + DateUtil.getDateTimeString(new Date()));
         try {
@@ -160,7 +161,7 @@
      * 15绉掑悗鎵ц锛屼箣鍚庢瘡灏忔椂鍒锋柊涓�娆�
      * 鑾峰彇鎵�鏈夌鐩樻�诲閲忎箣鍜岋紝缂撳瓨璧锋潵
      */
-    @Scheduled(initialDelay = 15000L, fixedRate = 60 * 60 * 1000)
+    //@Scheduled(initialDelay = 15000L, fixedRate = 60 * 60 * 1000)
     public void sumDiskSizeCacheTask() {
         logger.info("sumDiskSizeCacheTask------------" + DateUtil.getDateTimeString(new Date()));
         try {
@@ -174,7 +175,7 @@
      * 150绉掑悗鎵ц锛屼箣鍚庢瘡闅�15鍒嗛挓鎵ц, 鍗曚綅锛歮s銆�
      * snmp璁惧鐩戞祴
      */
-    @Scheduled(initialDelay = 150000L, fixedRateString = "${base.snmpTimes}" + "000")
+    //@Scheduled(initialDelay = 150000L, fixedRateString = "${base.snmpTimes}" + "000")
     public void snmpInfoTask() {
         if (!StaticKeys.NODE_MASTER.equals(commonConfig.getNodeType())) {
             logger.info("slave鑺傜偣涓嶆墽琛宻nmp璁惧鐩戞祴浠诲姟");
@@ -211,7 +212,7 @@
      * 60绉掑悗鎵ц锛屼箣鍚庢瘡闅�10鍒嗛挓鎵ц, 鍗曚綅锛歮s銆�
      * 妫�娴嬫湇鍔℃帴鍙�
      */
-    @Scheduled(initialDelay = 60000L, fixedRateString = "${base.heathTimes}" + "000")
+    //@Scheduled(initialDelay = 60000L, fixedRateString = "${base.heathTimes}" + "000")
     public void heathMonitorTask() {
         if (!StaticKeys.NODE_MASTER.equals(commonConfig.getNodeType())) {
             logger.info("slave鑺傜偣涓嶆墽琛屾娴嬫湇鍔℃帴鍙d换鍔�");
@@ -247,7 +248,7 @@
      * 90绉掑悗鎵ц锛屼箣鍚庢瘡闅�15鍒嗛挓鎵ц, 鍗曚綅锛歮s銆�
      * 妫�娴嬫暟閫歅ING璁惧
      */
-    @Scheduled(initialDelay = 90000L, fixedRateString = "${base.dceTimes}" + "000")
+    //@Scheduled(initialDelay = 90000L, fixedRateString = "${base.dceTimes}" + "000")
     public void dceInfoTask() {
         if (!StaticKeys.NODE_MASTER.equals(commonConfig.getNodeType())) {
             logger.info("slave鑺傜偣涓嶆墽琛屾娴嬫暟閫氳澶嘝ING浠诲姟");
@@ -283,7 +284,7 @@
      * 120绉掑悗鎵ц锛屼箣鍚庢瘡闅�120鍒嗛挓鎵ц, 鍗曚綅锛歮s銆�
      * 鏁版嵁琛ㄧ洃鎺�
      */
-    @Scheduled(initialDelay = 120000L, fixedRateString = "${base.dbTableTimes}" + "000")
+    //@Scheduled(initialDelay = 120000L, fixedRateString = "${base.dbTableTimes}" + "000")
     public void tableCountTask() {
         if (!StaticKeys.NODE_MASTER.equals(commonConfig.getNodeType())) {
             logger.info("slave鑺傜偣涓嶆墽琛屾暟鎹〃鐩戞帶浠诲姟");
@@ -302,7 +303,7 @@
      * 300绉掑悗鎵ц锛屾瘡6鍒嗛挓妫�娴嬩竴娆�
      * 妫�娴嬩富鏈烘槸鍚﹀凡缁忎笅绾匡紝妫�娴嬭繘绋嬨�佺鍙c�乨ocker銆佹枃浠堕槻绡℃敼鏄惁鎭㈠
      */
-    @Scheduled(initialDelay = 300000L, fixedRate = 5 * 60 * 1000)
+    //@Scheduled(initialDelay = 300000L, fixedRate = 5 * 60 * 1000)
     public void hostDownCheckTask() {
         if (!StaticKeys.NODE_MASTER.equals(commonConfig.getNodeType())) {
             logger.info("slave鑺傜偣涓嶆墽琛屾娴嬩富鏈�/杩涚▼/docker/绔彛鏄惁鎭㈠浠诲姟");
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 9ace3ec..c96b5a2 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,5 +1,5 @@
 server:
-  port: 10001
+  port: 8889
   servlet:
     session:
       timeout: 120m
@@ -14,7 +14,7 @@
     name: wgcloud-server
   datasource:
     driver-class-name: com.mysql.jdbc.Driver
-    url: jdbc:mysql://localhost:3306/wgcloud?characterEncoding=utf-8&characterSetResults=utf8&autoReconnect=true&useSSL=false&allowMultiQueries=true&allowPublicKeyRetrieval=true
+    url: jdbc:mysql://120.1.33.103:10001/wgcloud?characterEncoding=utf-8&characterSetResults=utf8&autoReconnect=true&useSSL=false&allowMultiQueries=true&allowPublicKeyRetrieval=true
     username: root
     password: rootroot
     # hikari杩炴帴姹犵殑鍙傛暟 鐩稿叧璁剧疆
@@ -209,9 +209,8 @@
   varDatas: /collect/api/realData/varDatas
   alarm: /collect/api/alarm/findByPage
 
-router:
-  host: 192.168.1.1
-  username: xxxxx
-  password: xxxxx
+osfService:
+  host: 127.0.0.1
+  port: 8081
 
 
diff --git a/wgcloud-server.iml b/wgcloud-server.iml
index b2c4c9b..7f2fb8c 100644
--- a/wgcloud-server.iml
+++ b/wgcloud-server.iml
@@ -56,6 +56,7 @@
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.14.0-rc3" level="project" />
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.14.0-rc3" level="project" />
     <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.22" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.83" level="project" />
     <orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.6.5" level="project" />
     <orderEntry type="library" name="Maven: mysql:mysql-connector-java:8.0.28" level="project" />
     <orderEntry type="library" name="Maven: org.mariadb.jdbc:mariadb-java-client:2.7.3" level="project" />

--
Gitblit v1.9.1