From 90ebf117a7e1ccf630361fe0f66289563b1eeb25 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期六, 18 五月 2024 11:48:43 +0800
Subject: [PATCH] 修复设备类型缓存的使用
---
repository/apeRepo.go | 73 ++++++++++++++++++++++++++++++++----
1 files changed, 65 insertions(+), 8 deletions(-)
diff --git a/repository/apeRepo.go b/repository/apeRepo.go
index 379ec9a..a852a0b 100644
--- a/repository/apeRepo.go
+++ b/repository/apeRepo.go
@@ -7,6 +7,12 @@
"gat1400Exchange/vo"
)
+const (
+ deviceTypeApe int = iota
+ deviceTypeCascade
+ deviceTypeSubPlatform
+)
+
type ApeRepository struct {
}
@@ -14,15 +20,18 @@
return ApeRepository{}
}
-func (a *ApeRepository) Keepalive(id string) error {
- var ape models.Ape
-
- // 璁惧瀛樺湪
- if err := ape.FindById(id); err != nil {
- return nil
+func (a *ApeRepository) Keepalive(id string, devType int) {
+ switch devType {
+ case deviceTypeApe:
+ var m models.Ape
+ m.Keepalive(id)
+ case deviceTypeCascade:
+ var m models.Cascade
+ m.Keepalive(id)
+ case deviceTypeSubPlatform:
+ var m models.SubPlatform
+ m.Keepalive(id)
}
-
- return ape.Keepalive()
}
func (a *ApeRepository) Create(id string) error {
@@ -80,3 +89,51 @@
return ape.Save()
}
+
+func (a *ApeRepository) HandleNotification(fromId string, apes []vo.Ape) {
+ for _, a := range apes {
+ var ape models.Ape
+
+ err := ape.FindById(a.ApeID)
+ if err == nil {
+ ape.Ext = a
+ } else {
+ ape = models.Ape{
+ Id: a.ApeID,
+ Name: a.Name,
+ FromId: fromId,
+ HeartbeatTime: "",
+ Ext: a,
+ }
+ }
+
+ ape.Save()
+ }
+}
+
+func (a *ApeRepository) CollectDeviceType() map[string]int {
+ var ret = make(map[string]int, 0)
+
+ var ap models.Ape
+ if list, err := ap.FindAll(); err == nil {
+ for _, item := range list {
+ ret[item.Id] = deviceTypeApe
+ }
+ }
+
+ var ca models.Cascade
+ if list, err := ca.FindAll(); err == nil {
+ for _, item := range list {
+ ret[item.Id] = deviceTypeCascade
+ }
+ }
+
+ var su models.SubPlatform
+ if list, err := su.FindAll(); err == nil {
+ for _, item := range list {
+ ret[item.Id] = deviceTypeSubPlatform
+ }
+ }
+
+ return ret
+}
--
Gitblit v1.8.0