zhangzengfei
2024-06-06 dc765761b9bb6866635f06f754d28895507e711f
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
}