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
|
}
|