Jelajahi Sumber

修改相机解绑逻辑

tianboguang 2 tahun lalu
induk
melakukan
b87560755f

+ 3 - 3
src/main/java/com/fdkankan/ucenter/service/impl/CameraDetailServiceImpl.java

@@ -103,15 +103,15 @@ public class CameraDetailServiceImpl extends ServiceImpl<ICameraDetailMapper, Ca
     public void unbindCamera(List<Long> cameraIds) {
         HashMap<Long, CameraDetail> detailMap = this.getByCameraIds(cameraIds);
         HashMap<Long, Camera> cameraMap = cameraService.getByIds(cameraIds);
-        for (Long cameraId : detailMap.keySet()) {
-            CameraDetail cameraDetail = detailMap.get(cameraId);
+        for (CameraDetail cameraDetail : detailMap.values()) {
             LambdaUpdateWrapper<CameraDetail> wrapper = new LambdaUpdateWrapper<>();
             wrapper.eq(CameraDetail::getId,cameraDetail.getId());
             wrapper.set(CameraDetail::getUserId,null);
             wrapper.set(CameraDetail::getCooperationUser,null);
             wrapper.set(CameraDetail::getTotalSpace,Long.parseLong(Constant.EXPANSION_SPACE_VALUE_1G ) * 10L);
             this.update(wrapper);
-            sceneProService.lockOrUnLockBySpace(cameraDetail,cameraId,-2);     //封存场景
+            cameraDetail.setTotalSpace(Long.parseLong(Constant.EXPANSION_SPACE_VALUE_1G ) * 10L);
+            sceneProService.lockOrUnLockBySpace(cameraDetail,cameraDetail.getCameraId(),-2);     //封存场景
         }
         //恢复10G基本容量
 

+ 4 - 6
src/main/java/com/fdkankan/ucenter/service/impl/CameraServiceImpl.java

@@ -244,14 +244,12 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
                 throw new BusinessException(AppConstant.FAILURE_CODE_4010, code +"-"+ AppConstant.FAILURE_MSG_4010);
             }
         }
-        HashMap<Long ,Camera> cameraHashMap = new HashMap<>();
-        list.forEach(camera -> cameraHashMap.put(camera.getId(),camera));
-        List<Long> cameraIds = list.stream().map(Camera::getId).collect(Collectors.toList());
+        Map<Long, Camera> cameraHashMap = list.stream().collect(Collectors.toMap(Camera::getId, camera -> camera, (o1, o2) -> o1));
+        List<Long> cameraIds = new ArrayList<>(cameraHashMap.keySet());
         HashMap<Long, CameraDetail> detailHashMap = cameraDetailService.getByCameraIds(cameraIds);
-        for (Long cameraId : detailHashMap.keySet()) {
-            CameraDetail detail = detailHashMap.get(cameraId);
+        for (CameraDetail detail : detailHashMap.values()) {
             if(detail.getUserId() != null){
-                throw new BusinessException(CameraConstant.FAILURE_CODE_6010, cameraHashMap.get(cameraId).getSnCode() +"-"+ CameraConstant.FAILURE_MSG_6010);
+                throw new BusinessException(CameraConstant.FAILURE_CODE_6010, cameraHashMap.get(detail.getCameraId()).getSnCode() +"-"+ CameraConstant.FAILURE_MSG_6010);
             }
         }
 

+ 9 - 10
src/main/java/com/fdkankan/ucenter/service/impl/SceneProServiceImpl.java

@@ -203,18 +203,17 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
         Long beyondSpace = Math.abs(cameraDetail.getUsedSpace() - cameraDetail.getTotalSpace());
         Long accumulateSpace = 0L;
-        List<Long> lockedIds = new ArrayList<>();
+        List<Long> proLockedIds = new ArrayList<>();
+        List<Long> plusLockedIds = new ArrayList<>();
         if(payStatus == 1){
-            Long doSpace = getScenePlusLockedIds(lockedIds, plusList, count, beyondSpace, accumulateSpace);
-            beyondSpace -= doSpace;
-            getSceneLockedIds(lockedIds,list,count,beyondSpace,accumulateSpace);
+            accumulateSpace = getSceneLockedIds(proLockedIds,list,count,beyondSpace,accumulateSpace);
+            getScenePlusLockedIds(plusLockedIds,plusList,count,beyondSpace,accumulateSpace);
         }else {
-            Long doSpace = getSceneLockedIds(lockedIds, list, count, beyondSpace, accumulateSpace);
-            beyondSpace -= doSpace;
-            getScenePlusLockedIds(lockedIds,plusList,count,beyondSpace,accumulateSpace);
+            accumulateSpace = getSceneLockedIds(proLockedIds,list,count,beyondSpace,accumulateSpace);
+            getScenePlusLockedIds(plusLockedIds,plusList,count,beyondSpace,accumulateSpace);
         }
 
-        lockOrUnLockScenes(lockedIds,payStatus);
+        lockOrUnLockScenes(proLockedIds,plusLockedIds,payStatus);
     }
 
 
@@ -249,7 +248,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
 
     // payStatus 为 -2 封存,为 1 解封
-    private void lockOrUnLockScenes(List<Long> lockedIds,Integer payStatus) {
+    private void lockOrUnLockScenes(List<Long> lockedIds,List<Long> plusLockedIds,Integer payStatus) {
         if (lockedIds == null || lockedIds.size() == 0){
             return;
         }
@@ -261,7 +260,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
         LambdaUpdateWrapper<ScenePlus> updatePlusWrapper = new LambdaUpdateWrapper<>();
         updatePlusWrapper.set(ScenePlus::getPayStatus,payStatus)
-                .in(ScenePlus::getId,lockedIds);
+                .in(ScenePlus::getId,plusLockedIds);
         scenePlusService.update(updatePlusWrapper);
 
         this.updateOssStatus(lockedIds,payStatus);