Przeglądaj źródła

Merge branch 'master' of http://10.8.230.114:3000/wangbin/log-server

倚楼听风雨 3 lat temu
rodzic
commit
dc957d80b9

+ 2 - 0
api/v1/task/enter.go

@@ -4,8 +4,10 @@ import "log-server/service"
 
 type GroupTask struct {
 	GameTaskApi
+	UploadFileApi
 }
 
 var (
 	taskService = service.ServiceGroupApp.TaskServiceGroup.GameTask
+	uploadFileService = service.ServiceGroupApp.TaskServiceGroup.UploadFileService
 )

+ 34 - 0
api/v1/task/upload_file.go

@@ -0,0 +1,34 @@
+package task
+
+import (
+	"github.com/gin-gonic/gin"
+	"go.uber.org/zap"
+	"log-server/global"
+	"log-server/model/common/response"
+	taskRes "log-server/model/task/response"
+	"strconv"
+)
+
+type UploadFileApi struct {
+
+}
+
+func (b *UploadFileApi) UploadFile(c *gin.Context) {
+
+	_, header, err := c.Request.FormFile("file")
+	if err != nil {
+		global.GVA_LOG.Error("接收文件失败!", zap.Error(err))
+		response.FailWithMessage("接收文件失败", c)
+		return
+	}
+	gameID := c.PostForm("game_id")
+	var fileRes taskRes.UploadFileResponse
+	gameId, _ := strconv.Atoi(gameID)
+	fileRes, err = uploadFileService.UploadFile(gameId,  header) // 文件上传后拿到文件路径
+	if err != nil {
+		global.GVA_LOG.Error("修改数据库链接失败!", zap.Error(err))
+		response.FailWithMessage("修改数据库链接失败", c)
+		return
+	}
+	response.OkWithDetailed(taskRes.InfoResponse{fileRes}, "上传成功", c)
+}

+ 1 - 0
go.mod

@@ -19,6 +19,7 @@ require (
 	github.com/go-redis/redis/v8 v8.11.0
 	github.com/go-sql-driver/mysql v1.5.0
 	github.com/golang-jwt/jwt/v4 v4.3.0
+	github.com/google/uuid v1.1.2 // indirect
 	github.com/gookit/color v1.3.1
 	github.com/huaweicloud/huaweicloud-sdk-go-obs v3.21.8+incompatible
 	github.com/jackc/pgx/v4 v4.15.0 // indirect

+ 2 - 0
initialize/router.go

@@ -21,6 +21,7 @@ func Routers() *gin.Engine {
 	logingRouter := router.RouterGroupApp.Loging
 	computerRouter := router.RouterGroupApp.Computer
 	taskRouter := router.RouterGroupApp.Task
+	uploadFileRouter := router.RouterGroupApp.UploadFile
 
 	typeManageRouter := router.RouterGroupApp.TypeManage
 	rentComputerRouter := router.RouterGroupApp.RentComputer
@@ -65,6 +66,7 @@ func Routers() *gin.Engine {
 		typeManageRouter.InitResponsiblePersonRouter(PublicGroup) //负责人路由
 		typeManageRouter.InitAccountTypeRouter(PublicGroup)       //账号类型路由
 		taskRouter.InitGameTaskRouter(PublicGroup)
+		uploadFileRouter.InitUploadFileRouter(PublicGroup)
 		rentComputerRouter.InitRentComputerRouter(PublicGroup)     //租机管理
 		rentComputerRouter.InitRentComputerShopRouter(PublicGroup) // 租机供应商管理
 		rentComputerRouter.InitRentSetMealRouter(PublicGroup)

+ 14 - 0
model/task/response/upload_file.go

@@ -0,0 +1,14 @@
+package response
+
+type UploadFileResponse struct {
+	GameID int `json:"game_id"`	//游戏Id
+	Name string `json:"name" gorm:"comment:文件名"` // 文件名
+	Url  string `json:"url" gorm:"comment:文件地址"` // 文件地址
+	Tag  string `json:"tag" gorm:"comment:文件标签"` // 文件标签
+	Key  string `json:"key" gorm:"comment:编号"`   // 编号
+	Version int `json:"version"`	//版本号
+}
+
+type InfoResponse struct {
+	File UploadFileResponse `json:"file"`
+}

+ 1 - 0
router/enter.go

@@ -18,6 +18,7 @@ type RouterGroup struct {
 	Computer       log.ComputerRouter
 	TypeManage     typeManage.RouterGroup
 	Task           task.GameTaskRouter
+	UploadFile	   task.UploadFileRouter
 	RentComputer   rentComputer.RouterGroup
 	DataStatistics dataStatistics.RouterGroup
 	FileManager    fileManager.RouterGroup

+ 19 - 0
router/task/upload_file.go

@@ -0,0 +1,19 @@
+package task
+
+import (
+	"github.com/gin-gonic/gin"
+	v1 "log-server/api/v1"
+)
+
+type UploadFileRouter struct {
+
+}
+
+func (e *UploadFileRouter) InitUploadFileRouter(Router *gin.RouterGroup) {
+	GameTaskRouter := Router.Group("gameTask")
+	UploadFileApi := v1.ApiGroupApp.GroupTask.UploadFileApi
+	{
+		GameTaskRouter.POST("addFileUpdate", UploadFileApi.UploadFile)
+
+	}
+}

+ 1 - 0
service/task/enter.go

@@ -2,4 +2,5 @@ package task
 
 type ServiceGroup struct {
 	GameTask
+	UploadFileService
 }

+ 50 - 0
service/task/upload_file.go

@@ -0,0 +1,50 @@
+package task
+
+import (
+	"log-server/global"
+	"log-server/model/task/response"
+	"log-server/utils/upload"
+	"mime/multipart"
+	"strings"
+)
+
+type UploadFileService struct {
+
+}
+
+func (e *UploadFileService) Upload(file response.UploadFileResponse) error {
+	return global.GVA_DB.Table("upload_file").Create(&file).Error
+}
+
+func (e *UploadFileService) UploadFile(gameId int, header *multipart.FileHeader) (file response.UploadFileResponse, err error) {
+	//查询数据库记录数
+	var count int64
+	//获取最后一条记录
+	var lastRecord response.UploadFileResponse
+	var version int
+	oss := upload.NewOss()
+	filePath, key, uploadErr := oss.UploadFile(header)
+	if uploadErr != nil {
+		panic(err)
+	}
+
+	global.GVA_DB.Table("upload_file").Count(&count)
+	if count == 0 {
+		version = 1
+	} else {
+		global.GVA_DB.Table("upload_file").Last(&lastRecord)
+		version = lastRecord.Version + 1
+	}
+
+	s := strings.Split(header.Filename, ".")
+	f := response.UploadFileResponse{
+		GameID: gameId,
+		Url:  filePath,
+		Name: header.Filename,
+		Tag:  s[len(s)-1],
+		Key:  key,
+		Version: version,
+	}
+	return f, e.Upload(f)
+
+}

BIN
uploads/file/f3fec2e20827e0864de04b7efacf5f6c_20230224153010.dll


BIN
uploads/file/f3fec2e20827e0864de04b7efacf5f6c_20230224154304.dll


BIN
uploads/file/f3fec2e20827e0864de04b7efacf5f6c_20230224155919.dll


BIN
uploads/file/f3fec2e20827e0864de04b7efacf5f6c_20230224160026.dll


BIN
uploads/file/f3fec2e20827e0864de04b7efacf5f6c_20230224160750.dll


BIN
uploads/file/f3fec2e20827e0864de04b7efacf5f6c_20230224165651.dll