62 lines
1.8 KiB
Go
62 lines
1.8 KiB
Go
package dao
|
|
|
|
import "gorm.io/gorm"
|
|
|
|
type File struct {
|
|
gorm.Model
|
|
// 存储文件名
|
|
FileStoreName string `gorm:"column:file_store_name;uniqueIndex:idx_file_name"`
|
|
FileName string `gorm:"column:file_name"`
|
|
FileSize int `gorm:"column:file_size"`
|
|
FileType string `gorm:"column:file_type"`
|
|
FilePath string `gorm:"column:file_path"`
|
|
AuthID int `gorm:"column:auth_id"`
|
|
}
|
|
|
|
func CreateFile(fileStoreName, fileName, fileType, filePath string, fileSize, authID int) uint {
|
|
file := File{FileStoreName: fileStoreName, FileName: fileName, FileType: fileType, FilePath: filePath, FileSize: fileSize, AuthID: authID}
|
|
result := DB.Debug().Create(&file)
|
|
if result.Error != nil {
|
|
return 0
|
|
}
|
|
return file.ID
|
|
}
|
|
|
|
func DeleteFileByID(id, user int) bool {
|
|
res := DB.Debug().Model(&File{}).Where("id = ? and auth_id = ?", id, user).Delete(&File{})
|
|
if res.Error != nil {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
func FindFileByID(id, auth_id int) File {
|
|
var file File
|
|
DB.Debug().Where("id = ? and auth_id = ?", id, auth_id).First(&file)
|
|
return file
|
|
}
|
|
|
|
func FindFileByNames(fileName string, auth_id int) File {
|
|
var file File
|
|
DB.Debug().Where("file_name = ? and auth_id = ?", fileName, auth_id).First(&file)
|
|
return file
|
|
}
|
|
|
|
func FindFileByAuthID(auth_id int) []File {
|
|
var files []File
|
|
DB.Debug().Where("auth_id = ?", auth_id).Find(&files)
|
|
return files
|
|
}
|
|
|
|
func UpdateFileByID(id, auth_id int, fileStoreName, fileName, fileType, filePath string, fileSize int) bool {
|
|
pd := FindFileByID(id, auth_id)
|
|
if pd.ID == 0 {
|
|
return false
|
|
}
|
|
result := DB.Debug().Model(&File{}).Where("id = ? and auth_id = ?", id, auth_id).Updates(File{FileStoreName: fileStoreName, FileName: fileName, FileType: fileType, FilePath: filePath, FileSize: fileSize})
|
|
if result.Error != nil {
|
|
return false
|
|
}
|
|
return true
|
|
}
|