| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- package fileManager
- import (
- "context"
- "errors"
- "gorm.io/gorm"
- "log-server/global"
- "log-server/model/fileManager"
- "log-server/model/fileManager/request"
- "log-server/model/fileManager/response"
- "log-server/model/task"
- "time"
- )
- type ServiceFileFolder struct {
- }
- // FileFolderList 获取当前父文件夹下所有的子文件夹
- func (s *ServiceFileFolder) FileFolderList(ctx context.Context, api fileManager.FileFolder) (interface{}, error) {
- //开始查询当前父文件夹下的所有文件夹(目录)
- db := global.GVA_DB.Model(&fileManager.FileFolder{})
- db = db.Where("parent_id = ?", api.ParentId)
- //var statisticsLogs []*log.LogComputer
- var folderListRes []*response.FileFolderResponse
- err := db.Order("name").Find(&folderListRes).Error
- if err != nil {
- return nil, err
- }
- var folderList []*response.FileFolderResponse
- for _, one := range folderListRes {
- folder := new(response.FileFolderResponse)
- folder.Id = one.Id
- folder.UpdateTime = one.UpdateTime
- folder.CreateTime = one.CreateTime
- folder.Name = one.Name
- folder.ParentId = one.ParentId
- folder.TaskId = one.TaskId
- folderList = append(folderList, folder)
- }
- return folderList, err
- }
- // QueryFolder 条件查询文件夹
- func (s *ServiceFileFolder) QueryFolder(ctx context.Context, api request.FileFolderRequest) (interface{}, error) {
- db := global.GVA_DB.Model(&fileManager.FileFolder{})
- db = db.Joins("LEFT JOIN game_task t ON t.task_id = file_folder.task_id")
- db = db.Where("parent_id = 0")
- if api.DirectorName != "" {
- db = db.Where("t.user = ?", api.DirectorName)
- }
- if api.Name != "" {
- db = db.Where("name = ?", api.Name)
- }
- //var statisticsLogs []*log.LogComputer
- var folderListRes []*response.FileFolderResponse
- err := db.Order("name").Find(&folderListRes).Error
- if err != nil {
- return nil, err
- }
- //var folderList []*response.FileFolderResponse
- //for _, one := range folderListRes {
- // folder := new(response.FileFolderResponse)
- // folder.Id = one.Id
- // folder.UpdateTime = one.UpdateTime
- // folder.CreateTime = one.CreateTime
- // folder.Name = one.Name
- // folder.ParentId = one.ParentId
- // folder.TaskId = one.TaskId
- // folderList = append(folderList, folder)
- //}
- return folderListRes, err
- }
- //
- //func (s *ServiceRentComputer) GetRentComputerNum(ctx context.Context, api rentComputer.RentComputer) int64 {
- // var total int64
- //
- // db := global.GVA_DB.Model(&rentComputer.RentComputer{})
- // db = db.Distinct("id")
- // //db = db.Where("is_off_shelf = 0 and is_expire != 1")
- // if api.PcNum != "" {
- // db = db.Where("rent_computer.pc_num = ?", api.PcNum)
- // }
- // if api.ShopId != 0 {
- // db = db.Where("rent_computer.shop_id = ?", api.ShopId)
- // }
- // if api.SetMealId != 0 {
- // db = db.Where("rent_computer.set_meal_id = ?", api.SetMealId)
- // }
- // if api.DirectorName != "ALL" {
- // if api.DirectorName == "" {
- // db = db.Where("rent_computer.director_name IS NULL")
- // } else {
- // db = db.Where("rent_computer.director_name = ?", api.DirectorName)
- // }
- // }
- // if api.IsExpire != -1 {
- // db = db.Where("rent_computer.is_expire = ?", api.IsExpire)
- // }
- // _ = db.Count(&total).Error
- // return total
- //}
- func (s *ServiceFileFolder) AddFileFolder(requestFolder request.FileFolderRequest) (parentId int, parentName string, err error) {
- 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) {
- return requestFolder.ParentId, requestFolder.Name, errors.New("文件夹已存在")
- }
- folder := new(fileManager.FileFolder)
- folder.Name = requestFolder.Name
- folder.ParentId = requestFolder.ParentId
- folder.TaskId = requestFolder.TaskId
- folder.CreateTime = time.Now().Format("2006-01-02 15:04:05")
- folder.UpdateTime = time.Now().Format("2006-01-02 15:04:05")
- err = global.GVA_DB.Create(&folder).Error
- if err != nil {
- return requestFolder.ParentId, requestFolder.Name, err
- }
- //查询刚刚创建文件夹的id
- insertFolder := fileManager.FileFolder{}
- err = global.GVA_DB.Where("name = ? and parent_id = ? and task_id = ?", requestFolder.Name, requestFolder.ParentId, requestFolder.TaskId).First(&insertFolder).Error
- if err != nil {
- return requestFolder.ParentId, requestFolder.Name, err
- }
- //判断如果是与任务相关联,则默认创建几个文件夹
- serviceFileType := new(ServiceFileType)
- typeList, _ := serviceFileType.GetAllFileType()
- //folderDefaultList := []string{"易语言脚本", "雷电镜像", "游戏包", "夜神镜像", "其他文件"}
- if requestFolder.TaskId != 0 {
- for _, v := range typeList {
- one := new(fileManager.FileFolder)
- one.Name = v.Name
- one.ParentId = insertFolder.Id
- one.TaskId = insertFolder.TaskId
- one.CreateTime = time.Now().Format("2006-01-02 15:04:05")
- one.UpdateTime = time.Now().Format("2006-01-02 15:04:05")
- err = global.GVA_DB.Create(&one).Error
- if err != nil {
- return requestFolder.ParentId, requestFolder.Name, err
- }
- }
- }
- return insertFolder.Id, insertFolder.Name, err
- }
- // GetAllTaskSimple 查询所有任务
- func (s *ServiceFileFolder) GetAllTaskSimple() (list interface{}, err error) {
- var taskList []task.GameTask
- db := global.GVA_DB.Model(&task.GameTask{})
- err = db.Order("id").Find(&taskList).Error
- return taskList, err
- }
- // SelectFolderMsg 查询目录信息
- func (s *ServiceFileFolder) SelectFolderMsg(requestFolder request.FileFolderRequest) (interface{}, error) {
- var folder fileManager.FileFolder
- err := global.GVA_DB.Where("id = ?", requestFolder.Id).First(&folder).Error
- if err != nil {
- return nil, errors.New("目录不存在")
- } else {
- //if folder.TaskId == 0 {
- // return nil, errors.New("不是上层目录")
- //}
- var taskInfo task.GameTask
- db := global.GVA_DB.Model(&task.GameTask{})
- db.Where("task_id", folder.TaskId)
- err := db.Find(&taskInfo).Error
- var res response.FileFolderResponse2
- res.Id = folder.Id
- res.Name = folder.Name
- res.ParentId = folder.ParentId
- res.TaskId = folder.TaskId
- res.TaskName = taskInfo.TaskName
- return res, err
- }
- }
|