lyhzzz 2 лет назад
Родитель
Сommit
9f760c094e

+ 25 - 1
src/main/java/com/fdkankan/ucenter/service/impl/CameraServiceImpl.java

@@ -30,6 +30,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.*;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * <p>
@@ -57,6 +58,8 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
     @Autowired
     ISceneResourceCameraService sceneResourceCameraService;
     @Autowired
+    ISceneResourceService sceneResourceService;
+    @Autowired
     ICameraDetailService cameraDetailService;
     @Autowired
     IScenePlusService scenePlusService;
@@ -279,11 +282,25 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
         sceneResourceCameraService.deleteByCameraIds(cameraIds);
 
         //保存相机和场景资源的关联关系你
+        String resourceType = "all";
         List<Long> resourceIdList = new ArrayList<>();
         if (StringUtils.isNotEmpty(resourceIds)) {
             for (String rId : resourceIds.split(",")) {
                 resourceIdList.add(Long.valueOf(rId));
             }
+            List<SceneResource> sceneResources = sceneResourceService.listByIds(resourceIdList);
+            List<SceneResource> v4List = sceneResources.stream().filter(entity -> entity.getVersion().equals("v4")).collect(Collectors.toList());
+            List<SceneResource> v3List = sceneResources.stream().filter(entity -> entity.getVersion().equals("v3")).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";
+            }
+
             sceneResourceCameraService.saveBatchByCameraIds(cameraIds,resourceIdList);
         }
 
@@ -291,7 +308,14 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
         List<ScenePlus> scenePlusList = scenePlusService.getListByCameraIds(cameraIds);
         sceneCooperationService.deleteCooperationList(sceneProList,scenePlusList);
 
-        sceneCooperationService.saveBatchByList(sceneProList,scenePlusList,user.getId(),resourceIdList);
+        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;
+        }
 
         fdkkLaserService.disableCooperation(detailMap, cameraMap);
         fdkkLaserService.enableCameraCooperation(detailMap, cameraMap, username);