package models
|
|
import (
|
"basic.com/valib/logger.git"
|
"github.com/satori/go.uuid"
|
)
|
|
const (
|
Default_Layer = -9999 //摄像机添加进来的默认楼层
|
TYPE_LOCAL_CAMERA = 0 //本地摄像机
|
TYPE_GB28181_CAMERA = 1 //国标摄像机
|
|
TYPE_RUNTYPE_VIDEO = -1 //单纯的监控,不做分析
|
TYPE_RUNTYPE_POLL = 0 //轮询做任务
|
TYPE_RUNTYPE_REALTIME = 1 //实时做任务
|
|
Camera_Status_NoRule = 0 //未配规则
|
Camera_Status_Wait = 1 //等待处理
|
Camera_Status_Doing = 2 //处理中
|
Camera_Status_Other = -1 //其他情况
|
Camera_Status_Err = -2 //故障
|
)
|
|
type CameraCompose struct {
|
Id string `gorm:"primary_key;column:id;type:varchar(100);unique;" json:"id"`
|
CameraId string `gorm:"column:cameraId" json:"cameraId"`
|
Status int `gorm:"column:status" json:"status"`
|
}
|
|
func (CameraCompose) TableName() string {
|
return "camera_compose"
|
}
|
|
func (ca *CameraCompose) Clean() (result int64, err error) {
|
exeResult := db.Exec("update camera_compose set status = 0")
|
return exeResult.RowsAffected, exeResult.Error
|
}
|
|
func (ca *CameraCompose) Save(up bool) (result bool, err error) {
|
var row int
|
err = db.Table("camera_compose").Where("cameraId=?", ca.CameraId).Count(&row).Error
|
if nil != err {
|
logger.Debug("获取失败", err.Error(), ca)
|
return false, err
|
}
|
|
if row == 0 {
|
ca.Id = uuid.NewV4().String()
|
result := db.Table("camera_compose").Save(&ca)
|
if result.Error != nil {
|
logger.Debug("创建失败", result.Error.Error())
|
return false, result.Error
|
}
|
return true, nil
|
} else if up {
|
result := db.Table(ca.TableName()).Where("cameraId=?", ca.CameraId).Update("status", ca.Status)
|
if result.Error != nil {
|
logger.Debug("更新失败", result.Error.Error())
|
return false, result.Error
|
}
|
return true, nil
|
}
|
return true, nil
|
}
|
|
func (ca *CameraCompose) Delete() (result int64, err error) {
|
exeResult := db.Exec("delete from camera_compose where cameraId=?", ca.CameraId)
|
return exeResult.RowsAffected, exeResult.Error
|
}
|
|
func (ca *CameraCompose) FindAll() (list []CameraCompose, err error) {
|
err = db.Table(ca.TableName()).Find(&list).Error
|
if err != nil {
|
return nil, err
|
}
|
|
return list, nil
|
}
|
|
func (ca *CameraCompose) DeleteNoExist(ids []string) (result int64, err error) {
|
exeResult := db.Exec("delete from camera_compose where cameraId not in (?)", ids)
|
return exeResult.RowsAffected, exeResult.Error
|
}
|