package models import "errors" //国标的摄像机信息 type VssChannel struct { PublicID string `gorm:"column:publicId;not null;unique;" json:"publicId"` //国标资源通道20位id (用于请求视频、控制等操作) DevPubID string `gorm:"column:devPubId" json:"devPubId"` //通道的设备id ResType int `gorm:"column:resType;default:1;" json:"resType"` //1-通道资源 2-资源组 Name string `gorm:"column:name;" json:"name"` //资源名称 Alive int `gorm:"column:alive;default:0;" json:"alive"` // 状态 0:不在线 1:在线 Corp string `gorm:"column:corp" json:"corp"` //厂商 Model string `gorm:"column:model" json:"model"` //设备类型 Owner string `gorm:"column:owner" json:"owner"` //设备归属 CivilCode string `gorm:"column:civilCode" json:"civilCode"` //行政区域 (可以按照行政区域进行划分资源组) Address string `gorm:"column:address" json:"address"` //地址 ParentId string `gorm:"column:parentId" json:"parentId"` //父节点id IP string `gorm:"column:ip" json:"ip"` //IP Port int `gorm:"column:port" json:"port"` //端口 Longitude float64 `gorm:"column:longitude;default:0;" json:"longitude"` //经度 Latitude float64 `gorm:"column:latitude;default:0;" json:"latitude"` //纬度 PTZType int `gorm:"column:ptzType;default:0;" json:"ptzType"` //控制类型 1-球机;2-半球;3-固定枪机;4-遥控枪机; StreamType int `gorm:"column:streamType;default:0;" json:"streamType"` //码流类型 0-H264;1-MPEG2;2-MPEG4;3-SVAC;4-3GP;5-H265; RealRtspUrl string `gorm:"column:realRtspUrl" json:"realRtspUrl"` //实时视频的rtsp地址 ChanRtspUrl string `gorm:"column:chanRtspUrl" json:"chanRtspUrl"` DMarker int `gorm:"column:dMarker;default:1;" json:"dMarker"` ChanPubID string `gorm:"column:chanPubId;" json:"chanPubId"` } func (VssChannel) TableName() string { return "VSSChannelTbl" } func (v *VssChannel) Insert() (bool,error) { result := db.Table(v.TableName()).Create(&v) if result.Error != nil { return false, result.Error } if result.RowsAffected > 0 { return true, nil } return false, errors.New("新增失败") } func (v *VssChannel) Update() (bool,error) { result := db.Table(v.TableName()).Save(&v) if result.Error != nil { return false, result.Error } if result.RowsAffected > 0 { return true, nil } return false, errors.New("更新失败") } func (v *VssChannel) Exist(publicId string) bool { dbSelect := db.Table(v.TableName()).Where("publicId=?", publicId).First(&v) if dbSelect.Error != nil || dbSelect.RowsAffected ==0 { return false } return true } func (v *VssChannel) FindAll() (list []VssChannel, err error) { err = db.Table(v.TableName()).Find(&list).Error if err != nil { return []VssChannel{},err } return list,nil } func (v *VssChannel) FindAllMap() map[string]VssChannel { m := make(map[string]VssChannel) list, _ := v.FindAll() for _, c := range list { m[c.PublicID] = c } return m }