world_service.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package world_service
  2. import (
  3. "context"
  4. "fmt"
  5. "github.com/cloudwego/hertz/pkg/app"
  6. "github.com/cloudwego/hertz/pkg/protocol/consts"
  7. uuid "github.com/satori/go.uuid"
  8. "net/http"
  9. "pji_desktop_http/biz/dal/mysql"
  10. "pji_desktop_http/biz/model"
  11. "pji_desktop_http/common/config"
  12. "pji_desktop_http/common/config/c_log"
  13. "pji_desktop_http/common/entity"
  14. )
  15. // UploadWorldFile 将world文件上传到oss
  16. // @router /world/uploadworldfile [GET]
  17. func UploadWorldFile(ctx context.Context, c *app.RequestContext) {
  18. equipmentNo := c.Query("equipmentNo")
  19. fmt.Println("equipmentNo", equipmentNo)
  20. sceneNo := c.Query("sceneNo")
  21. fmt.Println("sceneNo", sceneNo)
  22. header, err := c.FormFile("file")
  23. if err != nil {
  24. c.String(http.StatusBadRequest, fmt.Sprintf("get form err: %s", err.Error()))
  25. return
  26. }
  27. fileName := header.Filename
  28. fmt.Println("filename", fileName)
  29. ossWorldObjectKey := config.WorldOssBasePrefix + "/" + equipmentNo + "/" + sceneNo + "/" + "map.world"
  30. fmt.Println("ossWorldObjectKey", ossWorldObjectKey)
  31. f, _ := header.Open()
  32. defer f.Close()
  33. config.OssMutex.Lock()
  34. err = config.OssBucket.PutObject(ossWorldObjectKey, f)
  35. config.OssMutex.Unlock()
  36. if err != nil {
  37. c_log.GlobalLogger.Error("程序异常退出。上传world文件", fileName, "->", ossWorldObjectKey, "出错:", err)
  38. c.JSON(consts.StatusOK, entity.HttpResult{Status: false, Code: "", Message: "上传world文件失败"})
  39. return
  40. }
  41. c_log.GlobalLogger.Info("上传world文件", fileName, "->", ossWorldObjectKey, "成功。")
  42. c.JSON(consts.StatusOK, entity.HttpResult{Status: true, Code: "", Message: "上传world文件成功"})
  43. // 保存world记录到数据库
  44. world := model.World{ID: uuid.NewV1().String(), SceneID: sceneNo, WorldURL: ossWorldObjectKey}
  45. mysql.TestAddWorld(ctx, world)
  46. }