lyhzzz 2 rokov pred
rodič
commit
43bc64c420

+ 1 - 1
src/main/java/com/fdkankan/fusion/service/ICaseNumService.java

@@ -22,7 +22,7 @@ public interface ICaseNumService extends IService<CaseNumEntity> {
 
     void addBatch(Integer caseId, List<SceneNumParam> sceneNumParam);
 
-    void deleteByCaseId(Integer caseId,Boolean rest);
+    void deleteByCaseId(Integer caseId);
 
     HashMap<Integer, List<String>> getTypeMap(Integer caseId);
 

+ 5 - 0
src/main/java/com/fdkankan/fusion/service/ICaseTagPointService.java

@@ -4,6 +4,7 @@ import com.fdkankan.fusion.entity.CaseTagPoint;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 import java.util.HashMap;
+import java.util.List;
 
 /**
  * <p>
@@ -22,4 +23,8 @@ public interface ICaseTagPointService extends IService<CaseTagPoint> {
     CaseTagPoint place(CaseTagPoint caseTagPoint);
 
     Object allList(Integer tagId);
+
+    void deleteByModelIds(List<Integer> modelIds);
+
+    void deleteByTagIds(List<Integer> tagIds);
 }

+ 2 - 0
src/main/java/com/fdkankan/fusion/service/ICaseTagService.java

@@ -20,4 +20,6 @@ public interface ICaseTagService extends IService<CaseTag> {
     void updateDFHotIcon(Integer iconId);
 
     List<CaseTag> getListByCaseId(Integer caseId);
+
+    void deletePointByCaseId(Integer caseId);
 }

+ 2 - 0
src/main/java/com/fdkankan/fusion/service/ICaseViewService.java

@@ -22,4 +22,6 @@ public interface ICaseViewService extends IService<CaseView> {
     void updateNameOrSort(CaseView caseView);
 
     void deleteByNumList(Integer caseId, List<String> updateNumList);
+
+    void deleteByCaseId(Integer caseId);
 }

+ 2 - 0
src/main/java/com/fdkankan/fusion/service/IFusionGuidePathService.java

@@ -18,4 +18,6 @@ public interface IFusionGuidePathService extends IService<FusionGuidePath> {
     List<FusionGuidePath> getListByGuideId(Integer guideId);
 
     FusionGuidePath add(FusionGuidePath fusionGuidePath);
+
+    void deleteByCaseId(Integer caseId);
 }

+ 1 - 0
src/main/java/com/fdkankan/fusion/service/IFusionMeterService.java

@@ -23,4 +23,5 @@ public interface IFusionMeterService extends IService<FusionMeter> {
 
     void deleteByFusionId(Integer fusionId);
 
+    void deleteByCaseId(Integer caseId);
 }

+ 56 - 10
src/main/java/com/fdkankan/fusion/service/impl/CaseNumServiceImpl.java

@@ -52,6 +52,8 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
     IFusionMeterService fusionMeterService;
     @Autowired
     IFusionGuidePathService fusionGuidePathService;
+    @Autowired
+    ICaseTagService caseTagService;
 
 
     @Override
@@ -65,16 +67,20 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
     @Override
     public void addBatch(Integer caseId, List<SceneNumParam> sceneNumParam) {
 
-        this.deleteByCaseId(caseId,true);
+        List<String> addNumList = this.updateByNumList(caseId, sceneNumParam);
+        if(addNumList == null || addNumList.size()<=0){
+            return;
+        }
 
         List<CaseNumEntity> newCaseNums = new ArrayList<>();
         List<Model> modelList = new ArrayList<>();
-        List<String> updateNumList = new ArrayList<>();
         for (SceneNumParam param : sceneNumParam) {
             List<String> numList = param.getNumList();
             HashSet<String> setNum = new HashSet<>(numList);
             for (String num : setNum) {
-                updateNumList.add(num);
+                if(!addNumList.contains(num)){
+                    continue;
+                }
                 CaseNumEntity caseNumEntity = new CaseNumEntity();
                 caseNumEntity.setCaseId(caseId);
                 caseNumEntity.setNumType(param.getType());
@@ -104,11 +110,9 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
         if(modelList.size() >0){
             modelService.saveOrUpdateBatch(modelList);
         }
-        fusionNumService.deleteByNumList(caseId,updateNumList);
-        caseViewService.deleteByNumList(caseId,updateNumList);
-        fusionMeterService.deleteByNumList(caseId,updateNumList);
     }
 
+
     private String getGlbUrl(Integer type, String num,Model model) {
         if(type == 0 || type == 1){ //看看,看见
             String objPath = String.format(OBJ_PATH ,num);
@@ -139,14 +143,56 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
         return null;
     }
 
+    private List<String> updateByNumList(Integer caseId, List<SceneNumParam> sceneNumParam) {
+        List<String> updateNumList = new ArrayList<>();
+        for (SceneNumParam param : sceneNumParam) {
+            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);
+            }
+        }
+        for (String num : updateNumList) {
+            if(!hanNumList.contains(num)){
+                addList.add(num);
+            }
+        }
+        this.deleteByNum(caseId,delList);
+
+        return addList;
+    }
+
+    private void deleteByNum(Integer caseId, List<String> delList) {
+        LambdaQueryWrapper<CaseNumEntity> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CaseNumEntity::getCaseId,caseId);
+        wrapper.in(CaseNumEntity::getNum,delList);
+        this.remove(wrapper);
+        fusionNumService.deleteByNumList(caseId,delList);
+        caseViewService.deleteByNumList(caseId,delList);
+    }
+
     @Override
-    public void deleteByCaseId(Integer caseId,Boolean rest) {
+    public void deleteByCaseId(Integer caseId) {
         LambdaQueryWrapper<CaseNumEntity> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(CaseNumEntity::getCaseId,caseId);
         this.remove(wrapper);
-        if(!rest){
-            fusionNumService.deleteByCaseId(caseId);
-        }
+        fusionNumService.deleteByCaseId(caseId);
+        caseViewService.deleteByCaseId(caseId);
+        fusionGuidePathService.deleteByCaseId(caseId);
+        fusionMeterService.deleteByCaseId(caseId);
+        caseTagService.deletePointByCaseId(caseId);
     }
 
     @Override

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

@@ -150,7 +150,7 @@ public class CaseServiceImpl extends ServiceImpl<ICaseMapper, CaseEntity> implem
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
         //删除关联的场景
-        caseNumService.deleteByCaseId(caseId,false);
+        caseNumService.deleteByCaseId(caseId);
 
         this.removeById(caseId);
     }

+ 18 - 0
src/main/java/com/fdkankan/fusion/service/impl/CaseTagPointServiceImpl.java

@@ -81,4 +81,22 @@ public class CaseTagPointServiceImpl extends ServiceImpl<ICaseTagPointMapper, Ca
         }
         return caseTagPointVoList;
     }
+
+    @Override
+    public void deleteByModelIds(List<Integer> modelIds) {
+        if(modelIds.size() >0){
+            LambdaQueryWrapper<CaseTagPoint> wrapper = new LambdaQueryWrapper<>();
+            wrapper.in(CaseTagPoint::getModelId,modelIds);
+            this.remove(wrapper);
+        }
+    }
+
+    @Override
+    public void deleteByTagIds(List<Integer> tagIds) {
+        if(tagIds.size() >0){
+            LambdaQueryWrapper<CaseTagPoint> wrapper = new LambdaQueryWrapper<>();
+            wrapper.in(CaseTagPoint::getTagId,tagIds);
+            this.remove(wrapper);
+        }
+    }
 }

+ 8 - 0
src/main/java/com/fdkankan/fusion/service/impl/CaseTagServiceImpl.java

@@ -18,6 +18,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -69,4 +70,11 @@ public class CaseTagServiceImpl extends ServiceImpl<ICaseTagMapper, CaseTag> imp
         wrapper.eq(CaseTag::getCaseId,caseId);
         return list(wrapper);
     }
+
+    @Override
+    public void deletePointByCaseId(Integer caseId) {
+        List<CaseTag> list = this.getListByCaseId(caseId);
+        List<Integer> tagIds = list.parallelStream().map(CaseTag::getTagId).collect(Collectors.toList());
+        caseTagPointService.deleteByTagIds(tagIds);
+    }
 }

+ 13 - 8
src/main/java/com/fdkankan/fusion/service/impl/CaseViewServiceImpl.java

@@ -86,20 +86,25 @@ public class CaseViewServiceImpl extends ServiceImpl<ICaseViewMapper, CaseView>
     public void deleteByNumList(Integer caseId, List<String> updateNumList) {
         LambdaQueryWrapper<CaseView> queryW = new LambdaQueryWrapper<>();
         queryW.eq(CaseView::getCaseId,caseId);
+        if(updateNumList.size()<=0){
+            this.remove(queryW);
+            return;
+        }
         List<CaseView> list = this.list(queryW);
 
         if(list.size() >0){
-            List<String> deleteNumList = new ArrayList<>();
             List<String> numList = list.parallelStream().map(CaseView::getNum).collect(Collectors.toList());
-            for (String str : numList) {
-                if(!updateNumList.contains(str)){
-                    deleteNumList.add(str);
-                }
-            }
-            if(deleteNumList.size() >0){
-                queryW.in(CaseView::getNum,deleteNumList);
+            if(numList.size() >0){
+                queryW.in(CaseView::getNum,numList);
                 this.remove(queryW);
             }
         }
     }
+
+    @Override
+    public void deleteByCaseId(Integer caseId) {
+        LambdaQueryWrapper<CaseView> queryW = new LambdaQueryWrapper<>();
+        queryW.eq(CaseView::getCaseId,caseId);
+        this.remove(queryW);
+    }
 }

+ 24 - 1
src/main/java/com/fdkankan/fusion/service/impl/FusionGuidePathServiceImpl.java

@@ -2,15 +2,20 @@ package com.fdkankan.fusion.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fdkankan.fusion.common.ResultCode;
+import com.fdkankan.fusion.entity.FusionGuide;
 import com.fdkankan.fusion.entity.FusionGuidePath;
 import com.fdkankan.fusion.exception.BusinessException;
 import com.fdkankan.fusion.mapper.IFusionGuidePathMapper;
 import com.fdkankan.fusion.service.IFusionGuidePathService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.fusion.service.IFusionGuideService;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.swing.text.rtf.RTFEditorKit;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -23,6 +28,9 @@ import java.util.List;
 @Service
 public class FusionGuidePathServiceImpl extends ServiceImpl<IFusionGuidePathMapper, FusionGuidePath> implements IFusionGuidePathService {
 
+    @Autowired
+    IFusionGuideService fusionGuideService;
+
     @Override
     public List<FusionGuidePath> getListByGuideId(Integer guideId) {
         if(guideId == null){
@@ -49,5 +57,20 @@ public class FusionGuidePathServiceImpl extends ServiceImpl<IFusionGuidePathMapp
         return fusionGuidePath;
     }
 
-
+    @Override
+    public void deleteByCaseId(Integer caseId) {
+        LambdaQueryWrapper<FusionGuide> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(FusionGuide::getCaseId,caseId);
+        List<FusionGuide> list = fusionGuideService.list(wrapper);
+        if(list.size() <=0){
+            return;
+        }
+        List<Integer> guideId = list.parallelStream().map(FusionGuide::getFusionGuideId).collect(Collectors.toList());
+        if(guideId.size() >0){
+            LambdaQueryWrapper<FusionGuidePath> delWr = new LambdaQueryWrapper<>();
+            delWr.in(FusionGuidePath::getGuideId,guideId);
+            this.remove(delWr);
+        }
+        fusionGuideService.remove(wrapper);
+    }
 }

+ 16 - 0
src/main/java/com/fdkankan/fusion/service/impl/FusionMeterServiceImpl.java

@@ -5,6 +5,7 @@ import com.fdkankan.fusion.common.ResultCode;
 import com.fdkankan.fusion.entity.CaseFusion;
 import com.fdkankan.fusion.entity.CaseView;
 import com.fdkankan.fusion.entity.FusionMeter;
+import com.fdkankan.fusion.entity.FusionNum;
 import com.fdkankan.fusion.exception.BusinessException;
 import com.fdkankan.fusion.mapper.IFusionMeterMapper;
 import com.fdkankan.fusion.service.ICaseFusionService;
@@ -72,4 +73,19 @@ public class FusionMeterServiceImpl extends ServiceImpl<IFusionMeterMapper, Fusi
         wrapper.eq(FusionMeter::getFusionId,fusionId);
         this.remove(wrapper);
     }
+
+    @Override
+    public void deleteByCaseId(Integer caseId) {
+        LambdaQueryWrapper<CaseFusion> fnwr = new LambdaQueryWrapper<>();
+        fnwr.eq(CaseFusion::getCaseId,caseId);
+        List<CaseFusion> list = caseFusionService.list(fnwr);
+        if(list.size() >0){
+            List<Integer> fusionIds = list.parallelStream().map(CaseFusion::getFusionId).collect(Collectors.toList());
+            if(fusionIds.size() >0){
+                LambdaQueryWrapper<FusionMeter> wrapper = new LambdaQueryWrapper<>();
+                wrapper.in(FusionMeter::getFusionId,fusionIds);
+                this.remove(wrapper);
+            }
+        }
+    }
 }

+ 13 - 5
src/main/java/com/fdkankan/fusion/service/impl/FusionNumServiceImpl.java

@@ -43,6 +43,8 @@ public class FusionNumServiceImpl extends ServiceImpl<IFusionNumMapper, FusionNu
     IModelService modelService;
     @Autowired
     IFusionMeterService fusionMeterService;
+    @Autowired
+    ICaseTagPointService caseTagPointService;
 
     @Override
     public List<FusionNum> getByNum(String num) {
@@ -193,18 +195,23 @@ public class FusionNumServiceImpl extends ServiceImpl<IFusionNumMapper, FusionNu
      * 删除视图不存在的场景码
      */
     @Override
-    public void deleteByNumList(Integer caseId,List<String> updateNumList) {
+    public void deleteByNumList(Integer caseId,List<String> deleteNum) {
         List<CaseFusion> caseFusionList = caseFusionService.getListByCaseId(caseId);
         if(caseFusionList.size() >0){
             List<Integer> fusionIds = caseFusionList.parallelStream().map(CaseFusion::getFusionId).collect(Collectors.toList());
             if(fusionIds.size() >0){
-                if(updateNumList.size() <=0){
+                if(deleteNum.size() <=0){
                     this.deleteByCaseId(caseId);
                     return;
                 }
                 LambdaQueryWrapper<Model> wrapper = new LambdaQueryWrapper<>();
-                wrapper.in(Model::getNum,updateNumList);
+                wrapper.in(Model::getNum,deleteNum);
                 List<Model> list = modelService.list(wrapper);
+                LambdaQueryWrapper<Model> wrapper2 = new LambdaQueryWrapper<>();
+                wrapper2.in(Model::getModelId,deleteNum);
+                List<Model> list2 = modelService.list(wrapper);
+                list.addAll(list2);
+
                 if(list.size()<=0){
                     this.deleteByCaseId(caseId);
                     return;
@@ -212,12 +219,13 @@ public class FusionNumServiceImpl extends ServiceImpl<IFusionNumMapper, FusionNu
                 List<Integer> modelIds = list.parallelStream().map(Model::getModelId).collect(Collectors.toList());
                 LambdaQueryWrapper<FusionNum> deleteWr = new LambdaQueryWrapper<>();
                 deleteWr.in(FusionNum::getFusionId,fusionIds);
-                deleteWr.notIn(FusionNum::getModelId,modelIds);
+                deleteWr.in(FusionNum::getModelId,modelIds);
                 List<FusionNum> list1 = this.list(deleteWr);
                 for (FusionNum fusionNum : list1) {
                     fusionMeterService.deleteByModelId(fusionNum.getModelId());
-
                 }
+                List<Integer> models = list1.parallelStream().map(FusionNum::getModelId).collect(Collectors.toList());
+                caseTagPointService.deleteByModelIds(models);
                 this.remove(deleteWr);
             }
         }