dengsixing 3 anos atrás
pai
commit
7bb7e368ff

+ 22 - 32
4dkankan-center-modeling/src/main/java/com/fdkankan/modeling/receiver/BuildSceneListener.java

@@ -221,9 +221,7 @@ public class BuildSceneListener implements RocketMQListener<String> {
         String unicode = message.getUnicode();
         String unicode = message.getUnicode();
         String path = message.getPath();
         String path = message.getPath();
         String prefix = message.getPrefix();
         String prefix = message.getPrefix();
-        String imgsName = message.getImgsName();
         projectNum = message.getSceneNum();
         projectNum = message.getSceneNum();
-        String userName = message.getUserName();
         //不同的相机不同的方法
         //不同的相机不同的方法
         String cameraType = message.getCameraType();
         String cameraType = message.getCameraType();
         String algorithm = message.getAlgorithm();
         String algorithm = message.getAlgorithm();
@@ -233,14 +231,8 @@ public class BuildSceneListener implements RocketMQListener<String> {
         String resolution = message.getResolution();
         String resolution = message.getResolution();
         //判断调用V2还是V3版本的算法
         //判断调用V2还是V3版本的算法
         String buildType = ObjectUtils.isEmpty(message.getBuildType()) ? "V2" : message.getBuildType();
         String buildType = ObjectUtils.isEmpty(message.getBuildType()) ? "V2" : message.getBuildType();
-        String sceneName = message.getSceneName();
         String webSite = message.getWebSite();
         String webSite = message.getWebSite();
-        Date createTime = message.getSceneProCreateTime();
-        Long userId = message.getUserId();
-        String dataSource = message.getDataSource();
         Integer sceneStatus = message.getSceneStatus();
         Integer sceneStatus = message.getSceneStatus();
-        Integer sceneProPayStatus = message.getPayStatus();
-        Long sceneProId = message.getSceneProId();
         String thumb = message.getThumb();
         String thumb = message.getThumb();
 
 
         String dataPath = "data/data" + projectNum;//老版本文件路径
         String dataPath = "data/data" + projectNum;//老版本文件路径
@@ -286,12 +278,12 @@ public class BuildSceneListener implements RocketMQListener<String> {
 
 
                 //休眠1秒,否则可能获取不到场景资源
                 //休眠1秒,否则可能获取不到场景资源
                 Thread.sleep(1000);
                 Thread.sleep(1000);
-                if(sceneProId == null){
-                    log.error("场景不存在,场景码:{}", projectNum);
-                    // TODO: 2022/1/25 测试阶段,先注释掉推送
-//                    this.sendDingTalkMq("场景不存在", message);
-                    return;
-                }
+//                if(sceneProId == null){
+//                    log.error("场景不存在,场景码:{}", projectNum);
+//                    // TODO: 2022/1/25 测试阶段,先注释掉推送
+////                    this.sendDingTalkMq("场景不存在", message);
+//                    return;
+//                }
 
 
                 long start = System.currentTimeMillis();
                 long start = System.currentTimeMillis();
 
 
@@ -370,7 +362,7 @@ public class BuildSceneListener implements RocketMQListener<String> {
             this.sendCallResult(buildSuccess, resultTopicName, cameraType, computeTime, fileId, payStatus,
             this.sendCallResult(buildSuccess, resultTopicName, cameraType, computeTime, fileId, payStatus,
                 projectNum, videosJson, map, path, pushChannel, pushToken,prefix, videoVersion);
                 projectNum, videosJson, map, path, pushChannel, pushToken,prefix, videoVersion);
             //上传status.json   console.log
             //上传status.json   console.log
-            this.uploadStatusJsonAndConsoleLog(sceneProId, sceneStatus, webSite, projectNum, thumb, payStatus);
+            this.uploadStatusJsonAndConsoleLog(sceneStatus, webSite, projectNum, thumb, payStatus);
 
 
         }
         }
     }
     }
@@ -432,26 +424,24 @@ public class BuildSceneListener implements RocketMQListener<String> {
                     .build());
                     .build());
     }
     }
 
 
-    private void uploadStatusJsonAndConsoleLog(Long sceneProId, Integer sceneStatus, String webSite, String projectNum,
+    private void uploadStatusJsonAndConsoleLog(Integer sceneStatus, String webSite, String projectNum,
                                                String thumb, Integer payStatus){
                                                String thumb, Integer payStatus){
         try{
         try{
-            if(Objects.nonNull(sceneProId)){
-                JSONObject statusJson = new JSONObject();
-                //临时将-2改成1,app还没完全更新
-                if(sceneStatus == -2){
-                    sceneStatus = 1;
-                }else if(sceneStatus == -1){
-                    // 失败状态不予显示到客户端
-                    sceneStatus = 0;
-                }
-                statusJson.put("status", sceneStatus);
-                statusJson.put("webSite", webSite);
-                statusJson.put("sceneNum", projectNum);
-                statusJson.put("thumb", thumb);
-                statusJson.put("payStatus", payStatus);
-                FileUtils.writeFile(ConstantFilePath.SCENE_PATH+"data/data"+projectNum+File.separator+"status.json", statusJson.toString());
-
+            JSONObject statusJson = new JSONObject();
+            //临时将-2改成1,app还没完全更新
+            if(sceneStatus == -2){
+                sceneStatus = 1;
+            }else if(sceneStatus == -1){
+                // 失败状态不予显示到客户端
+                sceneStatus = 0;
             }
             }
+            statusJson.put("status", sceneStatus);
+            statusJson.put("webSite", webSite);
+            statusJson.put("sceneNum", projectNum);
+            statusJson.put("thumb", thumb);
+            statusJson.put("payStatus", payStatus);
+            FileUtils.writeFile(ConstantFilePath.SCENE_PATH+"data/data"+projectNum+File.separator+"status.json", statusJson.toString());
+
         }catch (Exception e){
         }catch (Exception e){
             log.error("上传status.json/console.log失败", e);
             log.error("上传status.json/console.log失败", e);
         }
         }

Diferenças do arquivo suprimidas por serem muito extensas
+ 4 - 6
4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/TestController.java


+ 3 - 3
4dkankan-center-scene/src/main/java/com/fdkankan/scene/generate/AutoGenerate.java

@@ -22,7 +22,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir") + "\\4dkankan-center-scene";
         String path =System.getProperty("user.dir") + "\\4dkankan-center-scene";
 
 
         generate(path,"test", getTables(new String[]{
         generate(path,"test", getTables(new String[]{
-                "t_scene_edit_info_ext"
+                "t_scene_plus", "t_scene_plus_ext"
         }));
         }));
 
 
 //        generate(path,"goods", getTables(new String[]{
 //        generate(path,"goods", getTables(new String[]{
@@ -82,9 +82,9 @@ public class AutoGenerate {
 
 
                             .entityBuilder()
                             .entityBuilder()
                             .enableLombok()
                             .enableLombok()
-//                            .logicDeleteColumnName("tb_status")
+                            .logicDeleteColumnName("tb_status")
                             .enableTableFieldAnnotation()
                             .enableTableFieldAnnotation()
-                            .superClass(BaseEntity.class)
+//                            .superClass(BaseEntity.class)
 
 
                             .controllerBuilder()
                             .controllerBuilder()
                             .formatFileName("%sController")
                             .formatFileName("%sController")

+ 1 - 1
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneFileBuildService.java

@@ -48,7 +48,7 @@ public interface ISceneFileBuildService extends IService<SceneFileBuild> {
 
 
     ResultData buildScene(@RequestBody BuildSceneParamVO buildScene) throws Exception;
     ResultData buildScene(@RequestBody BuildSceneParamVO buildScene) throws Exception;
 
 
-    ResultData rebuildScene(String sceneCode) throws Exception;
+    ResultData rebuildScene(String num) throws Exception;
 
 
     ResultData rebuildVideoScene(RebuildVedioSceneParamVO param) throws Exception;
     ResultData rebuildVideoScene(RebuildVedioSceneParamVO param) throws Exception;
 
 

+ 241 - 44
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneFileBuildServiceImpl.java

@@ -104,6 +104,10 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
     private String topicPicA;
     private String topicPicA;
 
 
     @Autowired
     @Autowired
+    private IScenePlusService scenePlusService;
+    @Autowired
+    private IScenePlusExtService scenePlusExtService;
+    @Autowired
     IPicSceneProgressService picSceneProgressService;
     IPicSceneProgressService picSceneProgressService;
     @Autowired
     @Autowired
     IVideoSceneProgressService videoSceneProgressService;
     IVideoSceneProgressService videoSceneProgressService;
@@ -1125,7 +1129,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
         log.info("发送mq,camType:{}", jsonObject.getJSONObject("cam").getIntValue("type"));
         log.info("发送mq,camType:{}", jsonObject.getJSONObject("cam").getIntValue("type"));
         if(jsonObject.getJSONObject("cam").getIntValue("type") == 10){
         if(jsonObject.getJSONObject("cam").getIntValue("type") == 10){
             mqProducer.sendOneWay(topicLaserA, scene.getMqMsg());
             mqProducer.sendOneWay(topicLaserA, scene.getMqMsg());
-        }else  if(scene != null){
+        }else if(scene != null){
 //            mqProducer.sendInOrder(topicModelingA, scene.getId()+"", scene.getMqMsg());
 //            mqProducer.sendInOrder(topicModelingA, scene.getId()+"", scene.getMqMsg());
             mqProducer.syncSend(topicModelingAPre, scene.getMqMsg());
             mqProducer.syncSend(topicModelingAPre, scene.getMqMsg());
 
 
@@ -1617,6 +1621,158 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
         return scenePo;
         return scenePo;
     }
     }
 
 
+    public ScenePlusVO createScenePlus(String projectNum, Long cameraId, String cameraName, String phoneId, String scenepsd,
+        String unicode, Integer cameraType, String fileId, String prefix,
+        String imgsName, String pic, String isModel, Long userId, String userName,
+        String algorithm, Integer sceneShootCount, String sceneName,
+        String sceneDec, Integer sceneType, String gps,
+        Integer type, String url, String ecsType)throws Exception{
+        ScenePlusVO scenePlusVO = new ScenePlusVO();
+        ScenePlus scenePlus = new ScenePlus();
+        ScenePlusExt scenePlusExt = new ScenePlusExt();
+//        ScenePO scenePo = new ScenePO();
+//        Scene scene = new Scene();
+//        SceneExt sceneExt = new SceneExt();
+        scenePlusExt.setWebSite(url+projectNum);
+        scenePlus.setCameraId(cameraId);
+        scenePlus.setPhoneId(phoneId);
+        scenePlus.setNum(String.valueOf(projectNum));
+        if(scenepsd == null)
+        {
+            scenepsd = "";
+        }
+        // TODO: 2022/3/16 这里暂时不确定要不要 ---start
+//        if(!scenepsd.equals(""))
+//        {
+//            scene.setSceneKey(scenepsd);
+//        }
+        // TODO: 2022/3/16 这里暂时不确定要不要 ---end
+
+        if(!org.springframework.util.StringUtils.isEmpty(ecsType)){
+            scenePlusExt.setEcs(ecsType);
+        }
+
+        String path =  ConstantFilePath.BUILD_MODEL_PATH + unicode;
+
+        if(cameraType.longValue() >= 4){
+            scenePlusExt.setDataSource(ConstantFilePath.BUILD_MODEL_PATH +
+                cameraName.replace("4DKKPRO_", "").replace("-fdage", "").toLowerCase() + File.separator + fileId + File.separator + unicode);
+        }else {
+            scenePlusExt.setDataSource(prefix+imgsName);
+        }
+
+        if(cameraType.longValue() == 14){
+
+            scenePlusExt.setDataSource(ConstantFilePath.BUILD_MODEL_LASER_PATH +
+                cameraName.replace("4DKKPRO_", "").replace("-fdage", "").toLowerCase() + File.separator +
+                fileId + File.separator + unicode);
+
+            log.info("激光相机 dataSource :" + scenePlusExt.getDataSource());
+
+        }
+
+        if(pic!=null&&pic.length()>5) {
+            scenePlusExt.setThumb(pic);
+        }else{
+            scenePlusExt.setThumb(ConstantUrl.DEFAULT_SCENE_PIC);
+        }
+
+        BuildSceneMqMessage buildSceneMqMessage = new BuildSceneMqMessage();
+        buildSceneMqMessage.setUnicode(unicode);
+        buildSceneMqMessage.setPath(path);
+        buildSceneMqMessage.setPrefix(prefix);
+        buildSceneMqMessage.setImgsName(imgsName);
+        buildSceneMqMessage.setSceneNum(projectNum);
+        buildSceneMqMessage.setIsModel(isModel);
+        buildSceneMqMessage.setCameraType(String.valueOf(cameraType));
+        buildSceneMqMessage.setAlgorithm(algorithm);
+        buildSceneMqMessage.setFileId(fileId);
+        buildSceneMqMessage.setCameraName(cameraName);
+
+        if(StrUtil.isNotBlank(userName))
+        {
+            buildSceneMqMessage.setUserName(userName);
+            scenePlus.setUserId(userId);
+        }
+        else
+        {
+            buildSceneMqMessage.setUserName("noMan");
+        }
+        mqProducer.syncSend(topicModelingAPre, buildSceneMqMessage);
+
+        if(sceneShootCount == null)
+        {
+            scenePlusExt.setShootCount(0);
+        }
+        else
+        {
+            scenePlusExt.setShootCount(sceneShootCount);
+        }
+        if(sceneName!=null)
+        {
+            scenePlus.setTitle(sceneName);
+        }
+        if(sceneDec!=null)
+        {
+            scenePlus.setDescription("<p>"+sceneDec+"</p>");
+        }
+
+        if(sceneType!=null)
+        {
+            scenePlus.setSceneType(sceneType);
+        }
+
+        if(gps!=null&&!gps.trim().equals(""))
+        {
+            scenePlusExt.setGps(gps);
+        }
+
+        scenePlusExt.setSceneScheme(cameraType.intValue());
+        scenePlusExt.setAlgorithm(algorithm);
+        log.info("场景记录添加到数据库:"+projectNum);
+        //type=0为新生成场景,其余为重新计算场景
+        if(type == 0){
+            scenePlusService.save(scenePlus);
+            scenePlusExt.setPlusId(scenePlus.getId());
+            scenePlusExtService.save(scenePlusExt);
+        }
+
+        BeanUtil.copyProperties(scenePlusExt, scenePlusVO);
+        BeanUtil.copyProperties(scenePlus, scenePlusVO);
+        JSONObject scenejson = JSONObject.parseObject(JSONObject.toJSONString(scenePlusVO));
+        scenejson.put("thumbImg", 0);
+        scenejson.put("version", 0);
+        scenejson.put("floorLogo", 0);
+        if(!scenepsd.equals("")){
+            scenejson.put("scenePsd", scenepsd);
+            scenejson.put("public", 1);
+        }else{
+            scenejson.put("scenePsd", "");
+            scenejson.put("public", 0);
+        }
+        if(cameraType < 4){
+            scenejson.put("visions", 1);
+        }else {
+            scenejson.put("visions", 2);
+        }
+        scenejson.put("createTime", new DateTime(new Date()).toString("yyyy-MM-dd HH:mm"));
+
+        File file = new File(ConstantFilePath.SCENE_PATH+"data/data"+projectNum);
+        if(!file.exists()||!file.isDirectory())
+        {
+            file.mkdirs();
+        }
+        FileUtils.writeFile(ConstantFilePath.SCENE_PATH+"data/data"+projectNum+File.separator+"scene.json", scenejson.toString());
+//        UploadToOssUtil.upload(ConstantFilePath.SCENE_PATH+"data/data"+projectNum+File.separator+"scene.json", "data/data"+projectNum+File.separator+"scene.json");
+
+        //生成二维码
+        MatrixToImageWriterUtil.createQRCode(url + projectNum, ConstantFilePath.BASE_PATH + File.separator + "sceneQRcode/"+projectNum+".png", null);
+        MatrixToImageWriterUtil.createQRCode(url + projectNum + "&lang=en", ConstantFilePath.BASE_PATH + File.separator + "sceneQRcode/"+projectNum+"_en.png", null);
+        log.info("二维码生成完成");
+
+        return scenePlusVO;
+    }
+
     public SceneProPO createScenePro(String projectNum, Long cameraId, String cameraName, String phoneId, String sceneKey,
     public SceneProPO createScenePro(String projectNum, Long cameraId, String cameraName, String phoneId, String sceneKey,
                                      String unicode, Long cameraType, String fileId, String prefix,
                                      String unicode, Long cameraType, String fileId, String prefix,
                                      String imgsName, String pic, String isModel, Long userId, String userName,
                                      String imgsName, String pic, String isModel, Long userId, String userName,
@@ -2057,27 +2213,58 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
         return filePathName;
         return filePathName;
     }
     }
 
 
-    public ResultData rebuildScene(String sceneCode) throws Exception {
-        if (StringUtils.isEmpty(sceneCode)) {
+    public ResultData rebuildScene(String num) throws Exception {
+        if (StringUtils.isEmpty(num)) {
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
 
 
-        ScenePro scenePro = sceneProService.findBySceneNum(sceneCode);
-        SceneProExt sceneProExt = null;
+        // TODO: 2022/3/16 旧主表逻辑, 待删除 -------------------------------start
+        ScenePro scenePro = sceneProService.findBySceneNum(num);
+//        SceneProExt sceneProExt = null;
         ScenePO scenePO = null;
         ScenePO scenePO = null;
-        String path = "";
-        if(scenePro == null){
-            scenePO = sceneService.findBySceneNum(sceneCode);
-            if(scenePO == null){
-                throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
-            }else {
-                path = ConstantFilePath.BUILD_MODEL_PATH + scenePO.getDataSource().split("/")[scenePO.getDataSource().split("/").length - 2];
-            }
-        }else {
-            sceneProExt = sceneProExtService.findBySceneProId(scenePro.getId());
-            path = sceneProExt.getDataSource();
-
+//        String path = "";
+//        if(scenePro == null){
+//            scenePO = sceneService.findBySceneNum(sceneCode);
+//            if(scenePO == null){
+//                throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+//            }else {
+//                path = ConstantFilePath.BUILD_MODEL_PATH + scenePO.getDataSource().split("/")[scenePO.getDataSource().split("/").length - 2];
+//            }
+//        }else {
+//            sceneProExt = sceneProExtService.findBySceneProId(scenePro.getId());
+//            path = sceneProExt.getDataSource();
+//        }
+//        Integer sceneSource = sceneProExt.getSceneSource();
+//        String dataSource = sceneProExt.getDataSource();
+//        Long userId = scenePro.getUserId();
+//        String buildType = scenePro.getBuildType();
+//        Integer sceneStatus = scenePro.getSceneStatus();
+//        String webSite = scenePro.getWebSite();
+//        String thumb = scenePro.getThumb();
+//        Integer payStatus = scenePro.getPayStatus();
+//        Integer sceneScheme = scenePro.getSceneScheme();
+//        Long sceneId = scenePro.getId();
+
+        // TODO: 2022/3/16 旧主表逻辑, 待删除 -------------------------------end
+
+        ScenePlusVO scenePlusVO = null;
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(num);
+        if(Objects.isNull(scenePlus)){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
         }
+        ScenePlusExt scenePlusExt = scenePlusExtService.getSceneProExtByPlusId(scenePlus.getId());
+        String path = scenePlusExt.getDataSource();
+        Integer sceneSource = scenePlus.getSceneSource();
+        String dataSource = scenePlusExt.getDataSource();
+        Long userId = scenePlus.getUserId();
+        String buildType = scenePlusExt.getBuildType();
+        Integer sceneStatus = scenePlus.getSceneStatus();
+        String webSite = scenePlusExt.getWebSite();
+        String thumb = scenePlusExt.getThumb();
+        Integer payStatus = scenePlus.getPayStatus();
+        Integer sceneScheme = scenePlusExt.getSceneScheme();
+        scenePlus
+
         //重新计算时需要删除文件夹,否知使用缓存
         //重新计算时需要删除文件夹,否知使用缓存
         FileUtils.delAllFile(path + File.separator + "results");
         FileUtils.delAllFile(path + File.separator + "results");
 
 
@@ -2090,7 +2277,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
             CreateObjUtil.ossUtilCp(ConstantFilePath.OSS_PREFIX + path.replace(ConstantFilePath.BUILD_MODEL_PATH, ""),
             CreateObjUtil.ossUtilCp(ConstantFilePath.OSS_PREFIX + path.replace(ConstantFilePath.BUILD_MODEL_PATH, ""),
                     path + "/capture/");
                     path + "/capture/");
         } else {
         } else {
-            if(scenePro!=null && sceneProExt.getSceneSource().equals(4)){
+            if(sceneSource == 4){
                 CreateObjUtil.ossUtilCp(ConstantFilePath.OSS_PREFIX + path.replace(ConstantFilePath.BUILD_MODEL_LASER_PATH, "") + "/data.fdage", path + "/capture/");
                 CreateObjUtil.ossUtilCp(ConstantFilePath.OSS_PREFIX + path.replace(ConstantFilePath.BUILD_MODEL_LASER_PATH, "") + "/data.fdage", path + "/capture/");
             }else{
             }else{
                 CreateObjUtil.ossUtilCp(ConstantFilePath.OSS_PREFIX + path.replace(ConstantFilePath.BUILD_MODEL_PATH, "") + "/data.fdage", path + "/capture/");
                 CreateObjUtil.ossUtilCp(ConstantFilePath.OSS_PREFIX + path.replace(ConstantFilePath.BUILD_MODEL_PATH, "") + "/data.fdage", path + "/capture/");
@@ -2135,7 +2322,19 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
             }
             }
 
 
             String unicode = jsonObject.getString("creator") + "_" + jsonObject.getString("uuidtime");
             String unicode = jsonObject.getString("creator") + "_" + jsonObject.getString("uuidtime");
-            scenePO = this.createScene(sceneCode, camera.getId(),
+            // TODO: 2022/3/16 旧主表逻辑, 待删除 -------------------------------start
+//            scenePO = this.createScene(num, camera.getId(),
+//                cameraName, jsonObject.getString("creator"),
+//                jsonObject.getString("pwd"), unicode, detail.getCameraType(),
+//                fileId, "http://creator.4dkankan.com/" + unicode + File.separator, "zip.Zip",
+//                jsonObject.getString("scenePic"), "0", userId, userName,
+//                jsonObject.getString("location") != null && "1".equals(jsonObject.getString("location")) ? "sfm" : "slam",
+//                jsonObject.getJSONArray("imgs").size(), jsonObject.getString("name"), jsonObject.getString("info"),
+//                jsonObject.getInteger("scenetype"), jsonObject.getString("gps"),
+//                1, mainUrl + sceneUrl, ecsType);
+            // TODO: 2022/3/16 旧主表逻辑, 待删除 -------------------------------end
+
+            scenePlusVO = this.createScenePlus(num, camera.getId(),
                     cameraName, jsonObject.getString("creator"),
                     cameraName, jsonObject.getString("creator"),
                     jsonObject.getString("pwd"), unicode, detail.getCameraType(),
                     jsonObject.getString("pwd"), unicode, detail.getCameraType(),
                     fileId, "http://creator.4dkankan.com/" + unicode + File.separator, "zip.Zip",
                     fileId, "http://creator.4dkankan.com/" + unicode + File.separator, "zip.Zip",
@@ -2147,66 +2346,64 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
         } else {
         } else {
             String cameraName = jsonObject.getJSONObject("cam").getString("uuid");
             String cameraName = jsonObject.getJSONObject("cam").getString("uuid");
             String userName = null;
             String userName = null;
-            if (!ObjectUtils.isEmpty(scenePro.getUserId())) {
-                ResultData<SSOUser> ssoUserResult = platformUserClient.getSSOUserByUserId(scenePro.getUserId());
+            if (!ObjectUtils.isEmpty(userId)) {
+                ResultData<SSOUser> ssoUserResult = platformUserClient.getSSOUserByUserId(userId);
                 SSOUser user = ssoUserResult.getData();
                 SSOUser user = ssoUserResult.getData();
                 userName = user.getUserName();
                 userName = user.getUserName();
             }
             }
-            String buildType = scenePro.getBuildType();
             //重算的场景,先移除该场景对应的容量
             //重算的场景,先移除该场景对应的容量
-            sceneProService.rebuildReduceSpaceBySceneNum(sceneCode);
+            sceneProService.rebuildReduceSpaceBySceneNum(num);
 
 
             JSONObject statusJson = new JSONObject();
             JSONObject statusJson = new JSONObject();
             //临时将-2改成1,app还没完全更新
             //临时将-2改成1,app还没完全更新
-            statusJson.put("status", scenePro.getSceneStatus() == -2 ? 1 : scenePro.getSceneStatus());
-            statusJson.put("webSite", scenePro.getWebSite());
-            statusJson.put("sceneNum", scenePro.getNum());
-            statusJson.put("thumb", scenePro.getThumb());
-            statusJson.put("payStatus", scenePro.getPayStatus());
-            FileUtils.writeFile(ConstantFilePath.SCENE_PATH + "data/data" + sceneCode + File.separator + "status.json", statusJson.toString());
-            uploadToOssUtil.upload(ConstantFilePath.SCENE_PATH + "data/data" + sceneCode + File.separator + "status.json",
-                    "data/data" + sceneCode + File.separator + "status.json");
+            statusJson.put("status", sceneStatus == -2 ? 1 : sceneStatus);
+            statusJson.put("webSite", webSite);
+            statusJson.put("sceneNum", num);
+            statusJson.put("thumb", thumb);
+            statusJson.put("payStatus", payStatus);
+            FileUtils.writeFile(ConstantFilePath.SCENE_PATH + "data/data" + num + File.separator + "status.json", statusJson.toString());
+            uploadToOssUtil.upload(ConstantFilePath.SCENE_PATH + "data/data" + num + File.separator + "status.json",
+                    "data/data" + num + File.separator + "status.json");
             String unicode = jsonObject.getString("creator") + "_" + jsonObject.getString("uuidtime");
             String unicode = jsonObject.getString("creator") + "_" + jsonObject.getString("uuidtime");
 
 
-            Long cameraType = (long)scenePro.getSceneScheme() == 3? 12 : (long)scenePro.getSceneScheme();
+            Long cameraType = (long)sceneScheme == 3 ? 12 : (long)sceneScheme;
             //判断是否转台相机
             //判断是否转台相机
-            if(scenePro != null && sceneProExt.getSceneSource() == 3){
+            if(sceneSource == 3){
                 cameraType = 13L;
                 cameraType = 13L;
             }
             }
 
 
-            if(scenePro != null && sceneProExt.getSceneSource() == 4){
+            if(sceneSource == 4){
                 cameraType = 14L;
                 cameraType = 14L;
             }
             }
 
 
-            if(sceneProExt.getSceneSource().intValue() == 4){
-                fdkkLaserService.updateSceneStatus(sceneCode,0);
+            if(sceneSource == 4){
+                fdkkLaserService.updateSceneStatus(num,0);
                 BuildSceneMqMessage buildSceneMqMessage =this.getBuildSceneMqMessage(
                 BuildSceneMqMessage buildSceneMqMessage =this.getBuildSceneMqMessage(
-                    sceneCode, cameraName, unicode, cameraType, fileId,
-                    sceneProExt.getDataSource().replace(ConstantFilePath.BUILD_MODEL_PATH, "")
+                    num, cameraName, unicode, cameraType, fileId,
+                    dataSource.replace(ConstantFilePath.BUILD_MODEL_PATH, "")
                         .replace(ConstantFilePath.BUILD_MODEL_LASER_PATH,"")+ File.separator,
                         .replace(ConstantFilePath.BUILD_MODEL_LASER_PATH,"")+ File.separator,
                     "zip.Zip", "0",
                     "zip.Zip", "0",
                     userName, jsonObject.getString("location") != null && "1".equals(jsonObject.getString("location")) ? "sfm" : "slam",
                     userName, jsonObject.getString("location") != null && "1".equals(jsonObject.getString("location")) ? "sfm" : "slam",
                     jsonObject.getInteger("resolution"), buildType,
                     jsonObject.getInteger("resolution"), buildType,
                     ConstantFilePath.BUILD_MODEL_LASER_PATH + unicode, scenePro.getId(), scenePro.getSceneName(),
                     ConstantFilePath.BUILD_MODEL_LASER_PATH + unicode, scenePro.getId(), scenePro.getSceneName(),
                     scenePro.getWebSite(), scenePro.getCreateTime(), scenePro.getUserId(),
                     scenePro.getWebSite(), scenePro.getCreateTime(), scenePro.getUserId(),
-                    sceneProExt.getDataSource(), scenePro.getSceneStatus(), scenePro.getPayStatus(), scenePro.getThumb());
+                    dataSource, scenePro.getSceneStatus(), scenePro.getPayStatus(), scenePro.getThumb());
                 mqProducer.syncSend(topicLaserA, buildSceneMqMessage);
                 mqProducer.syncSend(topicLaserA, buildSceneMqMessage);
             }else{
             }else{
                 BuildSceneMqMessage buildSceneMqMessage =this.getBuildSceneMqMessage(
                 BuildSceneMqMessage buildSceneMqMessage =this.getBuildSceneMqMessage(
-                    sceneCode, cameraName, unicode, cameraType, fileId,
-                    sceneProExt.getDataSource().replace(ConstantFilePath.BUILD_MODEL_PATH, "")
+                    num, cameraName, unicode, cameraType, fileId,
+                    dataSource.replace(ConstantFilePath.BUILD_MODEL_PATH, "")
                         .replace(ConstantFilePath.BUILD_MODEL_LASER_PATH,"")+ File.separator,
                         .replace(ConstantFilePath.BUILD_MODEL_LASER_PATH,"")+ File.separator,
                     "zip.Zip", "0",
                     "zip.Zip", "0",
                     userName, jsonObject.getString("location") != null && "1".equals(jsonObject.getString("location")) ? "sfm" : "slam",
                     userName, jsonObject.getString("location") != null && "1".equals(jsonObject.getString("location")) ? "sfm" : "slam",
                     jsonObject.getInteger("resolution"), buildType,
                     jsonObject.getInteger("resolution"), buildType,
                     ConstantFilePath.BUILD_MODEL_PATH + unicode, scenePro.getId(), scenePro.getSceneName(),
                     ConstantFilePath.BUILD_MODEL_PATH + unicode, scenePro.getId(), scenePro.getSceneName(),
                     scenePro.getWebSite(), scenePro.getCreateTime(), scenePro.getUserId(),
                     scenePro.getWebSite(), scenePro.getCreateTime(), scenePro.getUserId(),
-                    sceneProExt.getDataSource(), scenePro.getSceneStatus(), scenePro.getPayStatus(), scenePro.getThumb());
+                    dataSource, scenePro.getSceneStatus(), scenePro.getPayStatus(), scenePro.getThumb());
 
 
-//                mqProducer.syncSend(topicModelingA, buildSceneMqMessage);
                 mqProducer.syncSend(topicModelingAPre, buildSceneMqMessage);
                 mqProducer.syncSend(topicModelingAPre, buildSceneMqMessage);
             }
             }
-            sceneProService.updateStatus(sceneCode,0);
+            sceneProService.updateStatus(num,0);
             // 更新imageVersion
             // 更新imageVersion
             sceneProEditService.updateImageVersionByProId(scenePro.getId());
             sceneProEditService.updateImageVersionByProId(scenePro.getId());
         }
         }

+ 132 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/ScenePlusVO.java

@@ -0,0 +1,132 @@
+package com.fdkankan.scene.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/3/16
+ **/
+@Data
+public class ScenePlusVO {
+
+    /**
+     * 场景码
+     */
+    private String num;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 相机id
+     */
+    private Long cameraId;
+
+    /**
+     * 手机id
+     */
+    private String phoneId;
+
+    /**
+     * 场景名称
+     */
+    private String title;
+
+    /**
+     * 场景描述
+     */
+    private String description;
+
+    /**
+     * 场景状态:0-未建好,1--已建好,-1-计算出错,-2--不在官网显示
+     */
+    private Integer sceneStatus;
+
+    /**
+     * 场景来源:相机拍摄10以内表示,1表示八目,2双目,3转台,4 激光  其他来源10以上,11:一键换装,12:123看房,13文通虚拟场景
+     */
+    private Integer sceneSource;
+
+    /**
+     * 支付状态:0表示未付款,1表示付款了,-1表示欠费,-2表示容量不足
+     */
+    private Integer payStatus;
+
+    /**
+     * 场景类型  0-其他,1-文博,2-地产,3-电商,4-餐饮,5-家居,99-一件换装虚拟房源
+     */
+    private Integer sceneType;
+
+    /**
+     * 是否推荐:0-否,1-是
+     */
+    private Integer recommend;
+
+    /**
+     * 场景数据目录
+     */
+    private String dataSource;
+
+    /**
+     * 场景链接
+     */
+    private String webSite;
+
+    /**
+     * 缩略图链接
+     */
+    private String thumb;
+
+    /**
+     * 方案:1-双目,2-转台,3-六目,4-八目,10-获取4k图,11-获取2k,12-获取1k
+     */
+    private Integer sceneScheme;
+
+    /**
+     * 使用用量
+     */
+    private Long space;
+
+    /**
+     * 云服务器类型
+     */
+    private String ecs;
+
+    /**
+     * 点位数量
+     */
+    private Integer shootCount;
+
+    /**
+     * 浏览次数
+     */
+    private Integer viewCount;
+
+    /**
+     * gps定位
+     */
+    private String gps;
+
+    /**
+     * 算法类型(slam、sfm)
+     */
+    private String algorithm;
+
+    /**
+     * 固件版本
+     */
+    private String firmwareVersion;
+
+    /**
+     * 算法类型(V2,V3)
+     */
+    private String buildType;
+
+}