浏览代码

构建场景

dengsixing 3 年之前
父节点
当前提交
deb82e2f97

+ 15 - 14
4dkankan-center-modeling/src/main/java/com/fdkankan/modeling/receiver/BuildSceneMQListener.java

@@ -178,6 +178,7 @@ public class BuildSceneMQListener implements RocketMQListener<String> {
         String projectNum = null;
         Long computeTime = null;//计算耗时
         com.alibaba.fastjson.JSONObject videosJson = null;
+        //如果mq生产者在消息体中执行了计算结果mq的主题名,就发到这个主题名,否则就发送到配置的主题名
         buildSceneResultTopic = StrUtil.isNotBlank(message.getResultReceiverMqName()) ?
                 message.getResultReceiverMqName() : buildSceneResultTopic;
         //该场景使用的容量
@@ -290,10 +291,12 @@ public class BuildSceneMQListener implements RocketMQListener<String> {
                 if(Integer.parseInt(cameraType) == 5 || Integer.parseInt(cameraType) == 6){
                     path = ConstantFilePath.BUILD_MODEL_PATH + unicode;
 
-                    //下载zip包,并解压
+                    //下载zip包
                     FileUtils.downLoadFromUrl(prefix + "/" + imgsName + "?m=" + System.currentTimeMillis(), imgsName, path + File.separator + "capture");
+                    //解压
                     FileUtils.decompress(path + File.separator + "capture" + File.separator + imgsName,
                             path + File.separator + "capture") ;
+                    //删除压缩包
                     FileUtil.delFile(path + File.separator + "capture" + File.separator + imgsName);
                 }else if(Integer.parseInt(cameraType) == 14 ) {
                     CreateObjUtil.ossUtilCp(ConstantFilePath.OSS_PREFIX + cameraName.replace("4DKKPRO_", "")
@@ -491,18 +494,13 @@ public class BuildSceneMQListener implements RocketMQListener<String> {
                 computeTime = (System.currentTimeMillis() - start) / 1000;
 
                 //更新scene.json里面的video数据
-                StringBuffer dataBuf = new StringBuffer()
-                        .append("data").append(File.separator)
-                        .append("data").append(projectNum)
-                        .append(File.separator);
-                StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(dataBuf.toString());
-                String strsceneInfos = FileUtils.readFile(dataBuffer.toString() + "scene.json");
+                String sceneJsonPath = String.format(ConstantFilePath.SCENE_PATH_FORMAT, projectNum);
                 com.alibaba.fastjson.JSONObject scenejson = new com.alibaba.fastjson.JSONObject();
-                if(strsceneInfos!=null){
-                    scenejson = com.alibaba.fastjson.JSONObject.parseObject(strsceneInfos);
+                if(sceneJsonPath!=null){
+                    scenejson = com.alibaba.fastjson.JSONObject.parseObject(sceneJsonPath);
                 }
                 scenejson.put("videos", videosJson.toJSONString());
-                FileUtils.writeFile(dataBuffer.toString() + "scene.json", scenejson.toString());
+                FileUtils.writeFile(sceneJsonPath, scenejson.toString());
 
                 //根据data.fdage推送计算完成的消息
                 log.info("推送消息,渠道是 {}, 手机token是 {}", dataJson.get("pushChannel"), dataJson.get("pushToken"));
@@ -654,15 +652,18 @@ public class BuildSceneMQListener implements RocketMQListener<String> {
                     statusJson.put("thumb", thumb);
                     statusJson.put("payStatus", payStatus);
                     FileUtils.writeFile(ConstantFilePath.SCENE_PATH+"data/data"+projectNum+File.separator+"status.json", statusJson.toString());
+
+                    //todo 待删除old_path
                     uploadToOssUtil.upload(ConstantFilePath.SCENE_PATH+"data/data"+projectNum+File.separator+"status.json",
                             "data/data"+projectNum+File.separator+"status.json");
-                    //上送日志
-                    uploadToOssUtil.upload(dataSource+File.separator+"console.log",
-                            "build_log/"+projectNum+File.separator+"console.log");
 
-                    //todo 待删除old_path
                     uploadToOssUtil.upload(ConstantFilePath.SCENE_PATH+"data/data"+projectNum+File.separator+"status.json",
                             dataPath+"status.json");
+
+                    //上送日志  //todo 待删除old_path
+                    uploadToOssUtil.upload(dataSource+File.separator+"console.log",
+                            "build_log/"+projectNum+File.separator+"console.log");
+
                     //上送日志
                     uploadToOssUtil.upload(dataSource+File.separator+"console.log",
                             dataPath+"console.log");

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

@@ -673,7 +673,9 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
 
         log.info("相机 mnt 路径 : " + hardDisk + ", 相机类型 : " + cameraDetail.getCameraType());
 
+        //本机目录
         StringBuilder filePathBuffer = new StringBuilder(hardDisk).append(mac).append(File.separator).append(fileId).append(File.separator).append(folderName).append(File.separator).append("capture").append(File.separator);
+        //云目录
         StringBuilder prefixBuffer = new StringBuilder(mac).append(File.separator).append(fileId).append(File.separator).append(folderName).append(File.separator);
 
         File filePath = new File(filePathBuffer.toString());
@@ -870,6 +872,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
     }
 
     public void turntableBuildScene(String filePath, String fileId, boolean fromOss, String prefix) throws Exception{
+        
         String data = FileUtils.readFile(filePath + "data.fdage");
         JSONObject jsonObject = JSONObject.parseObject(data);
 
@@ -903,6 +906,9 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
 
+        String imageViewPath = String.format(UploadFilePath.IMG_VIEW_PATH, sceneNum);
+        String dataViewPath = String.format(UploadFilePath.DATA_VIEW_PATH, sceneNum);
+
         log.info("查询相机:" + snCode);
         ResultData<Camera> cameraResult = platformGoodsClient.getCameraByChildName(snCode);
         Camera camera = cameraResult.getData();
@@ -927,20 +933,29 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
         if(cameraDetail.getUserId() != null){
             ResultData<SSOUser> ssoResult = platformUserClient.getSSOUserByUserId(cameraDetail.getUserId());
             SSOUser user = ssoResult.getData();
-//            SSOUser user = mapper.convertValue(result.getData(), SSOUser.class);
             if(user != null){
                 userName = user.getUserName();
             }
         }
 
-        String icon = null;
+        // TODO: 2022/1/24 暂时保留旧版本,系统稳定后删除
+        String oldIcon = null;//旧系统
+
+        String icon = null;//新系统
         if(jsonObject.containsKey("icon") && StrUtil.isNotEmpty(jsonObject.getString("icon"))){
             CreateObjUtil.ossUtilCp(ConstantFilePath.OSS_PREFIX + prefix + jsonObject.getString("icon"), filePath);
-            icon = prefixAli + "images/images" + sceneNum + "/" + jsonObject.getString("icon");
+            icon = prefixAli + imageViewPath + jsonObject.getString("icon");
+            // TODO: 2022/1/24 暂时保留旧版本,系统稳定后删除
+            oldIcon = prefixAli + "images/images" + sceneNum + "/" + jsonObject.getString("icon");
             if("aws".equals(type)){
                 CreateObjUtil.ossFileCp(ConstantFilePath.OSS_PREFIX + prefix + jsonObject.getString("icon"), filePath + jsonObject.getString("icon"));
-                icon = ConstantUrl.PREFIX_AWS + "images/images" + sceneNum + "/" + jsonObject.getString("icon");
+                icon = ConstantUrl.PREFIX_AWS + imageViewPath + jsonObject.getString("icon");
+                // TODO: 2022/1/24 暂时保留旧版本,系统稳定后删除
+                oldIcon =  ConstantUrl.PREFIX_AWS + "images/images" + sceneNum + "/" + jsonObject.getString("icon");
             }
+            uploadToOssUtil.upload(filePath + jsonObject.getString("icon"), imageViewPath + jsonObject.getString("icon"));
+            
+            // TODO: 2022/1/24 暂时保留旧版本,系统稳定后删除
             uploadToOssUtil.upload(filePath + jsonObject.getString("icon"), "images/images" + sceneNum + "/" + jsonObject.getString("icon"));
         }
 
@@ -969,8 +984,12 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
             sceneProService.rebuildReduceSpaceBySceneNum(sceneNum);
         }else {
             //上传log-main.png
+            uploadToOssUtil.upload(ConstantFilePath.LOGO_PATH + "logo-main.png", imageViewPath + "logo-main.png");
+            uploadToOssUtil.upload(ConstantFilePath.LOGO_PATH + "logo-main-en.png", imageViewPath + "logo-main-en.png");
+            // TODO: 2022/1/24 暂时保留旧版本,系统稳定后删除
             uploadToOssUtil.upload(ConstantFilePath.LOGO_PATH + "logo-main.png", "images/images" + sceneNum + "/logo-main.png");
             uploadToOssUtil.upload(ConstantFilePath.LOGO_PATH + "logo-main-en.png", "images/images" + sceneNum + "/logo-main-en.png");
+
         }
         SceneProPO scene = null;
         scene = this.createScenePro(sceneNum, camera.getId(), camera.getChildName(), jsonObject.getString("creator"),
@@ -991,6 +1010,11 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
             statusJson.put("payStatus", scene.getPayStatus());
             statusJson.put("recStatus", scene.getRecStatus());
             FileUtils.writeFile(ConstantFilePath.SCENE_PATH+"data/data"+sceneNum+File.separator+"status.json", statusJson.toString());
+
+            uploadToOssUtil.upload(ConstantFilePath.SCENE_PATH+"data/data"+sceneNum+File.separator+"status.json",
+                    dataViewPath + File.separator+"status.json");
+
+            // TODO: 2022/1/24 暂时保留旧版本,系统稳定后删除
             uploadToOssUtil.upload(ConstantFilePath.SCENE_PATH+"data/data"+sceneNum+File.separator+"status.json",
                     "data/data"+sceneNum+File.separator+"status.json");
         }
@@ -1011,14 +1035,25 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
 
                     FileUtils.copyFile(ConstantFilePath.BASE_PATH + File.separator + company.getTopLogo(),
                             ConstantFilePath.SCENE_PATH + "images/images" + sceneNum + "/logo-main.png", true);
+
+                    uploadToOssUtil.upload(ConstantFilePath.SCENE_PATH + "images/images" + sceneNum + "/logo-main.png",
+                            imageViewPath + "logo-main.png");
+
+                    // TODO: 2022/1/24 暂时保留旧版本,系统稳定后删除
                     uploadToOssUtil.upload(ConstantFilePath.SCENE_PATH + "images/images" + sceneNum + "/logo-main.png",
                             "images/images" + sceneNum + "/logo-main.png");
+
                 }
 
                 if(StrUtil.isNotEmpty(company.getFloorLogo())){
 
                     FileUtils.copyFile(ConstantFilePath.BASE_PATH + File.separator + company.getFloorLogo(),
                             ConstantFilePath.SCENE_PATH + "images/images" + sceneNum + "/floorLogoImg.png", true);
+
+                    uploadToOssUtil.upload(ConstantFilePath.SCENE_PATH + "images/images" + sceneNum + "/floorLogoImg.png",
+                            imageViewPath + "floorLogoImg.png");
+
+                    // TODO: 2022/1/24 暂时保留旧版本,系统稳定后删除
                     uploadToOssUtil.upload(ConstantFilePath.SCENE_PATH + "images/images" + sceneNum + "/floorLogoImg.png",
                             "images/images" + sceneNum + "/floorLogoImg.png");
 
@@ -1031,22 +1066,33 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
 
                     FileUtils.copyFile(ConstantFilePath.BASE_PATH + File.separator + company.getQrLogo(),
                             ConstantFilePath.SCENE_PATH + "images/images" + sceneNum + "/QRShareLogo.png", true);
+
+                    uploadToOssUtil.upload(ConstantFilePath.SCENE_PATH + "images/images" + sceneNum + "/QRShareLogo.png",
+                            imageViewPath + "QRShareLogo.png");
+
+                    // TODO: 2022/1/24 暂时保留旧版本,系统稳定后删除
                     uploadToOssUtil.upload(ConstantFilePath.SCENE_PATH + "images/images" + sceneNum + "/QRShareLogo.png",
                             "images/images" + sceneNum + "/QRShareLogo.png");
-                    sceneProEdit.setShareLogo("images/images" + sceneNum + "/QRShareLogo.png");
 
-                    //生成新的分享的二维码
+//                    sceneProEdit.setShareLogo("images/images" + sceneNum + "/QRShareLogo.png");//旧系统代码,先保留
+                    sceneProEdit.setShareLogo(imageViewPath + "QRShareLogo.png");
+
+                    //生成新的分享的二维码-中文版本
                     MatrixToImageWriterUtil.createQRCode(sceneUrl + sceneNum, ConstantFilePath.BASE_PATH + File.separator + "sceneQRcode/"+sceneNum+".png",
                             ConstantFilePath.SCENE_PATH + "images/images" + sceneNum + "/QRShareLogo.png");
+                    //生成新的分享的二维码-英文版本
                     MatrixToImageWriterUtil.createQRCode(sceneUrl + sceneNum + "&lang=en", ConstantFilePath.BASE_PATH + File.separator + "sceneQRcode/"+sceneNum+"_en.png",
                             ConstantFilePath.SCENE_PATH + "images/images" + sceneNum + "/QRShareLogo.png");
                 }
 
                 if(StrUtil.isNotEmpty(company.getMarkerLogo())){
-
                     FileUtils.copyFile(ConstantFilePath.BASE_PATH + File.separator + company.getMarkerLogo(),
                             ConstantFilePath.SCENE_PATH + "images/images" + sceneNum + "/marker.png", true);
                     uploadToOssUtil.upload(ConstantFilePath.SCENE_PATH + "images/images" + sceneNum + "/marker.png",
+                            imageViewPath + "marker.png");
+
+                    // TODO: 2022/1/24 暂时保留旧版本,系统稳定后删除
+                    uploadToOssUtil.upload(ConstantFilePath.SCENE_PATH + "images/images" + sceneNum + "/marker.png",
                             "images/images" + sceneNum + "/marker.png");
 
                     sceneProEdit.setMarkerLogo("user");
@@ -1065,6 +1111,9 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
             }
 
             //删除oss的houst_floor.json
+            uploadToOssUtil.delete(dataViewPath + "houst_floor.json");
+
+            // TODO: 2022/1/24 暂时保留旧版本,系统稳定后删除
             uploadToOssUtil.delete("data/data"+sceneNum+File.separator+"houst_floor.json");
 
         }