1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package world_service
- import (
- "context"
- "fmt"
- "github.com/cloudwego/hertz/pkg/app"
- "github.com/cloudwego/hertz/pkg/protocol/consts"
- uuid "github.com/satori/go.uuid"
- "net/http"
- "pji_desktop_http/biz/dal/mysql"
- "pji_desktop_http/biz/model"
- "pji_desktop_http/common/config"
- "pji_desktop_http/common/config/c_log"
- "pji_desktop_http/common/entity"
- )
- // UploadWorldFile 将world文件上传到oss
- // @router /world/uploadworldfile [GET]
- func UploadWorldFile(ctx context.Context, c *app.RequestContext) {
- equipmentNo := c.Query("equipmentNo")
- fmt.Println("equipmentNo", equipmentNo)
- sceneNo := c.Query("sceneNo")
- fmt.Println("sceneNo", sceneNo)
- header, err := c.FormFile("file")
- if err != nil {
- c.String(http.StatusBadRequest, fmt.Sprintf("get form err: %s", err.Error()))
- return
- }
- fileName := header.Filename
- fmt.Println("filename", fileName)
- ossWorldObjectKey := config.WorldOssBasePrefix + "/" + equipmentNo + "/" + sceneNo + "/" + "map.world"
- fmt.Println("ossWorldObjectKey", ossWorldObjectKey)
- f, _ := header.Open()
- defer f.Close()
- config.OssMutex.Lock()
- err = config.OssBucket.PutObject(ossWorldObjectKey, f)
- config.OssMutex.Unlock()
- if err != nil {
- c_log.GlobalLogger.Error("程序异常退出。上传world文件", fileName, "->", ossWorldObjectKey, "出错:", err)
- c.JSON(consts.StatusOK, entity.HttpResult{Status: false, Code: "", Message: "上传world文件失败"})
- return
- }
- c_log.GlobalLogger.Info("上传world文件", fileName, "->", ossWorldObjectKey, "成功。")
- c.JSON(consts.StatusOK, entity.HttpResult{Status: true, Code: "", Message: "上传world文件成功"})
- // 保存world记录到数据库
- world := model.World{ID: uuid.NewV1().String(), SceneID: sceneNo, WorldURL: ossWorldObjectKey}
- mysql.TestAddWorld(ctx, world)
- }
|