upload_file.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package task
  2. import (
  3. "log-server/global"
  4. "log-server/model/task/response"
  5. "log-server/utils/upload"
  6. "mime/multipart"
  7. "strings"
  8. )
  9. type UploadFileService struct {
  10. }
  11. func (e *UploadFileService) Upload(file response.UploadFileResponse) error {
  12. return global.GVA_DB.Table("upload_file").Create(&file).Error
  13. }
  14. func (e *UploadFileService) UploadFile(gameId int, header *multipart.FileHeader) (file response.UploadFileResponse, err error) {
  15. //查询数据库记录数
  16. var count int64
  17. //获取最后一条记录
  18. var lastRecord response.UploadFileResponse
  19. var version int
  20. oss := upload.NewOss()
  21. filePath, key, uploadErr := oss.UploadFile(header)
  22. if uploadErr != nil {
  23. panic(err)
  24. }
  25. global.GVA_DB.Table("upload_file").Count(&count)
  26. if count == 0 {
  27. version = 1
  28. } else {
  29. global.GVA_DB.Table("upload_file").Last(&lastRecord)
  30. version = lastRecord.Version + 1
  31. }
  32. s := strings.Split(header.Filename, ".")
  33. f := response.UploadFileResponse{
  34. GameID: gameId,
  35. Url: filePath,
  36. Name: header.Filename,
  37. Tag: s[len(s)-1],
  38. Key: key,
  39. Version: version,
  40. }
  41. return f, e.Upload(f)
  42. }