From d15a4b40c50e273dd58b5458ec9616ad1bd1d4a1 Mon Sep 17 00:00:00 2001 From: wangbin Date: Tue, 8 Jul 2025 16:38:22 +0800 Subject: [PATCH] m --- Common/commonfunc.go | 10 +++++----- DAL/StaffInfoManage.go | 18 ++++++++++++++++-- frmAgendaPerson.go | 20 ++++++++++++++++++-- localcache/CongressCtrlCenter.go | 9 ++++++++- 4 files changed, 47 insertions(+), 10 deletions(-) diff --git a/Common/commonfunc.go b/Common/commonfunc.go index d1f6553..15cbf6f 100644 --- a/Common/commonfunc.go +++ b/Common/commonfunc.go @@ -1029,20 +1029,20 @@ func GetAvailableEndpoint() string { primaryIP := LoadConfig().SeverData.ServerIP backupIP := LoadConfig().SeverData.BackUpServerIP // 替换为实际备选IP - if IsIPReachable(primaryIP) { + if IsIPReachable(primaryIP, "9800") { return primaryIP } - if IsIPReachable(backupIP) { + if IsIPReachable(backupIP, "9800") { return backupIP } return "" } -func IsIPReachable(ip string) bool { - conn, err := net.DialTimeout("ip4:icmp", ip, 10*time.Millisecond) +func IsIPReachable(ip string, port string) bool { + conn, err := net.DialTimeout("tcp", ip+":"+port, 10*time.Millisecond) if err != nil { return false } - conn.Close() + defer conn.Close() return true } diff --git a/DAL/StaffInfoManage.go b/DAL/StaffInfoManage.go index fffe424..28effbf 100644 --- a/DAL/StaffInfoManage.go +++ b/DAL/StaffInfoManage.go @@ -104,8 +104,15 @@ func GetAllStaffInfoAllCPCS() []Model.T_Staff { } }() + targetIP := Common.GetAvailableEndpoint() + if targetIP == "" { + log.Error("所有IP均不可达") + log.Println("所有IP均不可达") + return nil + } + // 示例:发送 JSON 数据 - url := "http://" + Common.LoadConfig().SeverData.ServerIP + ":9800/vhwcapi/v1/web/api/service/tstaffinfo/getStaffViewNoPage" + url := "http://" + targetIP + ":9800/vhwcapi/v1/web/api/service/tstaffinfo/getStaffViewNoPage" jsonData := `{}` body, statusCode, err := Common.SendPostRequest(url, jsonData, "application/json") if err != nil { @@ -208,7 +215,14 @@ func UpdateStaffInfo(para *Model.T_Staff) bool { } }() - url := "http://" + Common.LoadConfig().SeverData.ServerIP + ":9800/vhwcapi/v1/web/api/service/tstaffinfo/clearCardNum" + targetIP := Common.GetAvailableEndpoint() + if targetIP == "" { + log.Error("所有IP均不可达") + log.Println("所有IP均不可达") + return false + } + + url := "http://" + targetIP + ":9800/vhwcapi/v1/web/api/service/tstaffinfo/clearCardNum" data := map[string]interface{}{ "id": para.ID, "st_vicecardnum": para.St_ViceCardNum, diff --git a/frmAgendaPerson.go b/frmAgendaPerson.go index 1b96d9d..6b101ae 100644 --- a/frmAgendaPerson.go +++ b/frmAgendaPerson.go @@ -85,7 +85,15 @@ func APDefaultLayout() fyne.CanvasObject { dialog.ShowError(errors.New("已经报到"), CardWindow) return } - url := "http://" + Common.LoadConfig().SeverData.ServerIP + ":9800/vhwcapi/v1/web/api/service/congresscontrol/checkinBatch" + + targetIP := Common.GetAvailableEndpoint() + if targetIP == "" { + log.Error("所有IP均不可达") + log.Println("所有IP均不可达") + return + } + + url := "http://" + targetIP + ":9800/vhwcapi/v1/web/api/service/congresscontrol/checkinBatch" data := map[string]interface{}{ "updatebatchobj": []map[string]interface{}{ {"perid": &(localcache.AllPerson[CurrentAPID.Row].AP_ID)}, @@ -125,7 +133,15 @@ func APDefaultLayout() fyne.CanvasObject { dialog.ShowError(errors.New("已经销报"), CardWindow) return } - url := "http://" + Common.LoadConfig().SeverData.ServerIP + ":9800/vhwcapi/v1/web/api/service/congresscontrol/checkoutBatch" + + targetIP := Common.GetAvailableEndpoint() + if targetIP == "" { + log.Error("所有IP均不可达") + log.Println("所有IP均不可达") + return + } + + url := "http://" + targetIP + ":9800/vhwcapi/v1/web/api/service/congresscontrol/checkoutBatch" data := map[string]interface{}{ "updatebatchobj": []map[string]interface{}{ {"perid": &(localcache.AllPerson[CurrentAPID.Row].AP_ID)}, diff --git a/localcache/CongressCtrlCenter.go b/localcache/CongressCtrlCenter.go index c988fa9..171ed99 100644 --- a/localcache/CongressCtrlCenter.go +++ b/localcache/CongressCtrlCenter.go @@ -4677,8 +4677,15 @@ func GetNowTimeCPCS() time.Time { } }() + targetIP := Common.GetAvailableEndpoint() + if targetIP == "" { + log.Error("所有IP均不可达") + log.Println("所有IP均不可达") + return time.Time{} + } + // 示例:发送 JSON 数据 - url := "http://" + Common.LoadConfig().SeverData.ServerIP + ":9800/vhwcapi/v1/web/api/service/congresscontrol/getnowtime" + url := "http://" + targetIP + ":9800/vhwcapi/v1/web/api/service/congresscontrol/getnowtime" jsonData := `{}` body, statusCode, err := Common.SendPostRequest(url, jsonData, "application/json") if err != nil {