| | |
| | | }) |
| | | |
| | | controller.Auth.PlainTextSecrets = true |
| | | |
| | | for k, v := range svr.CollectDeviceType() { |
| | | controller.DevCache.Store(k, v) |
| | | } |
| | | controller.DevCache = new(sync.Map) |
| | | controller.InitDeviceCache() |
| | | |
| | | return controller |
| | | } |
| | |
| | | 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()) |
| | |
| | | } |
| | | } 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() |
| | | } |
| | | } |
| | | |
| | |
| | | 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 |
| | |
| | | |
| | | 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) |
| | | } |
| | | |
| | | } |