From bb48a3ef0bdc2b5a0b50ca429bc5bc0a118f9732 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期五, 13 九月 2024 02:49:22 +0800
Subject: [PATCH] use goroutinne run rfid read

---
 repository/apeRepo.go |   85 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 70 insertions(+), 15 deletions(-)

diff --git a/repository/apeRepo.go b/repository/apeRepo.go
index 379ec9a..e296d68 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 {
@@ -51,7 +60,7 @@
 		CapDirection:     0,
 		MonitorDirection: "",
 		MonitorAreaDesc:  "",
-		IsOnline:         "2",
+		IsOnline:         "1",
 		OwnerApsID:       "",
 		UserID:           "",
 		Password:         "",
@@ -67,16 +76,62 @@
 	return ape.FindAll()
 }
 
-func (a *ApeRepository) Update(req *vo.Ape) error {
+func (a *ApeRepository) Save(fromId string, req *vo.Ape) error {
 	var ape models.Ape
+	_ = ape.FindById(req.ApeID)
 
-	err := ape.FindById(req.ApeID)
-	if err != nil {
-		return err
-	}
-
+	ape.Id = req.ApeID
 	ape.Name = req.Name
+	ape.FromId = fromId
 	ape.Ext = *req
 
 	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