package dao import ( "gorm.io/gorm" "time" ) type Video struct { gorm.Model CameraID int `gorm:"column:camera_id"` VideoPath string `gorm:"column:video_path"` VideoName string `gorm:"column:video_name"` AuthId int `gorm:"column:auth_id"` Human int `gorm:"column:human"` IsDelete int `gorm:"column:isdelete"` CreateTime string `gorm:"column:create_time"` EndTime string `gorm:"column:end_time"` DeleteTime string `gorm:"column:delete_time"` FileSize int `gorm:"column:file_size"` } func FindWillDelVideoList(id int) []Video { var videos []Video DB.Debug().Where("auth_id = ?", id).Where("delete_time<=now()").Find(&videos) return videos } func CreateVideo(videoPath, videoName string, cameraID, authID, human, isDelete int, createTime, endTime string, fileSize int) uint { video := Video{VideoPath: videoPath, VideoName: videoName, CameraID: cameraID, AuthId: authID, Human: human, IsDelete: isDelete, CreateTime: createTime, EndTime: endTime, FileSize: fileSize} res := DB.Debug().Create(&video) if res.Error != nil { return 0 } return video.ID } func DeleteVideoByID(id, user int) int { delete_time := time.Now().Format("2006-01-02 15:04:05") DB.Debug().Where("id = ? and auth_id = ?", id, user).Updates(&Video{DeleteTime: delete_time, IsDelete: 1}) DB.Debug().Where("id = ? and auth_id = ?", id, user).Delete(&Video{}) return id } func UpdateVideo(videoPath, videoName string, cameraID, videoID, authID, human, isDelete int, createTime, endTime string, fileSize int) bool { res := DB.Debug().Model(&Video{}).Where("id = ? and auth_id = ?", videoID, authID).Updates(Video{VideoPath: videoPath, VideoName: videoName, CameraID: cameraID, AuthId: authID, Human: human, IsDelete: isDelete, CreateTime: createTime, EndTime: endTime, FileSize: fileSize}) if res.Error != nil { return false } res = DB.Debug().Exec("update videos set delete_time= DATE_ADD(NOW(), INTERVAL 20 DAY) where id=? and auth_id=?", videoID, authID) //delete_time= DATE_ADD(NOW(), INTERVAL 20 DAY) if res.Error != nil { return false } return true } func FindVideoByID(id, auth_id int) Video { var video Video DB.Debug().Where("id = ? and auth_id = ?", id, auth_id).Where("isdelete = ?", 0).First(&video) return video } func FindVideoListsByAuthID(auth_id int) []Video { var videos []Video DB.Debug().Where("auth_id = ?", auth_id).Where("isdelete = ?", 0).Limit(30).Find(&videos) return videos } func FindVideoListByTime(auth_id int, startTime, endTime string) []Video { var videos []Video DB.Debug().Where("auth_id = ?", auth_id).Where("isdelete=0").Where("create_time > ? and create_time < ?", startTime, endTime).Find(&videos) return videos } func DelayVideo(id, auth_id, day int) { DB.Exec("update video set end_time = date_add(end_time, interval ? day) where id = ? and auth_id = ?", day, id, auth_id) }