From 3771d5551480964ab17f4c23a152df2482bf6470 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期六, 18 五月 2024 04:15:22 +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