file_folder.go 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. package fileManager
  2. import (
  3. "context"
  4. "errors"
  5. "gorm.io/gorm"
  6. "log-server/global"
  7. "log-server/model/fileManager"
  8. "log-server/model/fileManager/request"
  9. "log-server/model/fileManager/response"
  10. "log-server/model/task"
  11. "time"
  12. )
  13. type ServiceFileFolder struct {
  14. }
  15. // FileFolderList 获取当前父文件夹下所有的子文件夹
  16. func (s *ServiceFileFolder) FileFolderList(ctx context.Context, api fileManager.FileFolder) (interface{}, error) {
  17. //开始查询当前父文件夹下的所有文件夹(目录)
  18. db := global.GVA_DB.Model(&fileManager.FileFolder{})
  19. db = db.Where("parent_id = ?", api.ParentId)
  20. //var statisticsLogs []*log.LogComputer
  21. var folderListRes []*response.FileFolderResponse
  22. err := db.Order("name").Find(&folderListRes).Error
  23. if err != nil {
  24. return nil, err
  25. }
  26. var folderList []*response.FileFolderResponse
  27. for _, one := range folderListRes {
  28. folder := new(response.FileFolderResponse)
  29. folder.Id = one.Id
  30. folder.UpdateTime = one.UpdateTime
  31. folder.CreateTime = one.CreateTime
  32. folder.Name = one.Name
  33. folder.ParentId = one.ParentId
  34. folder.TaskId = one.TaskId
  35. folderList = append(folderList, folder)
  36. }
  37. return folderList, err
  38. }
  39. //
  40. //func (s *ServiceRentComputer) GetRentComputerNum(ctx context.Context, api rentComputer.RentComputer) int64 {
  41. // var total int64
  42. //
  43. // db := global.GVA_DB.Model(&rentComputer.RentComputer{})
  44. // db = db.Distinct("id")
  45. // //db = db.Where("is_off_shelf = 0 and is_expire != 1")
  46. // if api.PcNum != "" {
  47. // db = db.Where("rent_computer.pc_num = ?", api.PcNum)
  48. // }
  49. // if api.ShopId != 0 {
  50. // db = db.Where("rent_computer.shop_id = ?", api.ShopId)
  51. // }
  52. // if api.SetMealId != 0 {
  53. // db = db.Where("rent_computer.set_meal_id = ?", api.SetMealId)
  54. // }
  55. // if api.DirectorName != "ALL" {
  56. // if api.DirectorName == "" {
  57. // db = db.Where("rent_computer.director_name IS NULL")
  58. // } else {
  59. // db = db.Where("rent_computer.director_name = ?", api.DirectorName)
  60. // }
  61. // }
  62. // if api.IsExpire != -1 {
  63. // db = db.Where("rent_computer.is_expire = ?", api.IsExpire)
  64. // }
  65. // _ = db.Count(&total).Error
  66. // return total
  67. //}
  68. func (s *ServiceFileFolder) AddFileFolder(requestFolder request.FileFolderRequest) (parentId int, parentName string, err error) {
  69. if !errors.Is(global.GVA_DB.Where("name = ? and parent_id = ? and task_id = ?", requestFolder.Name, requestFolder.ParentId, requestFolder.TaskId).First(&fileManager.FileFolder{}).Error, gorm.ErrRecordNotFound) {
  70. return requestFolder.ParentId, requestFolder.Name, errors.New("文件夹已存在")
  71. }
  72. folder := new(fileManager.FileFolder)
  73. folder.Name = requestFolder.Name
  74. folder.ParentId = requestFolder.ParentId
  75. folder.TaskId = requestFolder.TaskId
  76. folder.CreateTime = time.Now().Format("2006-01-02 15:04:05")
  77. folder.UpdateTime = time.Now().Format("2006-01-02 15:04:05")
  78. err = global.GVA_DB.Create(&folder).Error
  79. if err != nil {
  80. return requestFolder.ParentId, requestFolder.Name, err
  81. }
  82. //查询刚刚创建文件夹的id
  83. insertFolder := fileManager.FileFolder{}
  84. err = global.GVA_DB.Where("name = ? and parent_id = ? and task_id = ?", requestFolder.Name, requestFolder.ParentId, requestFolder.TaskId).First(&insertFolder).Error
  85. if err != nil {
  86. return requestFolder.ParentId, requestFolder.Name, err
  87. }
  88. //判断如果是与任务相关联,则默认创建几个文件夹
  89. serviceFileType := new(ServiceFileType)
  90. typeList, _ := serviceFileType.GetAllFileType()
  91. //folderDefaultList := []string{"易语言脚本", "雷电镜像", "游戏包", "夜神镜像", "其他文件"}
  92. if requestFolder.TaskId != 0 {
  93. for _, v := range typeList {
  94. one := new(fileManager.FileFolder)
  95. one.Name = v.Name
  96. one.ParentId = insertFolder.Id
  97. one.TaskId = 0
  98. one.CreateTime = time.Now().Format("2006-01-02 15:04:05")
  99. one.UpdateTime = time.Now().Format("2006-01-02 15:04:05")
  100. err = global.GVA_DB.Create(&one).Error
  101. if err != nil {
  102. return requestFolder.ParentId, requestFolder.Name, err
  103. }
  104. }
  105. }
  106. return insertFolder.Id, insertFolder.Name, err
  107. }
  108. // GetAllTaskSimple 查询所有任务
  109. func (s *ServiceFileFolder) GetAllTaskSimple() (list interface{}, err error) {
  110. var taskList []task.GameTask
  111. db := global.GVA_DB.Model(&task.GameTask{})
  112. err = db.Order("id").Find(&taskList).Error
  113. return taskList, err
  114. }
  115. // SelectFolderMsg 查询目录信息
  116. func (s *ServiceFileFolder) SelectFolderMsg(requestFolder request.FileFolderRequest) (interface{}, error) {
  117. var folder fileManager.FileFolder
  118. err := global.GVA_DB.Where("id = ?", requestFolder.Id).First(&folder).Error
  119. if err != nil {
  120. return nil, errors.New("目录不存在")
  121. } else {
  122. if folder.TaskId == 0 {
  123. return nil, errors.New("不是上层目录")
  124. }
  125. var taskInfo task.GameTask
  126. db := global.GVA_DB.Model(&task.GameTask{})
  127. db.Where("task_id", folder.TaskId)
  128. err := db.Find(&taskInfo).Error
  129. var res response.FileFolderResponse2
  130. res.Id = folder.Id
  131. res.Name = folder.Name
  132. res.ParentId = folder.ParentId
  133. res.TaskId = folder.TaskId
  134. res.TaskName = taskInfo.TaskName
  135. return res, err
  136. }
  137. }