projectFile.go 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package dao
  2. import (
  3. "server/global"
  4. )
  5. type ProjectFile struct {
  6. global.GVA_MODEL
  7. ProjectCode string `json:"projectCode" from:"projectCode" gorm:"comment:项目编号"`
  8. Name string `json:"name" from:"name" gorm:"comment:文件名称"`
  9. Key string `json:"key" from:"key" gorm:"comment:key"`
  10. Genre int `json:"genre" form:"genre" gorm:"comment:项目类型"`
  11. FileGenre FileGenre `json:"fileGenre" form:"fileGenre" gorm:"foreignKey:genre;references:id;"`
  12. Path string `json:"path" from:"path" gorm:"comment:路径"`
  13. }
  14. func (ProjectFile) TableName() string {
  15. return "project_file"
  16. }
  17. // TODO:项目文件查询
  18. // QueryFilesByCode 查询项目文件 按项目code
  19. func QueryFilesByCode(code string) (files []ProjectFile, err error) {
  20. err = global.GVA_DB.Model(&ProjectFile{}).Where("project_code = ?", code).Preload("FileGenre").Find(&files).Error
  21. return files, err
  22. }
  23. // QueryFileList 查询项目文件列表
  24. func QueryFileList(limit, offset, genre int, code, name string) (files []ProjectFile, total int64, err error) {
  25. // 创建db
  26. db := global.GVA_DB.Model(&ProjectFile{}).Where("project_code = ?", code)
  27. // 如果有条件搜索 下方会自动创建搜索语句
  28. if genre != 0 {
  29. db = db.Where("genre = ?", genre)
  30. }
  31. if name != "" {
  32. db = db.Where("name LIKE ?", "%"+name+"%")
  33. }
  34. err = db.Count(&total).Error
  35. if err != nil {
  36. return
  37. }
  38. err = db.Order("id desc").Limit(limit).Offset(offset).Find(&files).Error
  39. return files, total, err
  40. }
  41. // QueryFilesByNameOrGenre 查询项目文件 按名称或类型
  42. func QueryFilesByNameOrGenre(genre int, code, name string) (files []ProjectFile, err error) {
  43. // 创建db
  44. db := global.GVA_DB.Model(&ProjectFile{}).Where("project_code = ?", code)
  45. // 如果有条件搜索 下方会自动创建搜索语句
  46. if genre != 0 {
  47. db = db.Where("genre = ?", genre)
  48. }
  49. if name != "" {
  50. db = db.Where("name LIKE ?", "%"+name+"%")
  51. }
  52. err = db.Order("id desc").Find(&files).Error
  53. return files, err
  54. }
  55. // TODO:项目文件新增
  56. // CreateFile 新增文件
  57. func (pf ProjectFile) CreateFile() error {
  58. var isFile ProjectFile
  59. global.GVA_DB.Model(&ProjectFile{}).Where("project_code = ? AND name = ? AND genre = ?", pf.ProjectCode, pf.Name, pf.Genre).First(&isFile)
  60. if isFile.ID != 0 {
  61. err := global.GVA_DB.Model(&ProjectFile{}).Where("id = ?", isFile.ID).Updates(&pf).Error
  62. if err != nil {
  63. return err
  64. }
  65. } else {
  66. err := global.GVA_DB.Model(&ProjectFile{}).Create(&pf).Error
  67. if err != nil {
  68. return err
  69. }
  70. }
  71. return nil
  72. }
  73. // TODO:项目文件修改
  74. // TODO:项目文件删除
  75. // DeleteFile 删除文件
  76. func DeleteFile(id uint) error {
  77. return global.GVA_DB.Unscoped().Where("id = ?", id).Delete(&ProjectFile{}).Error
  78. }