Browse Source

深时点云场景和深时obj场景,场景码相同

lyhzzz 2 years ago
parent
commit
f91c3445b6

+ 3 - 0
src/main/java/com/fdkankan/fusion/service/IModelService.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.fusion.request.ModelPram;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -41,4 +42,6 @@ public interface IModelService extends IService<Model> {
     String uploadObjProgress(Integer modelId);
 
     void cancelUpload(Integer modelId);
+
+    HashMap<String, Model> getMapByNum(List<String> numList);
 }

+ 17 - 21
src/main/java/com/fdkankan/fusion/service/impl/CaseNumServiceImpl.java

@@ -180,32 +180,28 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
     }
 
     private List<String> updateByNumList(Integer caseId, List<SceneNumParam> sceneNumParam) {
-        List<String> updateNumList = new ArrayList<>();
+        List<String> addList = new ArrayList<>();
         for (SceneNumParam param : sceneNumParam) {
+            Integer type = param.getType();
             List<String> numList = param.getNumList();
-            updateNumList.addAll(numList);
-        }
-        if(updateNumList.size()<=0){
-            deleteByCaseId(caseId);
-            return null;
-        }
-        LambdaQueryWrapper<CaseNumEntity> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(CaseNumEntity::getCaseId,caseId);
-        List<CaseNumEntity> list = this.list(wrapper);
-        List<String> hanNumList = list.parallelStream().map(CaseNumEntity::getNum).collect(Collectors.toList());
-        List<String> delList = new ArrayList<>();
-        List<String> addList = new ArrayList<>();
-        for (String num : hanNumList) {
-            if(!updateNumList.contains(num)){
-                delList.add(num);
+            LambdaQueryWrapper<CaseNumEntity> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(CaseNumEntity::getCaseId,caseId);
+            wrapper.eq(CaseNumEntity::getNumType,type);
+            List<CaseNumEntity> list = this.list(wrapper);
+            List<String> hanNumList = list.parallelStream().map(CaseNumEntity::getNum).collect(Collectors.toList());
+            List<String> delList = new ArrayList<>();
+            for (String num : hanNumList) {
+                if(!numList.contains(num)){
+                    delList.add(num);
+                }
             }
-        }
-        for (String num : updateNumList) {
-            if(!hanNumList.contains(num)){
-                addList.add(num);
+            for (String num : numList) {
+                if(!hanNumList.contains(num)){
+                    addList.add(num);
+                }
             }
+            this.deleteByNum(caseId,delList);
         }
-        this.deleteByNum(caseId,delList);
 
         return addList;
     }

+ 2 - 4
src/main/java/com/fdkankan/fusion/service/impl/CaseServiceImpl.java

@@ -86,12 +86,10 @@ public class CaseServiceImpl extends ServiceImpl<ICaseMapper, CaseEntity> implem
         if(listAll.size() >0){
             List<String> numList = listAll.parallelStream().map(SceneVo::getNum).collect(Collectors.toList());
             //设置模型
-            List<Model> modelList = modelService.getListByNum(numList);
-            HashMap<String,Model> map = new HashMap<>();
-            modelList.forEach(entity-> map.put(entity.getNum(),entity));
+            HashMap<String,Model> map = modelService.getMapByNum(numList);
             for (SceneVo sceneVo : listAll) {
                 String createTime = sceneVo.getCreateTime();
-                Model model = map.get(sceneVo.getNum());
+                Model model = map.get(sceneVo.getNum() + sceneVo.getType());
                 if(model == null){
                     continue;
                 }

+ 9 - 0
src/main/java/com/fdkankan/fusion/service/impl/ModelServiceImpl.java

@@ -1,6 +1,7 @@
 package com.fdkankan.fusion.service.impl;
 import java.io.File;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.UUID;
 import java.util.concurrent.ThreadPoolExecutor;
@@ -347,4 +348,12 @@ public class ModelServiceImpl extends ServiceImpl<IModelMapper, Model> implement
         this.updateById(model);
         redisUtil.set(redisKey,"-2");
     }
+
+    @Override
+    public HashMap<String, Model> getMapByNum(List<String> numList) {
+        HashMap<String,Model> map = new HashMap<>();
+        List<Model> modelList = this.getListByNum(numList);
+        modelList.forEach(entity-> map.put(entity.getNum() + entity.getType(),entity));
+        return map;
+    }
 }

+ 5 - 7
src/main/java/com/fdkankan/fusion/service/impl/SceneService.java

@@ -48,12 +48,10 @@ public class SceneService implements ISceneService {
         if(listAll.size() >0){
             List<String> numList = listAll.parallelStream().map(SceneVo::getNum).collect(Collectors.toList());
             //设置模型
-            List<Model> modelList = modelService.getListByNum(numList);
-            HashMap<String,Model> map = new HashMap<>();
-            modelList.forEach(entity-> map.put(entity.getNum(),entity));
+            HashMap<String,Model> map = modelService.getMapByNum(numList);
             for (SceneVo sceneVo : listAll) {
                 String createTime = sceneVo.getCreateTime();
-                Model model = map.get(sceneVo.getNum());
+                Model model = map.get(sceneVo.getNum() + sceneVo.getType());
                 if(model == null){
                     continue;
                 }
@@ -86,7 +84,7 @@ public class SceneService implements ISceneService {
             PageInfo pageInfo = JSONObject.parseObject(JSONObject.toJSONString(fdkkResponse.getData()), PageInfo.class);
             total =  pageInfo.getTotal();
             JSONArray list = JSONArray.parseArray(JSONObject.toJSONString( pageInfo.getList()));
-            sceneVoList = overSceneVo(list);
+            sceneVoList = overSceneVo(list,param.getType());
 
         }
         if(param.getType() == 2){       //深时
@@ -141,7 +139,7 @@ public class SceneService implements ISceneService {
     /**
      * 四维看看返回数据格式转换
      */
-    private List<SceneVo> overSceneVo(JSONArray list) {
+    private List<SceneVo> overSceneVo(JSONArray list,Integer type) {
         List<SceneVo> sceneVoList = new ArrayList<>();
         for (Object obj : list) {
             String res = JSONObject.toJSONString(obj);
@@ -160,7 +158,7 @@ public class SceneService implements ISceneService {
             sceneVo.setTitle(fdkkScenePlusVo.getSceneName());
             sceneVo.setViewCount(fdkkScenePlusVo.getViewCount());
             sceneVo.setIsLaser(false);
-            sceneVo.setType(fdkkScenePlusVo.getSceneType());
+            sceneVo.setType(type);
             if(fdkkScenePlusVo.getUserId()== null){
                 sceneVo.setBind(false);
             }