app_file.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package system
  2. import (
  3. "errors"
  4. "gorm.io/gorm"
  5. "server/global"
  6. "server/model/system"
  7. "server/model/system/request"
  8. "time"
  9. )
  10. type FileService struct{}
  11. func (fileService *FileService) GetFileInfoList(info request.SearchAppFileParams) (list interface{}, total int64, err error) {
  12. limit := info.PageInfo.PageSize
  13. offset := info.PageInfo.PageSize * (info.PageInfo.Page - 1)
  14. db := global.GVA_DB.Model(&system.File{})
  15. var fileList []system.File
  16. if info.File.OriginalName != "" {
  17. db = db.Where("original_name like ?", "%"+info.File.OriginalName+"%")
  18. }
  19. if info.File.CategoryName != "" {
  20. db = db.Where("category_name = ?", info.File.CategoryName)
  21. }
  22. var niltime *time.Time
  23. if info.File.UploadTime != niltime {
  24. db = db.Where("Date(upload_time) = ?", info.File.UploadTime)
  25. }
  26. err = db.Where("is_deleted", 0).Count(&total).Error
  27. if err != nil {
  28. return
  29. }
  30. err = db.Limit(limit).Offset(offset).Preload("SysUser").Where("is_deleted = 0").Order("upload_time DESC").Find(&fileList).Error
  31. return fileList, total, err
  32. }
  33. func (fileService *FileService) Upload(f system.File) (err error) {
  34. var file system.File
  35. if !errors.Is(global.GVA_DB.Where("encrypted_name = ?", f.EncryptedName).First(&file).Error, gorm.ErrRecordNotFound) {
  36. return errors.New("该文件已存在")
  37. }
  38. err = global.GVA_DB.Create(&f).Error
  39. return err
  40. }
  41. func (fileService *FileService) SetFileInfo(req system.File) (err error) {
  42. return global.GVA_DB.Model(&system.File{}).
  43. Select("category_name", "auth_id").
  44. Where("id=?", req.ID).
  45. Updates(map[string]interface{}{
  46. "category_name": req.CategoryName,
  47. "auth_id": req.AuthId,
  48. }).Error
  49. }
  50. func (fileService *FileService) DeleteFile(id int) error {
  51. err := global.GVA_DB.Model(&system.File{}).
  52. Where("id=?", id).
  53. Updates(map[string]interface{}{"is_deleted": "1"}).Error
  54. return err
  55. }
  56. func (fileService *FileService) Distribute(userfile []request.UserFile) error {
  57. err := global.GVA_DB.Model(&request.UserFile{}).Create(&userfile).Error
  58. return err
  59. }