package models //目前设置的是全局的规则,跟摄像机无关 type CameraTimerule struct { Id string `json:"id"` Name string `json:"name"` TimeRule string `json:"time_rule"` } //DayCtl 从周一到周日每天的布控时间 type DayCtl struct { Day int `json:"day"` TimeRange []TimeRange `json:"time_range"` } //TimeRange 每天的时间段 type TimeRange struct { Start string `json:"start"` //开始 End string `json:"end"` //结束 } func (CameraTimerule) TableName() string { return "camera_timerule" } func (ctr *CameraTimerule) Exists(id string) bool { if id == "" { return false } err = db.Table(ctr.TableName()).Where("id = ?", id).First(&ctr).Error if err != nil { return false } return true } func (ctr *CameraTimerule) Insert() bool { tx := db.Table(ctr.TableName()).Begin() if tx.Error != nil { return false } if err := tx.Create(&ctr).Error; err != nil { tx.Rollback() return false } return tx.Commit().Error == nil } func (ctr *CameraTimerule) SelectById(id string) (rows int64, err error) { exeResult := db.Table(ctr.TableName()).Where("id=?", id).First(&ctr) if exeResult.Error != nil { return 0, exeResult.Error } return exeResult.RowsAffected, nil } func (ctr *CameraTimerule) Update() bool { saveResult := db.Table(ctr.TableName()).Save(&ctr) if saveResult.Error != nil { return false } if saveResult.RowsAffected > 0 { return true } return false } func (ctr *CameraTimerule) DeleteById(id string) (rows int64, err error) { delResult := db.Table("camera_timerule").Where("id=?", id).Delete(&CameraTimerule{}) if delResult.Error != nil { return 0, delResult.Error } return delResult.RowsAffected, nil } func (ctr *CameraTimerule) FindAll() (timeRules []CameraTimerule, err error) { if err := db.Table(ctr.TableName()).Find(&timeRules).Error; err != nil { return nil, err } return timeRules, nil } func (ctr *CameraTimerule) FindAllMap() map[string]CameraTimerule { m := make(map[string]CameraTimerule) list, _ := ctr.FindAll() if list != nil { for _, t := range list { m[t.Id] = t } } return m } func (ctr *CameraTimerule) FindByCameraId(cameraId string) (timeRules []CameraTimerule, err error) { if err := db.Table(ctr.TableName()).Where("camera_id=?", cameraId).Find(&timeRules).Error; err != nil { return nil, err } return timeRules, nil }