file_folder.go 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  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. // QueryFolder 条件查询文件夹
  40. func (s *ServiceFileFolder) QueryFolder(ctx context.Context, api request.FileFolderRequest) (interface{}, error) {
  41. db := global.GVA_DB.Model(&fileManager.FileFolder{})
  42. db = db.Joins("LEFT JOIN game_task t ON t.task_id = file_folder.task_id")
  43. db = db.Where("parent_id = 0")
  44. if api.DirectorName != "" {
  45. db = db.Where("t.user = ?", api.DirectorName)
  46. }
  47. if api.Name != "" {
  48. db = db.Where("name = ?", api.Name)
  49. }
  50. //var statisticsLogs []*log.LogComputer
  51. var folderListRes []*response.FileFolderResponse
  52. err := db.Order("name").Find(&folderListRes).Error
  53. if err != nil {
  54. return nil, err
  55. }
  56. //var folderList []*response.FileFolderResponse
  57. //for _, one := range folderListRes {
  58. // folder := new(response.FileFolderResponse)
  59. // folder.Id = one.Id
  60. // folder.UpdateTime = one.UpdateTime
  61. // folder.CreateTime = one.CreateTime
  62. // folder.Name = one.Name
  63. // folder.ParentId = one.ParentId
  64. // folder.TaskId = one.TaskId
  65. // folderList = append(folderList, folder)
  66. //}
  67. return folderListRes, err
  68. }
  69. //
  70. //func (s *ServiceRentComputer) GetRentComputerNum(ctx context.Context, api rentComputer.RentComputer) int64 {
  71. // var total int64
  72. //
  73. // db := global.GVA_DB.Model(&rentComputer.RentComputer{})
  74. // db = db.Distinct("id")
  75. // //db = db.Where("is_off_shelf = 0 and is_expire != 1")
  76. // if api.PcNum != "" {
  77. // db = db.Where("rent_computer.pc_num = ?", api.PcNum)
  78. // }
  79. // if api.ShopId != 0 {
  80. // db = db.Where("rent_computer.shop_id = ?", api.ShopId)
  81. // }
  82. // if api.SetMealId != 0 {
  83. // db = db.Where("rent_computer.set_meal_id = ?", api.SetMealId)
  84. // }
  85. // if api.DirectorName != "ALL" {
  86. // if api.DirectorName == "" {
  87. // db = db.Where("rent_computer.director_name IS NULL")
  88. // } else {
  89. // db = db.Where("rent_computer.director_name = ?", api.DirectorName)
  90. // }
  91. // }
  92. // if api.IsExpire != -1 {
  93. // db = db.Where("rent_computer.is_expire = ?", api.IsExpire)
  94. // }
  95. // _ = db.Count(&total).Error
  96. // return total
  97. //}
  98. func (s *ServiceFileFolder) AddFileFolder(requestFolder request.FileFolderRequest) (parentId int, parentName string, err error) {
  99. 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) {
  100. return requestFolder.ParentId, requestFolder.Name, errors.New("文件夹已存在")
  101. }
  102. folder := new(fileManager.FileFolder)
  103. folder.Name = requestFolder.Name
  104. folder.ParentId = requestFolder.ParentId
  105. folder.TaskId = requestFolder.TaskId
  106. folder.CreateTime = time.Now().Format("2006-01-02 15:04:05")
  107. folder.UpdateTime = time.Now().Format("2006-01-02 15:04:05")
  108. err = global.GVA_DB.Create(&folder).Error
  109. if err != nil {
  110. return requestFolder.ParentId, requestFolder.Name, err
  111. }
  112. //查询刚刚创建文件夹的id
  113. insertFolder := fileManager.FileFolder{}
  114. err = global.GVA_DB.Where("name = ? and parent_id = ? and task_id = ?", requestFolder.Name, requestFolder.ParentId, requestFolder.TaskId).First(&insertFolder).Error
  115. if err != nil {
  116. return requestFolder.ParentId, requestFolder.Name, err
  117. }
  118. //判断如果是与任务相关联,则默认创建几个文件夹
  119. serviceFileType := new(ServiceFileType)
  120. typeList, _ := serviceFileType.GetAllFileType()
  121. //folderDefaultList := []string{"易语言脚本", "雷电镜像", "游戏包", "夜神镜像", "其他文件"}
  122. if requestFolder.TaskId != 0 {
  123. for _, v := range typeList {
  124. one := new(fileManager.FileFolder)
  125. one.Name = v.Name
  126. one.ParentId = insertFolder.Id
  127. one.TaskId = insertFolder.TaskId
  128. one.CreateTime = time.Now().Format("2006-01-02 15:04:05")
  129. one.UpdateTime = time.Now().Format("2006-01-02 15:04:05")
  130. err = global.GVA_DB.Create(&one).Error
  131. if err != nil {
  132. return requestFolder.ParentId, requestFolder.Name, err
  133. }
  134. }
  135. }
  136. return insertFolder.Id, insertFolder.Name, err
  137. }
  138. // GetAllTaskSimple 查询所有任务
  139. func (s *ServiceFileFolder) GetAllTaskSimple() (list interface{}, err error) {
  140. var taskList []task.GameTask
  141. db := global.GVA_DB.Model(&task.GameTask{})
  142. err = db.Order("id").Find(&taskList).Error
  143. return taskList, err
  144. }
  145. // SelectFolderMsg 查询目录信息
  146. func (s *ServiceFileFolder) SelectFolderMsg(requestFolder request.FileFolderRequest) (interface{}, error) {
  147. var folder fileManager.FileFolder
  148. err := global.GVA_DB.Where("id = ?", requestFolder.Id).First(&folder).Error
  149. if err != nil {
  150. return nil, errors.New("目录不存在")
  151. } else {
  152. //if folder.TaskId == 0 {
  153. // return nil, errors.New("不是上层目录")
  154. //}
  155. var taskInfo task.GameTask
  156. db := global.GVA_DB.Model(&task.GameTask{})
  157. db.Where("task_id", folder.TaskId)
  158. err := db.Find(&taskInfo).Error
  159. var res response.FileFolderResponse2
  160. res.Id = folder.Id
  161. res.Name = folder.Name
  162. res.ParentId = folder.ParentId
  163. res.TaskId = folder.TaskId
  164. res.TaskName = taskInfo.TaskName
  165. return res, err
  166. }
  167. }