From 8c2d873b46cd91d4e7bd2fc55137b9190689e9b8 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期三, 05 六月 2024 17:13:51 +0800 Subject: [PATCH] 调整打印信息 --- controller/systemCtl.go | 48 +++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 39 insertions(+), 9 deletions(-) diff --git a/controller/systemCtl.go b/controller/systemCtl.go index 567f401..6985d70 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,8 @@ }) controller.Auth.PlainTextSecrets = true + controller.DevCache = new(sync.Map) + controller.InitDeviceCache() return controller } @@ -60,11 +68,18 @@ LocalTime: time.Now().Format("20060102150405"), } - if user == config.ServeConf.Username { + if user == config.ServeConf.Username || user == req.RegisterObject.DeviceID { + s.DevCache.Store(req.RegisterObject.DeviceID, 0) + 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, 鍙兘鏄柊娣诲姞鐨勪笂涓嬬骇, 鏇存柊缂撳瓨 + if _, ok := s.DevCache.Load(req.RegisterObject.DeviceID); !ok { + s.InitDeviceCache() } } @@ -79,8 +94,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(), @@ -142,7 +158,8 @@ return } - err := s.ApeRepo.Update(&req) + fromId := c.Param("from_id") + err := s.ApeRepo.Save(fromId, &req) if err != nil { c.JSON(http.StatusBadRequest, gin.H{"msg": err.Error()}) return @@ -150,3 +167,16 @@ c.JSON(http.StatusOK, gin.H{"msg": "ok"}) } + +func (s SystemController) InitDeviceCache() { + // 娓呯┖ + s.DevCache.Range(func(key, value interface{}) bool { + s.DevCache.Delete(key) + return true + }) + + for k, v := range s.ApeRepo.CollectDeviceType() { + s.DevCache.Store(k, v) + } + +} -- Gitblit v1.8.0