Pārlūkot izejas kodu

场景中心代码迁移

by su 3 gadi atpakaļ
vecāks
revīzija
1e0793d266

+ 10 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/entity/SceneProPO.java

@@ -2,6 +2,7 @@ package com.fdkankan.scene.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import lombok.Data;
+import org.springframework.data.annotation.Transient;
 
 import java.util.Date;
 
@@ -174,4 +175,13 @@ public class SceneProPO {
      */
     private Integer cameraType;
 
+    @Transient
+    private String cooperationUserId;
+
+    /**
+     * 触发mq调度,事务最后触发
+     */
+    @Transient
+    private String mqMsg;
+
 }

+ 2 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneProService.java

@@ -169,5 +169,7 @@ public interface ISceneProService extends IService<ScenePro> {
 
     SceneVO getInfo(String sceneNum);
 
+    ResultData rebuildReduceSpaceBySceneNum(String sceneNum) throws Exception;
+
 
 }

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 913 - 618
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneFileBuildServiceImpl.java


+ 29 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneProServiceImpl.java

@@ -37,6 +37,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.io.File;
 import java.io.IOException;
+import java.math.BigInteger;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -4399,6 +4400,34 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         return baseMapper.findLikeNum(sceneNum);
     }
 
+    @Override
+    public ResultData rebuildReduceSpaceBySceneNum(String sceneNum) throws Exception{
+        ScenePro scenePro = this.findBySceneNum(sceneNum);
+        if(scenePro == null){
+            log.info("该场景不存在无法扣除容量,场景码为:" + sceneNum);
+            return ResultData.error(ErrorCode.FAILURE_CODE_5054);
+        }
+        if (scenePro.getSceneScheme() < 4){
+            log.info("该场景不属于八目相机无法扣除容量,场景码为:" + sceneNum);
+            return ResultData.error(ErrorCode.FAILURE_CODE_5055);
+        }
+        SceneProExt sceneProExt = sceneProExtService.findBySceneProId(scenePro.getId());
+
+        // TODO: 2021/12/31  feign 调用  修改相机已使用用量
+//        CameraDetailEntity detailEntity = cameraDetailService.findByCameraId(sceneProEntity.getCameraId());
+//        detailEntity.setUsedSpace(detailEntity.getUsedSpace().subtract(sceneProEntity.getSpace()));
+//        if(detailEntity.getUsedSpace().signum() < 0){
+//            detailEntity.setUsedSpace(new BigInteger("0"));
+//        }
+//        cameraDetailService.update(detailEntity);
+
+        sceneProExt.setSpace(Long.parseLong("0"));
+        sceneProExt.setUpdateTime(Calendar.getInstance().getTime());
+        sceneProExtService.updateById(sceneProExt);
+
+        return ResultData.ok();
+    }
+
     private void dealTour(SceneEditVO base, JSONObject scenejson, Map<String,String> map,
                           StringBuffer dataBuffer, StringBuffer imagesBuffer) throws IOException {
         if(!StrUtil.isEmpty(base.getTourList())){

+ 2 - 2
4dkankan-common/src/main/java/com/fdkankan/common/constant/ErrorCode.java

@@ -127,8 +127,8 @@ public enum ErrorCode {
     FAILURE_CODE_5051(5051, "md5为空"),
     FAILURE_CODE_5052(5052, "上传失败, 请重新上传。"),
     FAILURE_CODE_5053(5053, "场景码生成失败,请重试。"),
-
-
+    FAILURE_CODE_5054(5054, "该场景不存在无法扣除容量"),
+    FAILURE_CODE_5055(5055, "该场景不属于八目相机无法扣除容量"),
 
     ;
 

+ 1 - 1
4dkankan-common/src/main/java/com/fdkankan/common/rocketmq/consumer/Consumer.java

@@ -12,7 +12,7 @@ import org.springframework.stereotype.Component;
 
 import javax.annotation.PostConstruct;
 
-@Component
+//@Component
 public class Consumer {
     private static Logger logger = LoggerFactory.getLogger("programLog");
 

+ 29 - 310
4dkankan-common/src/main/java/com/fdkankan/common/util/ComputerUtil.java

@@ -564,314 +564,33 @@ public class ComputerUtil {
 //
 //        return scene;
 //    }
-//
-//    public static SceneProEntity createScenePro(String projectNum, Long cameraId, String cameraName, String phoneId, String sceneKey,
-//                                                String unicode, Long 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, ISceneProService sceneProService,
-//                                                ISceneProEditService sceneProEditService, Integer type, ModelingMsgProducer producer,
-//                                                Integer resolution, String firmwareVersion, String url, String buildType, String ossType, String ecsType,
-//                                                ISceneCooperationService sceneCooperationService,
-//                                                ISceneResourceCooperationService sceneResourceCooperationService,
-//                                                ISceneResourceCameraService sceneResourceCameraService, Long cooperationUser,
-//                                                RubberSheetingUtil rubberSheetingUtil)throws Exception{
-//        //先返回链接地址
-//        SceneProEntity scene = new SceneProEntity();
-//        scene.setWebSite(url+projectNum);
-//        scene.setCameraId(cameraId);
-//        scene.setPhoneId(phoneId);
-//        scene.setNum(projectNum);
-//
-//        String path =  ConstantFilePath.BUILD_MODEL_PATH + unicode;
-//
-//        scene.setSceneSource(1);
-//        if(cameraType.longValue() == 5 || cameraType.longValue() == 6){
-//            //场景来源双目相机
-//            scene.setSceneSource(2);
-//            scene.setDataSource(ConstantFilePath.BUILD_MODEL_PATH + unicode);
-//        }else if(cameraType.longValue() == 14){
-//
-//            scene.setDataSource(ConstantFilePath.BUILD_MODEL_LASER_PATH +
-//                    cameraName.replace("4DKKPRO_", "").replace("-fdage", "").toLowerCase() + File.separator +
-//                    fileId + File.separator + unicode);
-//            path =  ConstantFilePath.BUILD_MODEL_LASER_PATH + unicode;
-//            log.info("激光相机 dataSource :" + scene.getDataSource());
-//
-//        }else if(cameraType.longValue() >= 3){
-//            scene.setDataSource(ConstantFilePath.BUILD_MODEL_PATH +
-//                    cameraName.replace("4DKKPRO_", "").replace("-fdage", "").toLowerCase() + File.separator +
-//                    fileId + File.separator + unicode);
-//        }else {
-//            scene.setDataSource(prefix+imgsName);
-//        }
-//
-//        if(!StringUtils.isEmpty(ecsType)){
-//            scene.setEcs(ecsType);
-//        }
-//
-//        if(resolution == null || resolution.intValue() == 0){
-//            scene.setSceneScheme(cameraType.intValue());
-//        }else {
-//            scene.setSceneScheme(4);
-//        }
-//
-//        //场景来源双目相机,sceneScheme为4,加载high,low图
-//        if(cameraType.longValue() == 5 || cameraType.longValue() == 6){
-//            scene.setSceneScheme(4);
-//        }
-//
-//        //转台相机用4k图
-//        if(cameraType.longValue() == 13 ){
-//            scene.setSceneSource(3);
-//            scene.setSceneScheme(10);
-//        }
-//
-//        //激光相机
-//        if(cameraType.longValue() == 14 ){
-//            scene.setSceneSource(4);
-//            scene.setSceneScheme(10);
-//        }
-//
-//        //亚马逊s3没有裁剪4k图的api
-////        if("s3".equals(ossType)){
-////            scene.setSceneScheme(3);
-////        }
-//
-//        if(pic!=null&&pic.length()>5)
-//        {
-//            scene.setThumb(pic);
-////            scene.setThumbImg(2);
-//        }
-//        else
-//        {
-//            scene.setThumb(ConstantUrl.DEFAULT_SCENE_PIC);
-//        }
-//        scene.setThumb(scene.getThumb().concat("?t=")+System.currentTimeMillis());
-//        String parametr = getMQMsg(projectNum, cameraName, unicode, cameraType, fileId, prefix, imgsName, isModel,
-//                userName, algorithm, resolution, buildType, path);
-//        if(!ObjectUtils.isEmpty(userName)){
-//            scene.setUserId(userId);
-//        }
-//        scene.setMqMsg(parametr);
-//
-//        if(sceneShootCount == null)
-//        {
-//            scene.setShootCount(0);
-//        }
-//        else
-//        {
-//            scene.setShootCount(sceneShootCount);
-//        }
-//        if(sceneName!=null)
-//        {
-//            scene.setSceneName(sceneName);
-//        }
-//        if(sceneDec!=null)
-//        {
-//            scene.setSceneDec("<p>"+ new String(sceneDec.getBytes("UTF-8"))+"</p>");
-//        }
-//
-//        if(sceneType!=null)
-//        {
-//            scene.setSceneType(sceneType);
-//        }
-//
-//        if(gps!=null&&!gps.trim().equals(""))
-//        {
-//            scene.setGps(gps);
-//        }
-//
-//        scene.setAlgorithm(algorithm);
-//        scene.setFilesName(imgsName);
-//        if(!StringUtils.isEmpty(firmwareVersion)){
-//            scene.setFirmwareVersion(firmwareVersion);
-//        }
-//        scene.setBuildType(buildType);
-//        log.info("场景记录添加到数据库:"+projectNum);
-//        //type=0为新生成场景,其余为重新计算场景
-//
-//        SceneProEditEntity sceneEdit = new SceneProEditEntity();
-//        if(type == 0){
-//            sceneProService.save(scene);
-//
-//            sceneEdit = new SceneProEditEntity();
-//            sceneEdit.setNeedKey(0);
-//
-//            if(sceneKey == null) {
-//                sceneKey = "";
-//            }
-//            sceneEdit.setSceneKey(sceneKey);
-//            if(!sceneKey.equals("")) {
-//                sceneEdit.setNeedKey(1);
-//            }else {
-//                sceneEdit.setNeedKey(0);
-//            }
-//
-//            sceneEdit.setProId(scene.getId());
-//            sceneEdit.setMapVisi(1);
-//            sceneEdit.setTourVisi(1);
-//            sceneEdit.setVrVisi(1);
-//            sceneEdit.setRulerVisi(1);
-//            sceneEdit.setCadImgVisi(1);
-//            sceneEdit.setPanoVisi(1);
-//            sceneEdit.setM2dVisi(1);
-//            sceneEdit.setM3dVisi(1);
-//            sceneEdit.setMeasureVisi(0);
-//            sceneEdit.setFloorLogoSize(100);
-//            sceneEdit.setCreateTime(new Date());
-//            sceneProEditService.save(sceneEdit);
-//
-//            //新增场景时,同时新增场景协作信息
-//            if(cooperationUser != null){
-//                SceneCooperationEntity sceneCooperationEntity = new SceneCooperationEntity();
-//                sceneCooperationEntity.setSceneNum(projectNum);
-//                sceneCooperationEntity.setUserId(cooperationUser);
-//                sceneCooperationService.save(sceneCooperationEntity);
-//
-//                List<SceneResourceCameraEntity> resourceCameraList = sceneResourceCameraService.findListByCameraId(cameraId);
-//
-//                SceneResourceCooperationEntity sceneResourceCooperationEntity = null;
-//                if(resourceCameraList != null && resourceCameraList.size() > 0){
-//                    for (SceneResourceCameraEntity sceneResourceCameraEntity : resourceCameraList) {
-//                        sceneResourceCooperationEntity = new SceneResourceCooperationEntity();
-//                        sceneResourceCooperationEntity.setSceneResourceId(sceneResourceCameraEntity.getSceneResourceId());
-//                        sceneResourceCooperationEntity.setSceneCooperationId(sceneCooperationEntity.getId());
-//                        sceneResourceCooperationService.save(sceneResourceCooperationEntity);
-//                    }
-//                }
-//            }
-//        }else {
-//            SceneProEntity oldScene = sceneProService.findBySceneNum(projectNum);
-//            scene.setId(oldScene.getId());
-//            scene.setStatus(0);
-//            scene.setPayStatus(0);
-//            scene.setRecStatus("A");
-//            scene.setCreateTime(new Date());
-//            scene.setSpace(oldScene.getSpace());
-//            scene.setEcs(oldScene.getEcs());
-//            scene.setViewCount(oldScene.getViewCount());
-//            if(sceneName!=null) {
-//                scene.setSceneName(sceneName);
-//            }
-//            if(sceneType!=null) {
-//                scene.setSceneType(sceneType);
-//            }
-//            sceneProService.updateAll(scene);
-//
-//            SceneProEditEntity oldSceneEdit = sceneProEditService.findByProId(scene.getId());
-//            sceneEdit = new SceneProEditEntity();
-//            sceneEdit.setNeedKey(0);
-//
-//            if(sceneKey == null) {
-//                sceneKey = "";
-//            }
-//            sceneEdit.setSceneKey(sceneKey);
-//            if(!sceneKey.equals("")) {
-//                sceneEdit.setNeedKey(1);
-//            }else {
-//                sceneEdit.setNeedKey(0);
-//            }
-//
-//            sceneEdit.setProId(scene.getId());
-//            sceneEdit.setMapVisi(1);
-//            sceneEdit.setTourVisi(1);
-//            sceneEdit.setVrVisi(1);
-//            sceneEdit.setRulerVisi(1);
-//            sceneEdit.setCadImgVisi(1);
-//            sceneEdit.setPanoVisi(1);
-//            sceneEdit.setM2dVisi(1);
-//            sceneEdit.setM3dVisi(1);
-//            sceneEdit.setMeasureVisi(0);
-//            sceneEdit.setFloorLogoSize(100);
-//            sceneEdit.setUpdateTime(new Date());
-//            sceneEdit.setCreateTime(oldSceneEdit.getCreateTime());
-//            sceneEdit.setRecStatus("A");
-//            sceneEdit.setFloorPublishVer(oldSceneEdit.getFloorEditVer() + 1);
-//            sceneEdit.setFloorEditVer(oldSceneEdit.getFloorEditVer() + 1);
-//            sceneEdit.setVersion(oldSceneEdit.getVersion() + 1);
-//            sceneEdit.setImagesVersion(oldSceneEdit.getImagesVersion() + 1);
-//            sceneEdit.setId(oldSceneEdit.getId());
-//
-//            sceneProEditService.updateAll(sceneEdit);
-//
-//
-//        }
-//
-//        JSONObject scenejson = JSONObject.parseObject(JSONObject.toJSONString(scene));
-//        scenejson.put("thumbImg", 0);
-//        scenejson.put("version", 0);
-//        scenejson.put("floorLogo", 0);
-//        if(!sceneKey.equals("")){
-//            scenejson.put("sceneKey", sceneKey);
-//            scenejson.put("public", 1);
-//        }else{
-//            scenejson.put("sceneKey", "");
-//            scenejson.put("public", 0);
-//        }
-//        if(cameraType.longValue() < 4 || cameraType.longValue() == 5 || cameraType.longValue() == 6){
-//            scenejson.put("visions", 1);
-//        }else {
-//            scenejson.put("visions", 2);
-//        }
-//        scenejson.put("createTime", new DateTime(new Date()).toString("yyyy-MM-dd HH:mm"));
-//
-//        scenejson.put("floorPublishVer", sceneEdit.getFloorPublishVer());
-//        scenejson.put("floorEditVer", sceneEdit.getFloorEditVer());
-//        scenejson.put("entry", null);
-//
-//        if(!StringUtils.isEmpty(sceneEdit.getHotsIds())){
-//            scenejson.put("hots", 1);
-//        }
-//
-//        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("二维码生成完成");
-//
-//        //当mq排队数大于指定数量时使用弹性升缩
-////        int mqNum = producer.getMessageCount();
-////        log.info("mqNum:" + mqNum);
-////        if(mqNum - Integer.parseInt(baseNum) > 0){
-////            log.info("使用弹性升缩开启一台ECS");
-////            log.info(rubberSheetingUtil.createEcs());
-////        }
-//        return scene;
-//    }
-//
-//    public static String getMQMsg(String projectNum, String cameraName, String unicode, Long cameraType, String fileId,
-//                                   String prefix, String imgsName, String isModel,String userName,
-//                                   String algorithm, Integer resolution, String buildType, String path) {
-//        String parametr = "";
-//        parametr+= unicode +":;"+ path +":;"+ prefix +":;"+ imgsName +":;"+ projectNum +":;"+ isModel;
-//        if(userName !=null&&!userName.trim().equals("")){
-//            parametr+=":;"+ userName;
-//        }else{
-//            parametr+=":;noMan";
-//        }
-//        parametr+=":;"+ cameraType;
-//        parametr+=":;"+ algorithm;
-//        parametr += ":;" + fileId;
-//        parametr += ":;" + cameraName;
-//        if(resolution == null){
-//            parametr += ":;0";
-//        }else {
-//            parametr += ":;" + resolution.intValue();
-//        }
-//
-//        if(buildType != null){
-//            parametr += ":;" + buildType;
-//        }
-//
-//        log.info("pro大场景添加到队列:"+parametr);
-//        return parametr;
-//    }
+
+
+    public static String getMQMsg(String projectNum, String cameraName, String unicode, Long cameraType, String fileId,
+                                   String prefix, String imgsName, String isModel,String userName,
+                                   String algorithm, Integer resolution, String buildType, String path) {
+        String parametr = "";
+        parametr+= unicode +":;"+ path +":;"+ prefix +":;"+ imgsName +":;"+ projectNum +":;"+ isModel;
+        if(userName !=null&&!userName.trim().equals("")){
+            parametr+=":;"+ userName;
+        }else{
+            parametr+=":;noMan";
+        }
+        parametr+=":;"+ cameraType;
+        parametr+=":;"+ algorithm;
+        parametr += ":;" + fileId;
+        parametr += ":;" + cameraName;
+        if(resolution == null){
+            parametr += ":;0";
+        }else {
+            parametr += ":;" + resolution.intValue();
+        }
+
+        if(buildType != null){
+            parametr += ":;" + buildType;
+        }
+
+        log.info("pro大场景添加到队列:"+parametr);
+        return parametr;
+    }
 }