dsx 2 years ago
parent
commit
e598ea384b

+ 1 - 1
src/main/java/com/fdkankan/scene/service/impl/SceneDownloadHandlerServiceImpl.java

@@ -633,7 +633,7 @@ public class SceneDownloadHandlerServiceImpl {
         String fileName = key.substring(key.lastIndexOf("/") + 1);
 //        String url = this.resourceUrl + key.replace(fileName, URLEncoder.encode(fileName, "UTF-8")) + "?t=" + Calendar.getInstance().getTimeInMillis();
         if(key.contains("hot.json") || key.contains("link-scene.json")){
-            String content = ossUtil.getFileContentloc(key);
+            String content = ossUtil.getFileContent(bucket, key);
             if(StrUtil.isEmpty(content)){
                 return;
             }

+ 5 - 1
src/main/java/com/fdkankan/scene/service/impl/SceneDownloadLogServiceImpl.java

@@ -77,6 +77,10 @@ public class SceneDownloadLogServiceImpl extends ServiceImpl<ISceneDownloadLogMa
         ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
         String bucket = scenePlusExt.getYunFileBucket();
 
+        Scene scene = sceneService.getBySceneCode(num);
+
+        String mapping = scene.getMapping();
+
         Map<String, Object> result = new HashMap<>();
         String sceneJsonPath = String.format(UploadFilePath.DATA_VIEW_PATH+"scene.json", num);
         String sceneJson = ossUtil.getFileContent(bucket, sceneJsonPath);
@@ -100,7 +104,7 @@ public class SceneDownloadLogServiceImpl extends ServiceImpl<ISceneDownloadLogMa
                 download = true;
             }
             if(version == sceneDownloadLog.getSceneVersion()){
-                String url=this.publicUrl+":"+serviceConfig.getServerPort()+"/profile" +sceneDownloadLog.getDownloadUrl();
+                String url=this.publicUrl+":"+serviceConfig.getServerPort()+"/" + mapping +sceneDownloadLog.getDownloadUrl();
                 result.put("status", 2);
                 result.put("url",url);
                 String key=String.format(RedisKey.PREFIX_DOWNLOAD_PROGRESS_V4,num);

+ 10 - 4
src/main/java/com/fdkankan/scene/service/impl/SceneEditInfoServiceImpl.java

@@ -37,6 +37,7 @@ import com.fdkankan.scene.oss.OssUtil;
 import com.fdkankan.scene.service.*;
 import com.fdkankan.scene.util.CmdBuildUtil;
 import com.fdkankan.scene.util.MergeVideoUtil;
+import com.fdkankan.scene.util.VisionUtil;
 import com.fdkankan.scene.vo.*;
 import com.fdkankan.web.response.ResultData;
 import com.google.common.collect.Lists;
@@ -930,7 +931,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
 //      String path = "F:\\test";
         String path = sceneService.getDataSource(num, scenePlus.getSceneSource(), scenePlusExt.getDataSource());
         //全景图计算根目录
-        String target = path + "_images";
+        String target = path.substring(0, path.lastIndexOf(File.separator)) + "_images";
         //解压缩文件存放目录
         String targetImagesPath = target + "/extras/images/";
         //压缩文件保存目录
@@ -1024,7 +1025,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
 
         String imgViewPath = String.format(UploadFilePath.IMG_VIEW_PATH, num);
         ossUtil.downloadFile(bucket, imgViewPath + "vision.modeldata", target + File.separator + "extras" + File.separator + "vision.modeldata");
-        CreateObjUtil.convertVisionmodeldataToTxt(target + File.separator + "extras" + File.separator + "vision.modeldata",
+        VisionUtil.convertVisionmodeldataToTxt(target + File.separator + "extras" + File.separator + "vision.modeldata",
             target + File.separator + "extras" + File.separator + "vision.txt");
 
         String  ossResultPath = sceneService.getDataSource(num, scenePlus.getSceneSource(), scenePlusExt.getDataSource());
@@ -1047,13 +1048,13 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
                 skyboxType = "SKYBOX_V7";
             }
             //sceneScheme为3切成瓦片图
-            if(scenePlusExt.getSceneScheme() == 3){
+//            if(scenePlusExt.getSceneScheme() == 3){
                 if("4k".equals(scenePlusExt.getSceneResolution())){
                     skyboxType = "SKYBOX_V14";
                 }else{
                     skyboxType = "SKYBOX_V13";
                 }
-            }
+//            }
             dataJson.put("skybox_type", skyboxType);
             FileUtils.writeFile(target + File.separator+"data.json", new String(dataJson.toString().getBytes(), "UTF-8"));
         }
@@ -1197,6 +1198,11 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         String dataSource = sceneService.getDataSource(num, scenePlus.getSceneSource(), scenePlusExt.getDataSource());
         String ossCachesImagesPath = dataSource + "caches/images/";
         FileUtil.copyContent(new File(targetImagesPath), new File(ossCachesImagesPath), true);
+
+        if(map.size()>0) {
+            ossUtil.uploadMulFiles(bucket, map);
+        }
+
         //更新数据库版本号
         SceneEditInfo sceneEditInfo = this.getByScenePlusId(scenePlus.getId());
         this.upgradeVersionAndImgVersionById(sceneEditInfo.getId());

+ 9 - 9
src/main/java/com/fdkankan/scene/service/impl/SceneProServiceImpl.java

@@ -106,6 +106,8 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     private OssUtil ossUtil;
     @Autowired
     private ILaserService laserService;
+    @Autowired
+    private ISceneService sceneService;
 
     @Transactional
     @Override
@@ -685,10 +687,14 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
         String bucket = scenePlusExt.getYunFileBucket();
 
+        String path = sceneService.getDataSource(num, scenePlus.getSceneSource(), scenePlusExt.getDataSource());
+        //全景图计算根目录
+        String dataSource = path.substring(0, path.lastIndexOf(File.separator));
+
         if(ModelKind.THREE_D_TILE.code().equals(scenePlusExt.getModelKind())){
-            this.buildModel43dtiles(num, bucket, scenePlusExt.getDataSource(), file);
+            this.buildModel43dtiles(num, bucket, dataSource, file);
         }else{
-            this.buildModel4Dam(num, bucket, scenePlusExt.getDataSource(), scenePlusExt.getBuildType(), file);
+            this.buildModel4Dam(num, bucket, dataSource, scenePlusExt.getBuildType(), file);
         }
 
         //更新版本信息
@@ -737,13 +743,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         //创建data.json
         this.writeDataJson(path);
 
-        //调用算法,不同的类型调用不同的算法
-        if("V2".equals(buildType)){
-            CreateObjUtil.objToTxt(path , "1");
-        }
-        if("V3".equals(buildType)){
-            CmdBuildUtil.BuildModelCommand(path);
-        }
+        CmdBuildUtil.BuildModelCommand(path);
 
         //算法计算完后,生成压缩文件,上传到oss
         this.uploadFileofterRebuildPanoram(path, filePath, num, bucket);

+ 52 - 0
src/main/java/com/fdkankan/scene/util/VisionUtil.java

@@ -0,0 +1,52 @@
+package com.fdkankan.scene.util;
+
+import com.fdkankan.model.proto.Visionmodeldata;
+import com.fdkankan.model.proto.format.JsonFormat;
+import lombok.extern.slf4j.Slf4j;
+
+import java.io.*;
+
+@Slf4j
+public class VisionUtil {
+
+    public static void convertVisionmodeldataToTxt(String srcpath, String despath) throws Exception {
+        File file = new File(srcpath);
+        FileInputStream fis = null;
+        ByteArrayInputStream stream = null;
+        BufferedOutputStream bos = null;
+        BufferedInputStream bis = null;
+        try {
+            fis = new FileInputStream(file);
+            Visionmodeldata.NavigationInfo data_NavigationInfo = Visionmodeldata.NavigationInfo.parseFrom(fis);
+            String jsonFormat1 = JsonFormat.printToString(data_NavigationInfo);
+            stream = new ByteArrayInputStream(jsonFormat1.getBytes());
+            bos = new BufferedOutputStream(new FileOutputStream(despath));
+            bis = new BufferedInputStream(stream);
+            boolean var9 = true;
+
+            int b;
+            while((b = bis.read()) != -1) {
+                bos.write(b);
+            }
+
+            fis.close();
+        } catch (Exception e) {
+            log.error("convertVisionmodeldataToTxt失败", e);
+        }finally {
+            if(bis != null){
+                bis.close();
+            }
+            if(bos != null){
+                bos.close();
+            }
+            if(stream != null){
+                stream.close();
+            }
+            if(fis != null){
+                fis.close();
+            }
+        }
+
+    }
+
+}