Browse Source

Merge remote-tracking branch 'origin/coopera-bug'

lyhzzz 1 year ago
parent
commit
20c1fc554f

+ 16 - 19
src/main/java/com/fdkankan/ucenter/service/impl/CameraServiceImpl.java

@@ -340,24 +340,16 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
         sceneResourceCameraService.deleteByCameraIds(cameraIds);
 
         //保存相机和场景资源的关联关系你
-        String resourceType = "all";
         List<Long> resourceIdList = new ArrayList<>();
+        List<SceneResource> v3List = new ArrayList<>();
+        List<SceneResource> v4List = new ArrayList<>();
         if (StringUtils.isNotEmpty(resourceIds)) {
             for (String rId : resourceIds.split(",")) {
                 resourceIdList.add(Long.valueOf(rId));
             }
             List<SceneResource> sceneResources = sceneResourceService.listByIds(resourceIdList);
-            List<SceneResource> v3List = sceneResources.stream().filter(entity -> entity.getVersion().equals("v3")).collect(Collectors.toList());
-            List<SceneResource> v4List = sceneResources.stream().filter(entity -> entity.getVersion().equals("v4")).collect(Collectors.toList());
-            if(v3List.size() >0 && v4List.size() >0){
-                resourceType = "all";
-            }
-            if(v3List.size() >0 && v4List.size() <=0){
-                resourceType = "v3";
-            }
-            if(v3List.size() <=0 && v4List.size() >0){
-                resourceType = "v4";
-            }
+            v3List = sceneResources.stream().filter(entity -> entity.getVersion().equals("v3")).collect(Collectors.toList());
+            v4List = sceneResources.stream().filter(entity -> entity.getVersion().equals("v4")).collect(Collectors.toList());
 
             sceneResourceCameraService.saveBatchByCameraIds(cameraIds,resourceIdList);
         }else {
@@ -373,6 +365,9 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
                 List<SceneResource> sceneResources = sceneResourceService.list();
                 List<Long> collect = sceneResources.stream().map(SceneResource::getId).collect(Collectors.toList());
                 sceneResourceCameraService.saveBatchByCameraIds(laserCameraIds,collect);
+
+                v3List = sceneResources.stream().filter(entity -> entity.getVersion().equals("v3")).collect(Collectors.toList());
+                v4List = sceneResources.stream().filter(entity -> entity.getVersion().equals("v4")).collect(Collectors.toList());
             }
 
         }
@@ -381,15 +376,17 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
         List<ScenePlus> scenePlusList = scenePlusService.getListByCameraIds(cameraIds);
         sceneCooperationService.deleteCooperationList(sceneProList,scenePlusList);
 
-        switch (resourceType){
-            case "v3" :
-                sceneCooperationService.saveBatchByList(sceneProList,new ArrayList<>(),user.getId(),resourceIdList); break;
-            case "v4" :
-                sceneCooperationService.saveBatchByList(new ArrayList<>(),scenePlusList,user.getId(),resourceIdList); break;
-            default:
-                sceneCooperationService.saveBatchByList(sceneProList,scenePlusList,user.getId(),resourceIdList); break;
+        if(!v3List.isEmpty() && !sceneProList.isEmpty()){
+            List<Long> v3Ids = v3List.stream().map(SceneResource::getId).collect(Collectors.toList());
+            sceneCooperationService.saveBatchByList(sceneProList,new ArrayList<>(),user.getId(),v3Ids);
         }
 
+        if(!v4List.isEmpty() && !scenePlusList.isEmpty()){
+            List<Long> v4Ids = v4List.stream().map(SceneResource::getId).collect(Collectors.toList());
+            sceneCooperationService.saveBatchByList(new ArrayList<>(),scenePlusList,user.getId(),v4Ids);
+        }
+
+
         fdkkLaserService.disableCooperation(detailMap, cameraMap);
         fdkkLaserService.enableCameraCooperation(detailMap, cameraMap, username);
         if("aws".equals(NacosProperty.uploadType)){

+ 15 - 1
src/main/java/com/fdkankan/ucenter/service/impl/SceneCooperationServiceImpl.java

@@ -237,13 +237,27 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
         List<ScenePlus> plusList = scenePlusService.getListByNums(numList);
         this.deleteCooperationList(proList,plusList);
 
+        List<SceneResource> v3List = new ArrayList<>();
+        List<SceneResource> v4List = new ArrayList<>();
         List<Long> resourceIdList = new ArrayList<>();
         if (StringUtils.isNotEmpty(param.getResourceIds())) {
             for (String rId : param.getResourceIds().split(",")) {
                 resourceIdList.add(Long.valueOf(rId));
             }
+            List<SceneResource> sceneResources = sceneResourceService.listByIds(resourceIdList);
+            v3List = sceneResources.stream().filter(entity -> entity.getVersion().equals("v3")).collect(Collectors.toList());
+            v4List = sceneResources.stream().filter(entity -> entity.getVersion().equals("v4")).collect(Collectors.toList());
         }
-        this.saveBatchByList(proList,plusList,user.getId(),resourceIdList);
+
+        if(!v3List.isEmpty() && !proList.isEmpty()){
+            List<Long> v3Ids = v3List.stream().map(SceneResource::getId).collect(Collectors.toList());
+            this.saveBatchByList(proList,new ArrayList<>(),user.getId(),v3Ids);
+        }
+        if(!v4List.isEmpty() && !plusList.isEmpty()){
+            List<Long> v4Ids = v4List.stream().map(SceneResource::getId).collect(Collectors.toList());
+            this.saveBatchByList(new ArrayList<>(),plusList,user.getId(),v4Ids);
+        }
+
         if("aws".equals(NacosProperty.uploadType)){
             mailTemplateService.sendSceneCooperation(proList,plusList,param.getUserName(),param.getLang());
         }