From 3771d5551480964ab17f4c23a152df2482bf6470 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期六, 18 五月 2024 04:15:22 +0800 Subject: [PATCH] 更新设备操作 --- controller/systemCtl.go | 33 ++++++++++++++++++++++++++------- 1 files changed, 26 insertions(+), 7 deletions(-) diff --git a/controller/systemCtl.go b/controller/systemCtl.go index 567f401..0dc7cd4 100644 --- a/controller/systemCtl.go +++ b/controller/systemCtl.go @@ -1,13 +1,13 @@ package controller import ( - "gat1400Exchange/pkg/logger" - "gat1400Exchange/service" "net/http" + "sync" "time" "gat1400Exchange/config" "gat1400Exchange/pkg/auth" + "gat1400Exchange/pkg/logger" "gat1400Exchange/repository" "gat1400Exchange/vo" @@ -15,8 +15,9 @@ ) type SystemController struct { - Auth *auth.DigestAuth - ApeRepo repository.ApeRepository + Auth *auth.DigestAuth + ApeRepo repository.ApeRepository + DevCache *sync.Map // 缂撳瓨璁惧绫诲瀷, id涓簁ey, value涓� ape 閲囬泦璁惧, subPlatform 涓嬬骇, cascade涓婄骇 } // 鏋勯�犲嚱鏁� @@ -24,7 +25,12 @@ svr := repository.NewApeRepository() controller := SystemController{ApeRepo: svr} - controller.Auth = auth.NewDigestAuthenticator("Basic Realm", func(user, realm string) string { + realm := "Basic Realm" + if config.ServeConf.Realm != "" { + realm = config.ServeConf.Realm + } + + controller.Auth = auth.NewDigestAuthenticator(realm, func(user, realm string) string { if user == config.ServeConf.Username { return config.ServeConf.Password } @@ -33,6 +39,10 @@ }) controller.Auth.PlainTextSecrets = true + + for k, v := range svr.CollectDeviceType() { + controller.DevCache.Store(k, v) + } return controller } @@ -61,10 +71,18 @@ } if user == config.ServeConf.Username { + s.DevCache.Store(req.RegisterObject.DeviceID, "ape") + if err := s.ApeRepo.Create(req.RegisterObject.DeviceID); err != nil { logger.Warn("Create ape failure,%s", err.Error()) c.AbortWithStatus(http.StatusInternalServerError) return + } + } else { + // 鏈紦瀛樼殑id, 鍙兘鏄柊娣诲姞鐨勪笂涓嬬骇, 鏇存柊缂撳瓨 + _, ok := s.DevCache.Load(req.RegisterObject.DeviceID) + if ok { + s.ApeRepo.CollectDeviceType() } } @@ -79,8 +97,9 @@ return } - service.KeepDeviceAlive(req.KeepaliveObject.DeviceID) - s.ApeRepo.Keepalive(req.KeepaliveObject.DeviceID) + if devType, ok := s.DevCache.Load(req.KeepaliveObject.DeviceID); ok { + s.ApeRepo.Keepalive(req.KeepaliveObject.DeviceID, devType.(int)) + } rspMsg := vo.ResponseStatus{ RequestURL: c.FullPath(), -- Gitblit v1.8.0