浏览代码

上传球幕视频、上传模型、上传全景图、保存漫游可行
算法计算完后迭代scenejson缓存和oss中scene.json文件的版本号
工单:28720

dengsixing 3 年之前
父节点
当前提交
3945099c79

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

@@ -42,6 +42,8 @@ public interface ISceneEditInfoService extends IService<SceneEditInfo> {
 
     void upgradeVersionById(Long id);
 
+    void upgradeSceneJsonVersion(String num, int version) throws IOException ;
+
     ResultData uploadPanorama(String num, MultipartFile file) throws Exception;
 
     ResultData downloadPanorama(FileParamVO param) throws Exception;

+ 32 - 2
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneEditInfoServiceImpl.java

@@ -70,6 +70,7 @@ import com.google.common.collect.Lists;
 import com.google.errorprone.annotations.Var;
 import java.io.File;
 import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Comparator;
@@ -791,6 +792,29 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
     }
 
     @Override
+    public void upgradeSceneJsonVersion(String num, int version) throws IOException {
+
+        //更新redis缓存版本号
+        String key = String.format(RedisKey.SCENE_JSON, num);
+        String sceneJson = redisUtil.get(key);
+        if(StrUtil.isNotEmpty(sceneJson)){
+            SceneJsonBean sceneJsonBean = JSON.parseObject(sceneJson, SceneJsonBean.class);
+            sceneJsonBean.setVersion(version);
+            redisUtil.set(key, JSON.toJSONString(sceneJsonBean));
+        }
+
+        //更新oss scene.json版本号
+        String sceneJsonPath = String.format(UploadFilePath.DATA_VIEW_PATH, num) + "scene.json";
+        sceneJson= uploadToOssUtil.getObjectContent(this.bucket, sceneJsonPath);
+        if(StrUtil.isNotEmpty(sceneJson)){
+            SceneJsonBean sceneJsonBean = JSON.parseObject(sceneJson, SceneJsonBean.class);
+            sceneJsonBean.setVersion(version);
+            uploadToOssUtil.upload(JSON.toJSONString(sceneJsonBean).getBytes(StandardCharsets.UTF_8), sceneJsonPath);
+        }
+
+    }
+
+    @Override
     public ResultData uploadPanorama(String num, MultipartFile file) throws Exception {
 
         //校验压缩包格式
@@ -1015,9 +1039,11 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
             cn.hutool.core.io.FileUtil.copy(srcPath, srcPath.replace(targetImagesPath, cachedImagesPath), true);
         });
 
-        //更新版本号
+        //更新数据库版本号
         SceneEditInfo sceneEditInfo = this.getByScenePlusId(scenePlus.getId());
         this.upgradeVersionById(sceneEditInfo.getId());
+        //更新scenejson缓存和oss文件版本号
+        this.upgradeSceneJsonVersion(num, sceneEditInfo.getVersion() + 1);
 
         //如果部分成功,则需要返回成功数量和失败列表
         if(CollUtil.isNotEmpty(notExistFileList)){
@@ -1030,6 +1056,8 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         return ResultData.ok();
     }
 
+
+
     @Override
     public ResultData downloadPanorama(FileParamVO param) throws Exception {
 
@@ -1304,7 +1332,9 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         this.upgradeVersionById(sceneEditInfo.getId());
 
         //更新scene.json版本号
-        this.upgradeVersionToSceneJson(num);
+//        this.upgradeVersionToSceneJson(num);
+        //更新scenejson缓存和oss文件版本号
+        this.upgradeSceneJsonVersion(num, sceneEditInfo.getVersion() + 1);
 
         return ResultData.ok();
     }

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

@@ -3,7 +3,6 @@ package com.fdkankan.scene.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.ZipUtil;
 import com.alibaba.csp.sentinel.util.StringUtil;
@@ -15,12 +14,33 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fdkankan.common.constant.*;
+import com.fdkankan.common.constant.CameraConstant;
+import com.fdkankan.common.constant.CommonStatus;
+import com.fdkankan.common.constant.ConstantFileName;
+import com.fdkankan.common.constant.ConstantFilePath;
+import com.fdkankan.common.constant.ConstantUrl;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.constant.OperationType;
+import com.fdkankan.common.constant.PayStatus;
+import com.fdkankan.common.constant.RecStatus;
+import com.fdkankan.common.constant.SceneEditType;
+import com.fdkankan.common.constant.SceneStatus;
+import com.fdkankan.common.constant.SceneType;
+import com.fdkankan.common.constant.ServerCode;
+import com.fdkankan.common.constant.TbStatus;
+import com.fdkankan.common.constant.UploadFilePath;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.user.SSOLoginHelper;
 import com.fdkankan.common.user.SSOUser;
-import com.fdkankan.common.util.*;
+import com.fdkankan.common.util.ComputerUtil;
+import com.fdkankan.common.util.ConvertUtils;
+import com.fdkankan.common.util.CreateObjUtil;
+import com.fdkankan.common.util.DateExtUtil;
+import com.fdkankan.common.util.FileMd5Util;
+import com.fdkankan.common.util.FileUtils;
+import com.fdkankan.common.util.MatrixToImageWriterUtil;
+import com.fdkankan.common.util.OkHttpUtils;
 import com.fdkankan.fyun.constant.StorageType;
 import com.fdkankan.fyun.oss.UploadToOssUtil;
 import com.fdkankan.platform.api.dto.Camera;
@@ -31,17 +51,64 @@ import com.fdkankan.redis.constant.RedisLockKey;
 import com.fdkankan.redis.util.RedisLockUtil;
 import com.fdkankan.redis.util.RedisUtil;
 import com.fdkankan.scene.bean.IconBean;
-import com.fdkankan.scene.bean.RequestSceneProV4;
 import com.fdkankan.scene.bean.TagBean;
-import com.fdkankan.scene.callback.FdkkMiniReqErrorCallback;
-import com.fdkankan.scene.callback.FdkkMiniReqSuccessCallback;
-import com.fdkankan.scene.entity.*;
-import com.fdkankan.scene.httpclient.FdkankanMiniClient;
+import com.fdkankan.scene.entity.SceneDataDownload;
+import com.fdkankan.scene.entity.SceneDownloadLog;
+import com.fdkankan.scene.entity.SceneEditInfo;
+import com.fdkankan.scene.entity.ScenePlus;
+import com.fdkankan.scene.entity.ScenePlusExt;
+import com.fdkankan.scene.entity.ScenePro;
+import com.fdkankan.scene.entity.SceneProEdit;
+import com.fdkankan.scene.entity.SceneProEditExt;
+import com.fdkankan.scene.entity.SceneProExt;
+import com.fdkankan.scene.entity.SceneProPO;
 import com.fdkankan.scene.mapper.ISceneProMapper;
-import com.fdkankan.scene.service.*;
-import com.fdkankan.scene.vo.*;
+import com.fdkankan.scene.service.IFdkkLaserService;
+import com.fdkankan.scene.service.ISceneDataDownloadService;
+import com.fdkankan.scene.service.ISceneDownloadLogService;
+import com.fdkankan.scene.service.ISceneEditControlsService;
+import com.fdkankan.scene.service.ISceneEditInfoService;
+import com.fdkankan.scene.service.IScenePlusExtService;
+import com.fdkankan.scene.service.IScenePlusService;
+import com.fdkankan.scene.service.ISceneProEditExtService;
+import com.fdkankan.scene.service.ISceneProEditService;
+import com.fdkankan.scene.service.ISceneProExtService;
+import com.fdkankan.scene.service.ISceneProService;
+import com.fdkankan.scene.service.ISceneService;
+import com.fdkankan.scene.vo.BaseDataParamVO;
+import com.fdkankan.scene.vo.DeleteHotIconParamVO;
+import com.fdkankan.scene.vo.DeleteHotParamVO;
+import com.fdkankan.scene.vo.FileNameAndDataParamVO;
+import com.fdkankan.scene.vo.FileParamVO;
+import com.fdkankan.scene.vo.HotParamVO;
+import com.fdkankan.scene.vo.SaveTagsParamVO;
+import com.fdkankan.scene.vo.SaveTagsVisibleParamVO;
+import com.fdkankan.scene.vo.SceneBySnCodeVo;
+import com.fdkankan.scene.vo.SceneEditParamVO;
+import com.fdkankan.scene.vo.SceneParamVO;
+import com.fdkankan.scene.vo.SceneProVO;
+import com.fdkankan.scene.vo.SceneVO;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Objects;
+import java.util.Set;
+import java.util.UUID;
+import java.util.stream.Collectors;
+import javax.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.joda.time.DateTime;
@@ -54,17 +121,6 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 import org.springframework.web.multipart.MultipartFile;
 
-import javax.annotation.Resource;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.util.*;
-import java.util.Map.Entry;
-import java.util.stream.Collectors;
-
 /**
  * <p>
  * pro场景表 服务实现类
@@ -141,8 +197,6 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     IFdkkLaserService fdkkLaserService;
     @Resource
     ISceneProMapper sceneProMapper;
-    @Autowired
-    private FdkankanMiniClient fdkankanMiniClient;
 
     @Override
     public List<SceneVO> convert(List<ScenePro> list){
@@ -3074,11 +3128,12 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             sceneEditInfoService.save(editInfo);
         }else{
             sceneEditInfoService.upgradeVersionById(editInfo.getId());
+            //更新scenejson缓存和oss文件版本号
+            sceneEditInfoService.upgradeSceneJsonVersion(param.getNum(), editInfo.getVersion() + 1);
         }
 
         //更新scene.json版本号
-        sceneEditInfoService.upgradeVersionToSceneJson(param.getNum());
-
+//        sceneEditInfoService.upgradeVersionToSceneJson(param.getNum());
 
         return ResultData.ok();
     }
@@ -3528,6 +3583,8 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
                     .setSql("floor_publish_ver = floor_publish_ver + 1")
                     .set(SceneEditInfo::getIsUploadObj, CommonStatus.YES.code())
                     .eq(SceneEditInfo::getId, sceneEditInfo.getId()));
+
+            sceneEditInfoService.upgradeSceneJsonVersion(num, sceneEditInfo.getVersion() + 1);
         }
 
         return ResultData.ok();