zhangzengfei
2024-06-05 8c2d873b46cd91d4e7bd2fc55137b9190689e9b8
controller/systemCtl.go
@@ -39,10 +39,8 @@
   })
   controller.Auth.PlainTextSecrets = true
   for k, v := range svr.CollectDeviceType() {
      controller.DevCache.Store(k, v)
   }
   controller.DevCache = new(sync.Map)
   controller.InitDeviceCache()
   return controller
}
@@ -70,8 +68,8 @@
      LocalTime:    time.Now().Format("20060102150405"),
   }
   if user == config.ServeConf.Username {
      s.DevCache.Store(req.RegisterObject.DeviceID, "ape")
   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())
@@ -80,9 +78,8 @@
      }
   } else {
      // 未缓存的id, 可能是新添加的上下级, 更新缓存
      _, ok := s.DevCache.Load(req.RegisterObject.DeviceID)
      if ok {
         s.ApeRepo.CollectDeviceType()
      if _, ok := s.DevCache.Load(req.RegisterObject.DeviceID); !ok {
         s.InitDeviceCache()
      }
   }
@@ -161,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
@@ -169,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)
   }
}