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