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