Kaynağa Gözat

小地图 上传分两次请求

wuweihao 4 yıl önce
ebeveyn
işleme
f6081749e3

+ 2 - 2
laser/src/main/java/com/fdkankan/indoor/base/convert/ImageClipUtil.java

@@ -145,8 +145,8 @@ public class ImageClipUtil {
         try {
             BufferedImage sourceImg =ImageIO.read(new FileInputStream(file));
             int width = sourceImg.getWidth();
-            // 图片需要大于512
-            if (width < 512){
+            // 图片需要大于256
+            if (width < 256){
                 throw new BaseRuntimeException(MsgCode.e3100, "图片尺寸需要大于512");
             }
             int height = sourceImg.getHeight();

+ 16 - 2
laser/src/main/java/com/fdkankan/indoor/core/controller/MapController.java

@@ -1,18 +1,24 @@
 package com.fdkankan.indoor.core.controller;
 
+import com.fdkankan.indoor.base.aop.WebControllerLog;
 import com.fdkankan.indoor.base.util.Result;
 import com.fdkankan.indoor.core.entity.dto.MapDto;
 import com.fdkankan.indoor.core.service.MapService;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * Created by owen on 2021/8/2 0002 20:39
+ *
+ * step1: 上传小地图
+ * step2:初始化小地图数据
  */
 @Api(tags = "小地图")
 @RestController
@@ -21,13 +27,21 @@ public class MapController {
     @Autowired
     MapService entityMap;
 
+    @WebControllerLog(description = "上传小地图")
     @ApiOperation(value = "上传小地图", notes = "上传且初始化t_map")
     @PostMapping("indoor/{sceneCode}/api/map/upload")
-    public Result upload(@PathVariable String sceneCode, MapDto param){
+    public Result upload(@PathVariable String sceneCode, MultipartFile file){
+        return entityMap.upload(sceneCode, file);
+    }
 
-        return entityMap.upload(sceneCode, param);
+    @WebControllerLog(description = "小地图初始")
+    @ApiOperation(value = "小地图初始", notes = "上传且初始化t_map")
+    @PostMapping("indoor/{sceneCode}/api/map/init")
+    public Result init(@PathVariable String sceneCode, MapDto param){
+        return entityMap.init(sceneCode, param);
     }
 
+
     @ApiOperation(value = "获取小地图信息")
     @GetMapping("indoor/{sceneCode}/api/tiled_maps")
     public Object getTiledMap(@PathVariable String sceneCode){

+ 2 - 2
laser/src/main/java/com/fdkankan/indoor/core/entity/dto/MapDto.java

@@ -17,7 +17,7 @@ public class MapDto {
     @ApiModelProperty(value = "位置信息", required = true)
     private Double[] orientation;
 
-    @ApiModelProperty(value = "文件(只能上传png图片)",required = true)
-    private MultipartFile file;
+//    @ApiModelProperty(value = "文件(只能上传png图片)",required = true)
+//    private MultipartFile file;
 
 }

+ 4 - 1
laser/src/main/java/com/fdkankan/indoor/core/service/MapService.java

@@ -2,13 +2,16 @@ package com.fdkankan.indoor.core.service;
 
 import com.fdkankan.indoor.base.util.Result;
 import com.fdkankan.indoor.core.entity.dto.MapDto;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * Created by owen on 2021/7/28 0028 20:05
  */
 public interface MapService {
 
-    Result upload(String sceneCode, MapDto file);
+    Result upload(String sceneCode, MultipartFile file);
 
     Result getTiledMap(String sceneCode);
+
+    Result init(String sceneCode, MapDto param);
 }

+ 22 - 13
laser/src/main/java/com/fdkankan/indoor/core/service/impl/MapServiceImpl.java

@@ -2,6 +2,7 @@ package com.fdkankan.indoor.core.service.impl;
 
 import cn.hutool.core.io.FileUtil;
 import com.fdkankan.indoor.base.constant.CmdConstant;
+import com.fdkankan.indoor.base.constant.MsgCode;
 import com.fdkankan.indoor.base.convert.ImageClipUtil;
 import com.fdkankan.indoor.base.exception.BaseRuntimeException;
 import com.fdkankan.indoor.base.util.CmdUtils;
@@ -36,15 +37,15 @@ public class MapServiceImpl extends IBaseServiceImpl implements MapService {
 
     private MapEntity findById(String sceneCode){
         Optional<MapEntity> optional = entityMapper.findById(sceneCode);
-        // 处理是否登录
-        MapEntity entity = optional.get();
-            return entity;
+        if (!optional.isPresent()) {
+            throw new BaseRuntimeException(MsgCode.e3001, "对象不存在");
+        }
+        return optional.get();
     }
 
 
     @Override
-    public Result upload(String sceneCode, MapDto param) {
-        MultipartFile file = param.getFile();
+    public Result upload(String sceneCode, MultipartFile file) {
         if (file == null) {
             throw new BaseRuntimeException(5003, "文件不能为空");
         }
@@ -70,33 +71,41 @@ public class MapServiceImpl extends IBaseServiceImpl implements MapService {
         String tilePath = basePath + "tile";
         clipImage(savePath, tilePath);
 
-        // step3: 初始化小地图数据
-        initMap(sceneCode, tilePath, param);
-
         // step4: 切图上传oss
         ossUploadDir(sceneCode, tilePath);
 
-
-        return Result.success();
+        Object ossPath =  sceneCode + "/data/tile/0/0/0.png";
+        log.info("返回前端小地图oss地址:{}", ossPath);
+        return Result.success(ossPath);
     }
 
+
+
     @Override
     public Result getTiledMap(String sceneCode) {
         MapEntity entity = findById(sceneCode);
         return Result.success(entity.getData());
     }
 
+    @Override
+    public Result init(String sceneCode, MapDto param) {
+        // step3: 初始化小地图数据
+        String tilePath = configConstant.serverBasePath + "/" + sceneCode +"/map/tile";
+        initMap(sceneCode, tilePath, param);
+        return Result.success();
+    }
+
     /**
      * 初始化小地图数据
      * @param sceneCode
-     * @param basePath
+     * @param tilePath
      */
-    private void initMap(String sceneCode, String basePath, MapDto param){
+    private void initMap(String sceneCode, String tilePath, MapDto param){
 
         MapPo po = new MapPo();
         po.setId(1);
         po.setBundle_id(3);
-        po.setFile_path(basePath);
+        po.setFile_path(tilePath);
         po.setFile_name("$DEPTH/$X/$Y.png");
         po.setFloor_id(11);
         po.setMap_size_m(61.44);