From cacf363f222e354cad6db18c4a00fb1097d35c2c Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期四, 09 十一月 2023 14:30:58 +0800 Subject: [PATCH] fix --- service/problem/check.go | 49 +++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 39 insertions(+), 10 deletions(-) diff --git a/service/problem/check.go b/service/problem/check.go index a7110d6..e91272c 100644 --- a/service/problem/check.go +++ b/service/problem/check.go @@ -3,9 +3,11 @@ import ( "apsClient/conf" "apsClient/constvar" + "apsClient/model" "apsClient/pkg/sqlitex" "apsClient/service" - "apsClient/service/plc_address" + "fmt" + "net" "sync" ) @@ -14,7 +16,7 @@ constvar.ProblemCodeNetwork, constvar.ProblemCodeDB, constvar.ProblemCodeSerf, - constvar.ProblemCodeNsq, + constvar.ProblemCodeCloud, constvar.ProblemCodeDevice, constvar.ProblemCodeProcessModel, constvar.ProblemCodePlcConfig, @@ -27,7 +29,7 @@ constvar.ProblemCodeNetwork: "缃戠粶杩炴帴", constvar.ProblemCodeDB: "鏁版嵁搴�", constvar.ProblemCodeSerf: "serf闆嗙兢", - constvar.ProblemCodeNsq: "娑堟伅闃熷垪", + constvar.ProblemCodeCloud: "娑堟伅闃熷垪", constvar.ProblemCodeDevice: "鐢熶骇璁惧缁戝畾", constvar.ProblemCodeProcessModel: "宸ヨ壓鍙傛暟", constvar.ProblemCodePlcConfig: "plc閰嶇疆", @@ -58,7 +60,7 @@ checkObj = &DB{} case constvar.ProblemCodeSerf: checkObj = &Serf{} - case constvar.ProblemCodeNsq: + case constvar.ProblemCodeCloud: checkObj = &Nsq{} case constvar.ProblemCodeDevice: checkObj = &Device{} @@ -71,15 +73,16 @@ case constvar.ProblemCodePlcConnect: checkObj = &PlcConnect{} } - checkResultList = append(checkResultList, &CheckResult{ + checkResultListTemp = append(checkResultListTemp, &CheckResult{ ItemCode: item, ItemName: itemNameMap[item], CheckResult: checkObj.Check(), }) } mutex.Lock() + defer mutex.Unlock() checkResultList = checkResultListTemp - mutex.Unlock() + } func Get() []*CheckResult { @@ -102,7 +105,19 @@ type Network struct{} func (slf *Network) Check() bool { - return false + ifaces, err := net.Interfaces() + if err != nil { + fmt.Println("Error:", err) + return false + } + var netAllFailed bool + for _, iFace := range ifaces { + if iFace.Flags == net.FlagUp { + netAllFailed = false + fmt.Printf("Interface %s is DOWN, indicating a network issue.\n", iFace.Name) + } + } + return !netAllFailed } type DB struct{} @@ -124,7 +139,11 @@ type Nsq struct{} func (slf *Nsq) Check() bool { - return false + old, err := model.NewSystemStatusSearch().SetKey(constvar.SystemStatusKeyNsq).First() + if err != nil { + return false + } + return old.Value == constvar.SystemStatusValueNormal } type Device struct{} @@ -148,6 +167,9 @@ func (slf *PlcConfig) Check() bool { plcConfig, _ := service.NewDevicePlcService().GetDevicePlc() + if plcConfig == nil { + return false + } if plcConfig.Method == "" { return false } @@ -168,13 +190,20 @@ func (slf *PlcAddressList) Check() bool { plcConfig, _ := service.NewDevicePlcService().GetDevicePlc() - return len(plcConfig.Details) > 0 + return plcConfig != nil && len(plcConfig.Details) > 0 } type PlcProcessModelAddressList struct{} func (slf *PlcProcessModelAddressList) Check() bool { - return plc_address.IsLoad() + record, err := model.NewProcessModelPlcAddressSearch().SetDeviceID(conf.Conf.CurrentDeviceID).First() + if err != nil { + return false + } + if len(record.AddressList) == 0 { + return false + } + return true } type PlcConnect struct{} -- Gitblit v1.8.0