Browse Source

封存解封修改

lyhzzz 2 years ago
parent
commit
fbe6dbd76d

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

@@ -249,7 +249,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             wrapper.eq(ScenePro::getPayStatus,-2);
             plusWr.eq(ScenePlus::getPayStatus,-2);
         }else {
-            if (totalSpace >= cameraDetail.getUsedSpace()) {
+            if (totalSpace == -1 || totalSpace >= cameraDetail.getUsedSpace()) {
                 // 总容量大于已使用容量,不予封存
                 return;
             }
@@ -268,16 +268,20 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         List<ScenePlus> plusList = scenePlusService.list(plusWr);
 
         Long beyondSpace = Math.abs(cameraDetail.getUsedSpace() - totalSpace);
+        if(totalSpace == -1){
+            beyondSpace = Long.MAX_VALUE;
+        }
+
         Long accumulateSpace = 0L;
         List<Long> lockedIds = new ArrayList<>();
         if(payStatus == 1){
-            Long doSpace = getScenePlusLockedIds(lockedIds, plusList, totalSpace, beyondSpace, accumulateSpace);
+            Long doSpace = getScenePlusLockedIds(lockedIds, plusList, beyondSpace, accumulateSpace);
             beyondSpace -= doSpace;
-            getSceneLockedIds(lockedIds,list,totalSpace,beyondSpace,accumulateSpace);
+            getSceneLockedIds(lockedIds,list,beyondSpace,accumulateSpace);
         }else {
-            Long doSpace = getSceneLockedIds(lockedIds, list, totalSpace, beyondSpace, accumulateSpace);
+            Long doSpace = getSceneLockedIds(lockedIds, list, beyondSpace, accumulateSpace);
             beyondSpace -= doSpace;
-            getScenePlusLockedIds(lockedIds,plusList,totalSpace,beyondSpace,accumulateSpace);
+            getScenePlusLockedIds(lockedIds,plusList,beyondSpace,accumulateSpace);
         }
 
         lockOrUnLockScenes(lockedIds,payStatus);
@@ -285,11 +289,11 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
 
 
-    private Long getSceneLockedIds(List<Long> lockedIds ,List<ScenePro> list,Long count,Long beyondSpace,Long accumulateSpace){
+    private Long getSceneLockedIds(List<Long> lockedIds ,List<ScenePro> list,Long beyondSpace,Long accumulateSpace){
         if (list != null && list.size() > 0){
             for (ScenePro scenePro : list){
                 accumulateSpace += scenePro.getSpace();
-                if (count ==-1 && accumulateSpace.compareTo(beyondSpace) > 0){
+                if (accumulateSpace.compareTo(beyondSpace) > 0){
                     return  accumulateSpace - scenePro.getSpace();
                 }
                 lockedIds.add(scenePro.getId());
@@ -297,14 +301,14 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         }
         return  accumulateSpace;
     }
-    private Long getScenePlusLockedIds(List<Long> lockedIds , List<ScenePlus> list, Long count, Long beyondSpace, Long accumulateSpace){
+    private Long getScenePlusLockedIds(List<Long> lockedIds , List<ScenePlus> list, Long beyondSpace, Long accumulateSpace){
         if (list != null && list.size() > 0){
             List<Long> plusIds = list.parallelStream().map(ScenePlus::getId).collect(Collectors.toList());
             HashMap<Long, ScenePlusExt> byPlusIds = scenePlusExtService.getByPlusIds(plusIds);
             for (ScenePlus scenePlus : list){
                 ScenePlusExt scenePlusExt = byPlusIds.get(scenePlus.getId());
                 accumulateSpace += scenePlusExt.getSpace();
-                if (count ==-1 && accumulateSpace.compareTo(beyondSpace) > 0){
+                if (accumulateSpace.compareTo(beyondSpace) > 0){
                     return  accumulateSpace - scenePlusExt.getSpace();
                 }
                 lockedIds.add(scenePlus.getId());