Prechádzať zdrojové kódy

修复部分小八哥

倚楼听风雨 3 rokov pred
rodič
commit
260d492c8e

+ 15 - 0
api/v1/fileManager/file_folder.go

@@ -77,3 +77,18 @@ func (v *ApiFileFolder) GetFolderFileList(c *gin.Context) {
 		"fileList":   fileList,
 	}, "获取成功", c)
 }
+
+// QueryFolder 条件查询文件夹
+func (v *ApiFileFolder) QueryFolder(c *gin.Context) {
+	var paramsInfo request.FileFolderRequest
+	_ = c.ShouldBindJSON(&paramsInfo)
+	//开始查询当前父文件夹下的所有文件夹
+	folderList, err := ServiceFileFolder.QueryFolder(c, paramsInfo)
+	if err != nil {
+		global.GVA_LOG.Error("QueryFolder获取失败!", zap.Error(err))
+		response.FailWithMessage("QueryFolder获取失败", c)
+	}
+	response.OkWithDetailed(map[string]interface{}{
+		"folderList": folderList,
+	}, "获取成功", c)
+}

+ 13 - 1
api/v1/fileManager/file_qiniu.go

@@ -62,8 +62,20 @@ func (v *ApiFileQiniu) DeleteQiniuFileAndRecord(c *gin.Context) {
 	_ = c.ShouldBindJSON(&paramsInfo)
 	if err := ServiceFileQiniu.DeleteQiniuFileAndRecord(paramsInfo); err != nil {
 		global.GVA_LOG.Error("文件删除失败!", zap.Error(err))
-		response.FailWithMessage("文件删除失败,"+err.Error(), c)
+		response.FailWithMessage("文件删除失败, "+err.Error(), c)
 	} else {
 		response.OkWithMessage("文件删除成功", c)
 	}
 }
+
+// RenameQiniuFileAndRecord 重命名七牛云文件和数据库记录
+func (v *ApiFileQiniu) RenameQiniuFileAndRecord(c *gin.Context) {
+	var paramsInfo request.FileQiniuRequest
+	_ = c.ShouldBindJSON(&paramsInfo)
+	if err := ServiceFileQiniu.RenameQiniuFileAndRecord(paramsInfo); err != nil {
+		global.GVA_LOG.Error("文件重命名失败!", zap.Error(err))
+		response.FailWithMessage("文件重命名失败, "+err.Error(), c)
+	} else {
+		response.OkWithMessage("文件重命名成功", c)
+	}
+}

+ 3 - 3
initialize/timer.go

@@ -147,7 +147,7 @@ func Timer() {
 	//if err != nil {
 	//	fmt.Println("add EveryDaySyncTaskData timer error:", err)
 	//}
-	////同步任务数据
+	//同步任务数据
 	//_, err = global.GVA_Timer.AddTaskByFunc("SyncTaskData", "2 0/3 1-23 * * *", syncData.SyncTaskData)
 	//if err != nil {
 	//	fmt.Println("add SyncTaskData timer error:", err)
@@ -177,8 +177,8 @@ func Timer() {
 	//	fmt.Println("add SyncGetWeChatScannerBalance timer error:", err)
 	//}
 
-	////定时更新异常率
-	//_, err = global.GVA_Timer.AddTaskByFunc("SyncAbnormalRateByBatch", "0 1,31 * * * *", serviceDataAbnormalRate.SyncAbnormalRateByBatch)
+	//定时更新异常率
+	//_, err := global.GVA_Timer.AddTaskByFunc("SyncAbnormalRateByBatch", "0 1,22 * * * *", serviceDataAbnormalRate.SyncAbnormalRateByBatch)
 	//if err != nil {
 	//	fmt.Println("add SyncAbnormalRateByBatch timer error:", err)
 	//}

+ 3 - 0
model/dataStatistics/response/data_abnormal_rate.go

@@ -27,4 +27,7 @@ type DataAbnormalRateResponse struct {
 	NumOrderPay       int    `json:"num_order_pay"`       // 付费订单数
 	NumPay            int    `json:"num_pay"`             //付费成功数
 	RatePaySuccess    string `json:"rate_pay_success"`    //付费成功率
+	NewTarget         int    `json:"new_target"`
+	PayTarget         int    `json:"pay_target"`
+	RetainedTarget    int    `json:"retained_target"`
 }

+ 1 - 1
model/fileManager/file_folder.go

@@ -5,7 +5,7 @@ type FileFolder struct {
 	Id         int    `json:"id"`
 	CreateTime string `json:"create_time"` // 创建时间
 	UpdateTime string `json:"update_time"` // 更新时间
-	Name       string `json:""`            //文件夹名称,通常为'任务ID_任务名称'
+	Name       string `json:"name"`        //文件夹名称,通常为'任务ID_任务名称'
 	ParentId   int    `json:"parent_id"`   //父文件夹id,默认为0,表示跟目录
 	TaskId     int    `json:"task_id"`     //关联任务id,默认为0,表示无关联
 }

+ 7 - 6
model/fileManager/request/file_folder.go

@@ -5,12 +5,13 @@ import (
 )
 
 type FileFolderRequest struct {
-	Id         uint   `json:"id"`
-	CreateTime string `json:"create_time"` // 创建时间
-	UpdateTime string `json:"update_time"` // 更新时间
-	Name       string `json:"name"`        //文件夹名称,通常为'任务ID_任务名称'
-	ParentId   int    `json:"parent_id"`   //父文件夹id,默认为0,表示跟目录
-	TaskId     int    `json:"task_id"`     //关联任务id,默认为0,表示无关联
+	Id           uint   `json:"id"`
+	CreateTime   string `json:"create_time"` // 创建时间
+	UpdateTime   string `json:"update_time"` // 更新时间
+	Name         string `json:"name"`        //文件夹名称,通常为'任务ID_任务名称'
+	ParentId     int    `json:"parent_id"`   //父文件夹id,默认为0,表示跟目录
+	TaskId       int    `json:"task_id"`     //关联任务id,默认为0,表示无关联
+	DirectorName string `json:"director_name"`
 }
 
 type FileFolderPageRequest struct {

+ 10 - 8
model/fileManager/request/file_qiniu.go

@@ -2,14 +2,16 @@ package request
 
 type FileQiniuRequest struct {
 	Id           uint   `json:"id"`
-	CreateTime   string `json:"create_time"`    // 创建时间
-	UpdateTime   string `json:"update_time"`    // 更新时间
-	ParentId     int    `json:"parent_id"`      //父文件夹id
-	TaskId       int    `json:"task_id"`        //关联任务id,默认为0
-	FileName     string `json:"file_name"`      //文件名称
-	FileVersion  int64  `json:"file_version"`   //文件版本
-	QiniuAddress string `json:"qiniu_address"`  //七牛云文件地址
-	QiniuKey     string `json:"qiniu_key"`      //七牛云key,方便删除文件
+	CreateTime   string `json:"create_time"`   // 创建时间
+	UpdateTime   string `json:"update_time"`   // 更新时间
+	ParentId     int    `json:"parent_id"`     //父文件夹id
+	TaskId       int    `json:"task_id"`       //关联任务id,默认为0
+	FileName     string `json:"file_name"`     //文件名称
+	FileNameNew  string `json:"file_name_new"` //文件新名称
+	FileVersion  int64  `json:"file_version"`  //文件版本
+	QiniuAddress string `json:"qiniu_address"` //七牛云文件地址
+	QiniuKey     string `json:"qiniu_key"`     //七牛云key,方便删除文件
+	//QiniuKeyNew  string `json:"qiniu_key_new"`  //七牛云新key,用于重命名
 	QiniuHash    string `json:"qiniu_hash"`     //七牛云hash
 	FileType     int    `json:"file_type"`      //文件类型
 	FileTypeName string `json:"file_type_name"` //类型名

+ 1 - 0
router/fileManager/file_folder.go

@@ -15,6 +15,7 @@ func (e *FileFolderRouter) InitFileFolderRouter(Router *gin.RouterGroup) {
 		excelRouter.POST("getAllTaskSimple", api.GetAllTaskSimple)   //查询记录
 		excelRouter.POST("addFileFolder", api.AddFileFolder)         //新建文件夹
 		excelRouter.POST("getFolderFileList", api.GetFolderFileList) //
+		excelRouter.POST("queryFolder", api.QueryFolder)             //
 		excelRouter.POST("selectFolderMsg", api.SelectFolderMsg)     //
 	}
 }

+ 1 - 0
router/fileManager/file_qiniu.go

@@ -17,6 +17,7 @@ func (e *FileQiniuRouter) InitFileQiniuRouter(Router *gin.RouterGroup) {
 		excelRouter.POST("getQiniuToken", api.GetQiniuToken)                       //获取七牛token
 		excelRouter.POST("deleteQiniuFile", api.DeleteQiniuFile)                   //删除单个文件
 		excelRouter.POST("deleteQiniuFileAndRecord", api.DeleteQiniuFileAndRecord) //删除单个文件
+		excelRouter.POST("renameQiniuFileAndRecord", api.RenameQiniuFileAndRecord) //删除单个文件
 
 	}
 }

+ 20 - 2
service/dataStatistics/data_abnormal_rate.go

@@ -107,13 +107,31 @@ func (s *ServiceDataAbnormalRate) QueryAbnormalRate(ctx context.Context, api req
 		return nil, 0, err
 	}
 	var responseDataList []*response.DataAbnormalRateResponse
-
+	//查询游戏目标
+	var dataTarget []*task.GameTargetComplete
+	db2 := global.GVA_DB.Model(&task.GameTargetComplete{})
+	db2 = db2.Select("task_id", "create_date", "new_target", "pay_target", "retained_target")
+	db2 = db2.Where("create_date >= ? and create_date <= ?", api.Date[0], api.Date[1])
+	err = db2.Order("create_date,task_id").Find(&dataTarget).Error
+	if err != nil {
+		return nil, 0, err
+	}
 	for _, one := range dataList {
-
 		temp := new(response.DataAbnormalRateResponse)
 		//temp.Id = one.Id
 		//temp.UpdateTime = one.UpdateTime
 		//temp.CreateTime = one.CreateTime
+		temp.NewTarget = 0
+		temp.RetainedTarget = 0
+		temp.PayTarget = 0
+		for _, target := range dataTarget {
+			if target.CreateDate.Format("2006-01-02") == one.NewDate && target.TaskId == one.TaskId {
+				temp.NewTarget = target.NewTarget
+				temp.RetainedTarget = target.RetainedTarget
+				temp.PayTarget = target.PayTarget
+				break
+			}
+		}
 		temp.TaskId = one.TaskId
 		temp.TaskName = one.TaskName
 		temp.DirectorName = one.DirectorName

+ 35 - 4
service/fileManager/file_folder.go

@@ -40,6 +40,37 @@ func (s *ServiceFileFolder) FileFolderList(ctx context.Context, api fileManager.
 	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
@@ -100,7 +131,7 @@ func (s *ServiceFileFolder) AddFileFolder(requestFolder request.FileFolderReques
 			one := new(fileManager.FileFolder)
 			one.Name = v.Name
 			one.ParentId = insertFolder.Id
-			one.TaskId = 0
+			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
@@ -127,9 +158,9 @@ func (s *ServiceFileFolder) SelectFolderMsg(requestFolder request.FileFolderRequ
 	if err != nil {
 		return nil, errors.New("目录不存在")
 	} else {
-		if folder.TaskId == 0 {
-			return nil, errors.New("不是上层目录")
-		}
+		//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)

+ 35 - 2
service/fileManager/file_qiniu.go

@@ -10,6 +10,7 @@ import (
 	"log-server/model/fileManager"
 	"log-server/model/fileManager/request"
 	"log-server/model/fileManager/response"
+	"strings"
 	"time"
 )
 
@@ -35,8 +36,9 @@ func (s *ServiceFileQiniu) QueryVersionByType(req request.FileQiniuRequest) (int
 func (s *ServiceFileQiniu) AddQiniuFile(requestCoding request.FileQiniuRequest) (err error) {
 	//查询真实的父文件夹ID
 	parentFolder := fileManager.FileFolder{}
-	global.GVA_LOG.Info(requestCoding.FileTypeName)
-	err = global.GVA_DB.Where("parent_id = ? and name = ?", requestCoding.ParentId, requestCoding.FileTypeName).First(&parentFolder).Error
+	if errors.Is(global.GVA_DB.Where("task_id = ? and name = ?", requestCoding.TaskId, requestCoding.FileTypeName).First(&parentFolder).Error, gorm.ErrRecordNotFound) {
+		return errors.New("父文件夹不存在")
+	}
 	//==================================
 	if !errors.Is(global.GVA_DB.Where("parent_id = ? and file_name = ?", requestCoding.ParentId, requestCoding.FileName).First(&fileManager.FileQiniu{}).Error, gorm.ErrRecordNotFound) {
 		return errors.New("该目录下已存在同名文件")
@@ -127,3 +129,34 @@ func (s *ServiceFileQiniu) DeleteQiniuFileAndRecord(requestCoding request.FileQi
 	err = global.GVA_DB.Delete(&fileManager.FileQiniu{}, "id = ?", requestCoding.Id).Error
 	return err
 }
+
+// RenameQiniuFileAndRecord 重命名七牛云文件和数据库记录
+func (s *ServiceFileQiniu) RenameQiniuFileAndRecord(requestCoding request.FileQiniuRequest) (err error) {
+	file := fileManager.FileQiniu{}
+	if errors.Is(global.GVA_DB.Where("id = ?", requestCoding.Id).First(&file).Error, gorm.ErrRecordNotFound) {
+		return errors.New("数据库中未找到该记录")
+	}
+	mac := qbox.NewMac(accessKey, secretKey)
+	cfg := storage.Config{
+		// 是否使用https域名进行资源管理
+		UseHTTPS: true,
+	}
+	bucketManager := storage.NewBucketManager(mac, &cfg)
+	bucket := bucket0
+	srcKey := requestCoding.QiniuKey
+	//处理字段
+	s2 := file.QiniuKey[0:strings.Index(file.QiniuKey, file.FileName)]
+	//global.GVA_LOG.Info(s2)
+	destKey := s2 + requestCoding.FileNameNew
+	//如果目标文件存在,是否强制覆盖,如果不覆盖,默认返回614 file exists
+	err = bucketManager.Move(bucket, srcKey, bucket, destKey, false)
+	if err != nil {
+		return err
+	}
+	s3 := file.QiniuAddress[0:strings.Index(file.QiniuAddress, file.FileName)]
+	file.QiniuAddress = s3 + requestCoding.FileNameNew
+	file.FileName = requestCoding.FileNameNew
+	file.QiniuKey = destKey
+	err = global.GVA_DB.Save(file).Error
+	return err
+}

+ 1 - 1
service/rentComputer/rent_computer.go

@@ -85,7 +85,7 @@ func (s *ServiceRentComputer) RentComputerList(ctx context.Context, api rentComp
 		}
 		err = db.Order(OrderStr).Find(&statisticscomputers).Error
 	} else {
-		err = db.Order("id").Find(&statisticscomputers).Error
+		err = db.Order("pc_num").Find(&statisticscomputers).Error
 	}
 	if err != nil {
 		return nil, 0, err