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 }