zhangzengfei
2024-05-18 3771d5551480964ab17f4c23a152df2482bf6470
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
}