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) }