From 52b0fa9a5482a2278b0c683dab7d130a9e7d8b87 Mon Sep 17 00:00:00 2001
From: AprilWind <2100166581@qq.com>
Date: 星期四, 25 七月 2024 10:00:10 +0800
Subject: [PATCH] update 优化Monitor监控服务通知分类(可扩展邮箱发送,短信发送)

---
 ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/CustomNotifier.java |   50 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 47 insertions(+), 3 deletions(-)

diff --git a/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/CustomNotifier.java b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/CustomNotifier.java
index 477a598..0094f72 100644
--- a/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/CustomNotifier.java
+++ b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/CustomNotifier.java
@@ -9,6 +9,8 @@
 import org.springframework.stereotype.Component;
 import reactor.core.publisher.Mono;
 
+import static de.codecentric.boot.admin.server.domain.values.StatusInfo.*;
+
 /**
  * 鑷畾涔変簨浠堕�氱煡澶勭悊
  *
@@ -28,13 +30,55 @@
         return Mono.fromRunnable(() -> {
             // 瀹炰緥鐘舵�佹敼鍙樹簨浠�
             if (event instanceof InstanceStatusChangedEvent) {
+                // 鑾峰彇瀹炰緥娉ㄥ唽鍚嶇О
                 String registName = instance.getRegistration().getName();
+                // 鑾峰彇瀹炰緥ID
                 String instanceId = event.getInstance().getValue();
+                // 鑾峰彇瀹炰緥鐘舵��
                 String status = ((InstanceStatusChangedEvent) event).getStatusInfo().getStatus();
-                log.info("Instance Status Change: [{}],[{}],[{}]", registName, instanceId, status);
-            }
+                // 鑾峰彇鏈嶅姟URL
+                String serviceUrl = instance.getRegistration().getServiceUrl();
+                String statusName = null;
 
+                // 鏍规嵁瀹炰緥鐘舵�佹墽琛岀浉搴旂殑鎿嶄綔
+                switch (status) {
+                    // 鏈嶅姟涓婄嚎锛堝疄渚嬫垚鍔熷惎鍔ㄥ苟鍙互姝e父澶勭悊璇锋眰锛�
+                    case STATUS_UP:
+                        statusName = "鏈嶅姟涓婄嚎";
+                        break;
+
+                    // 鏈嶅姟绂荤嚎锛堝疄渚嬭鎵嬪姩鎴栬嚜鍔ㄥ湴浠庢湇鍔′腑绉婚櫎锛�
+                    case STATUS_OFFLINE:
+                        statusName = "鏈嶅姟绂荤嚎";
+                        break;
+
+                    // 鏈嶅姟鍙楅檺锛堣〃绀哄疄渚嬪湪鏌愪簺鏂归潰鍙楅檺锛屽彲鑳芥棤娉曞畬鍏ㄦ彁渚涙墍鏈夋湇鍔★級
+                    case STATUS_RESTRICTED:
+                        statusName = "鏈嶅姟鍙楅檺";
+                        break;
+
+                    // 鍋滄鏈嶅姟鐘舵�侊紙琛ㄧず瀹炰緥宸茶鏍囪涓哄仠姝㈡彁渚涙湇鍔★紝鍙兘鏄鍒掑唴缁存姢鎴栨祴璇曪級
+                    case STATUS_OUT_OF_SERVICE:
+                        statusName = "鍋滄鏈嶅姟鐘舵��";
+                        break;
+
+                    // 鏈嶅姟涓嬬嚎锛堝疄渚嬪洜宕╂簝銆侀敊璇垨鍏朵粬鍘熷洜鍋滄杩愯锛�
+                    case STATUS_DOWN:
+                        statusName = "鏈嶅姟涓嬬嚎";
+                        break;
+
+                    // 鏈嶅姟鏈煡寮傚父锛堢洃鎺х郴缁熸棤娉曠‘瀹氬疄渚嬬殑褰撳墠鐘舵�侊級
+                    case STATUS_UNKNOWN:
+                        statusName = "鏈嶅姟鏈煡寮傚父";
+                        break;
+
+                    // 榛樿鎯呭喌锛堟病鏈夊尮閰嶇殑鐘舵�侊級
+                    default:
+                        break;
+                }
+                log.info("Instance Status Change: 鐘舵�佸悕绉般�恵}銆�, 娉ㄥ唽鍚嶇О銆恵}銆�, 瀹炰緥ID銆恵}銆�, 鐘舵�併�恵}銆�, 鏈嶅姟URL銆恵}銆�",
+                    statusName, registName, instanceId, status, serviceUrl);
+            }
         });
     }
-
 }

--
Gitblit v1.9.3