package repository import ( "time" "gat1400Exchange/models" "gat1400Exchange/vo" ) const ( deviceTypeApe int = iota deviceTypeCascade deviceTypeSubPlatform ) type ApeRepository struct { } func NewApeRepository() ApeRepository { return ApeRepository{} } 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) } } func (a *ApeRepository) Create(id string) error { var ape models.Ape // 设备存在 if err := ape.FindById(id); err == nil { return nil } ape.Id = id ape.Name = id ape.HeartbeatTime = time.Now().Format("2006-01-02 15:04:05") ape.Ext = vo.Ape{ ApeID: id, Name: "", Model: "", IPAddr: "", IPV6Addr: "", Port: 0, Longitude: 0, Latitude: 0, PlaceCode: "", Place: "", OrgCode: "", CapDirection: 0, MonitorDirection: "", MonitorAreaDesc: "", IsOnline: "1", OwnerApsID: "", UserID: "", Password: "", FunctionType: "2", } return ape.Save() } func (a *ApeRepository) List() ([]models.Ape, error) { var ape models.Ape return ape.FindAll() } func (a *ApeRepository) Save(fromId string, req *vo.Ape) error { var ape models.Ape _ = ape.FindById(req.ApeID) 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 }