projectFile.go 2.6 KB

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