From 8cf8bd6724bdef1df3b56a73aae3429875a351ff Mon Sep 17 00:00:00 2001 From: CN-JS-HuiBai Date: Sat, 18 Apr 2026 02:23:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E6=97=A5=E5=BF=97=E7=AD=89?= =?UTF-8?q?=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/api/main_entry.go | 2 +- internal/database/db.go | 9 ++++++--- internal/handler/admin_server_api.go | 14 ++++++++++++++ 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/cmd/api/main_entry.go b/cmd/api/main_entry.go index 045ba0b..3d31f47 100644 --- a/cmd/api/main_entry.go +++ b/cmd/api/main_entry.go @@ -33,7 +33,7 @@ func main() { registerWebRoutes(router) if config.IsLogLevelEnabled(config.AppConfig.LogLevel, "info") { - log.Printf("server starting on port %s", config.AppConfig.AppPort) + log.Printf("server starting on port %s (log_level: %s)", config.AppConfig.AppPort, config.AppConfig.LogLevel) } if err := router.Run(":" + config.AppConfig.AppPort); err != nil { log.Fatalf("failed to start server: %v", err) diff --git a/internal/database/db.go b/internal/database/db.go index 49eb6d1..c6cfb7b 100644 --- a/internal/database/db.go +++ b/internal/database/db.go @@ -3,6 +3,7 @@ package database import ( "fmt" "log" + "strings" "xboard-go/internal/config" "xboard-go/internal/model" @@ -46,9 +47,11 @@ func InitDB() { } func gormLogLevel(level string) logger.LogLevel { - switch config.NormalizeLogLevel(level) { - case "debug", "info": + switch strings.ToLower(strings.TrimSpace(level)) { + case "debug": return logger.Info + case "info": + return logger.Warn // Site request logs are handled by Gin, suppress GORM SQL logs in info case "warn": return logger.Warn case "error": @@ -56,6 +59,6 @@ func gormLogLevel(level string) logger.LogLevel { case "silent": return logger.Silent default: - return logger.Info + return logger.Warn } } diff --git a/internal/handler/admin_server_api.go b/internal/handler/admin_server_api.go index 0b6f9d2..d2dec4b 100644 --- a/internal/handler/admin_server_api.go +++ b/internal/handler/admin_server_api.go @@ -582,6 +582,20 @@ func serializeAdminServer(server model.Server, groups map[int]model.ServerGroup, isOnline = 2 } + // Inherit status from parent if current node is offline + if isOnline == 0 && server.ParentID != nil { + if parentServer, ok := servers[*server.ParentID]; ok { + pLastCheckAt, _ := database.CacheGetJSON[int64](nodeLastCheckKey(&parentServer)) + pLastPushAt, _ := database.CacheGetJSON[int64](nodeLastPushKey(&parentServer)) + if pLastCheckAt > 0 && now-pLastCheckAt <= 300 { + isOnline = 1 + } + if pLastPushAt > 0 && now-pLastPushAt <= 300 { + isOnline = 2 + } + } + } + availableStatus := 0 if isOnline == 1 { availableStatus = 1