diff --git a/dao/video.go b/dao/video.go index 87e2bd4..9ef7bc0 100644 --- a/dao/video.go +++ b/dao/video.go @@ -3,6 +3,7 @@ package dao import ( "fmt" "gorm.io/gorm" + "videoplayer/proto" ) type Video struct { @@ -27,19 +28,35 @@ func FindWillDelVideoList(id int) []Video { func CreateVideo(videoPath, videoName string, cameraID, authID, human, isDelete int, createTime, endTime, deleteTime string, fileSize int) uint { video := Video{VideoPath: videoPath, VideoName: videoName, CameraID: cameraID, AuthId: authID, Human: human, IsDelete: isDelete, CreateTime: createTime, EndTime: endTime, DeleteTime: deleteTime, FileSize: fileSize} - res := DB.Create(&video) - if res.Error != nil { - return 0 - } - if deleteTime == "" { - DB.Exec("update videos set delete_time= DATE_ADD(NOW(), INTERVAL 20 DAY) where id=?", video.ID) //delete_time= DATE_ADD(NOW(), INTERVAL 20 DAY) + var res *gorm.DB + if proto.Config.SERVER_SQL_LOG { + res = DB.Debug().Create(&video) + if res.Error != nil { + return 0 + } + if deleteTime == "" { + DB.Debug().Exec("update videos set delete_time= DATE_ADD(NOW(), INTERVAL 20 DAY) where id=?", video.ID) //delete_time= DATE_ADD(NOW(), INTERVAL 20 DAY) + } + } else { + res = DB.Create(&video) + if res.Error != nil { + return 0 + } + if deleteTime == "" { + DB.Exec("update videos set delete_time= DATE_ADD(NOW(), INTERVAL 20 DAY) where id=?", video.ID) //delete_time= DATE_ADD(NOW(), INTERVAL 20 DAY) + } } return video.ID } // 文件已删除 func DeleteVideoByID(id, user int) int { - res := DB.Exec("update videos set deleted_at = now(),isdelete=1 where id=? and auth_id=?", id, user) //delete_time= DATE_ADD(NOW(), INTERVAL 20 DAY) + var res *gorm.DB + if proto.Config.SERVER_SQL_LOG { + res = DB.Debug().Exec("update videos set deleted_at = now(),isdelete=1 where id=? and auth_id=?", id, user) + } else { + res = DB.Exec("update videos set deleted_at = now(),isdelete=1 where id=? and auth_id=?", id, user) //delete_time= DATE_ADD(NOW(), INTERVAL 20 DAY) + } if res.Error != nil { fmt.Println("dao DeleteVideoByID:", res.Error) return 0 @@ -49,7 +66,12 @@ func DeleteVideoByID(id, user int) int { // 文件未删除时逻辑删除 func LogicDeleteVideoByID(id, user int) int { - res := DB.Exec("update videos set deleted_at=now(),delete_time=now() where id=? and auth_id=?", id, user) //delete_time= DATE_ADD(NOW(), INTERVAL 20 DAY) + var res *gorm.DB + if proto.Config.SERVER_SQL_LOG { + res = DB.Debug().Exec("update videos set deleted_at=now(),delete_time=now() where id=? and auth_id=?", id, user) + } else { + res = DB.Exec("update videos set deleted_at=now(),delete_time=now() where id=? and auth_id=?", id, user) + } if res.Error != nil { fmt.Println("dao LogicDeleteVideoByID:", res.Error) return 0 @@ -68,11 +90,12 @@ func RollbackVideoByID(id, user int) int { } func UpdateVideo(videoPath, videoName string, cameraID, videoID, authID, human, isDelete int, createTime, endTime string, fileSize int) bool { - res := DB.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 + var res *gorm.DB + if proto.Config.SERVER_SQL_LOG { + 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}) + } else { + res = DB.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}) } - res = DB.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 } @@ -94,7 +117,11 @@ func FindVideoListsByAuthID(auth_id int) []Video { func FindVideoListByTime(auth_id int, startTime, endTime string) []Video { var videos []Video - DB.Where("auth_id = ?", auth_id).Where("isdelete=0").Where("create_time > ? and create_time < ? and deleted_at != null", startTime, endTime).Find(&videos) + if proto.Config.SERVER_SQL_LOG { + DB.Debug().Where("auth_id = ?", auth_id).Where("create_time > ? and create_time < ? and isdelete=0 and deleted_at is null", startTime, endTime).Find(&videos) + } else { + DB.Where("auth_id = ?", auth_id).Where("create_time > ? and create_time < ? and isdelete=0 and deleted_at is null", startTime, endTime).Find(&videos) + } return videos } diff --git a/proto/conf.go b/proto/conf.go index e6d5670..b326040 100644 --- a/proto/conf.go +++ b/proto/conf.go @@ -75,6 +75,7 @@ type ConfigStruct struct { CID_BASE_DIR string `json:"cid_base_dir"` FILE_BASE_DIR string `json:"file_base_dir"` MONITOR bool `json:"monitor"` // 状态监控及邮件通知 + SERVER_SQL_LOG bool `json:"server_sql_log"` // 服务器sql日志 SERVER_PORT string `json:"server_port"` // 服务端口 LOG_SAVE_DAYS int `json:"log_save_days"` // 日志保存天数,-1表示不保存,0表示永久保存 SERVER_USER_TYPE string `json:"user_type"` // 服务器用户类型,master: 主服务器,slave: 从服务器,从服务器会定时同步数据 diff --git a/service/videoService.go b/service/videoService.go index f3df113..19e9be7 100644 --- a/service/videoService.go +++ b/service/videoService.go @@ -128,29 +128,5 @@ func UpdateVideo(videoPath, videoName string, cameraID, videoID, authID, human, if video.ID == 0 { return false } - if videoPath == "" { - videoPath = video.VideoPath - } - if videoName == "" { - videoName = video.VideoName - } - if cameraID == 0 { - cameraID = video.CameraID - } - if human == 0 { - human = video.Human - } - if isDelete == 0 { - isDelete = video.IsDelete - } - if createTime == "" { - createTime = video.CreateTime - } - if endTime == "" { - endTime = video.EndTime - } - if fileSize == 0 { - fileSize = video.FileSize - } return dao.UpdateVideo(videoPath, videoName, cameraID, videoID, authID, human, isDelete, createTime, endTime, fileSize) }