38 lines
988 B
Go
38 lines
988 B
Go
|
package dao
|
|||
|
|
|||
|
import (
|
|||
|
"gorm.io/gorm"
|
|||
|
)
|
|||
|
|
|||
|
type File struct {
|
|||
|
BaseModel
|
|||
|
UUID string `gorm:"unique;type varchar(32);comment:'文件UUID'"`
|
|||
|
UserId int32 `gorm:"comment:'上传者ID'"`
|
|||
|
FileName string `gorm:"type:varchar(255);comment:'文件名称'"`
|
|||
|
FileSize uint32 `gorm:"comment:'文件大小'"`
|
|||
|
FileType string `gorm:"comment:'文件类型,对应html中支持的Content-Type类型'"`
|
|||
|
FileContent []byte `gorm:"type:mediumblob;comment:'文件内容,目前最大为16M'"`
|
|||
|
}
|
|||
|
|
|||
|
func File_Insert(data *File) (uint64, error) {
|
|||
|
if err := s.db.Create(data).Error; err != nil {
|
|||
|
return 0, err
|
|||
|
}
|
|||
|
return uint64(data.ID), nil
|
|||
|
}
|
|||
|
|
|||
|
func File_Query(uuid string) (*File, error) {
|
|||
|
var data File
|
|||
|
if err := s.db.Where("uuid = ?", uuid).First(&data).Error; err != nil {
|
|||
|
if err == gorm.ErrRecordNotFound {
|
|||
|
return nil, nil
|
|||
|
}
|
|||
|
return nil, err
|
|||
|
}
|
|||
|
return &data, nil
|
|||
|
}
|
|||
|
|
|||
|
func File_Delete(uuid string) error {
|
|||
|
return s.db.Where("uuid = ?", uuid).Delete(&File{}).Error
|
|||
|
}
|