瀏覽代碼

迁移场景,判断容量解封场景

lyhzzz 2 年之前
父節點
當前提交
20675f538b

+ 2 - 0
src/main/java/com/fdkankan/manage/service/ISceneProService.java

@@ -2,6 +2,7 @@ package com.fdkankan.manage.service;
 
 import com.fdkankan.manage.common.PageInfo;
 import com.fdkankan.manage.entity.CameraDetail;
+import com.fdkankan.manage.entity.ScenePlus;
 import com.fdkankan.manage.entity.ScenePro;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.manage.vo.request.SceneParam;
@@ -23,6 +24,7 @@ public interface ISceneProService extends IService<ScenePro> {
     void unbindCamera(Long cameraId);
 
     void lockOrUnLockBySpace(CameraDetail cameraDetail,Long cameraId,Integer payStatus);
+    void lockOrUnLockBySpace(ScenePro scenePro, ScenePlus scenePlus,Integer payStatus);
 
     List<ScenePro> getListByCameraId(Long cameraId);
 

+ 19 - 3
src/main/java/com/fdkankan/manage/service/impl/SceneProServiceImpl.java

@@ -199,9 +199,19 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         lockOrUnLockScenes(lockedIds,payStatus);
     }
 
+    @Override
+    public void lockOrUnLockBySpace(ScenePro scenePro, ScenePlus scenePlus,Integer payStatus) {
+        List<Long> lockedIds = new ArrayList<>();
+        if(scenePro!= null){
+            lockedIds.add(scenePro.getId());
+        }
+        if(scenePlus!= null){
+            lockedIds.add(scenePlus.getId());
+        }
+        lockOrUnLockScenes(lockedIds,payStatus);  //  无限容量 全部解封
+    }
 
-
-    private void getSceneLockedIds(List<Long> lockedIds ,List<ScenePro> list,Long beyondSpace,Long accumulateSpace){
+    private void getSceneLockedIds(List<Long> lockedIds , List<ScenePro> list, Long beyondSpace, Long accumulateSpace){
         if (list != null && list.size() > 0){
             for (ScenePro scenePro : list){
                 accumulateSpace += scenePro.getSpace();
@@ -386,9 +396,15 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         oldCameraDetail.setUsedSpace(oldUseSpace);
         Long subSpace =  oldCameraDetail.getTotalSpace() - oldUseSpace;
 
-        if(cameraDetail.getType() != 10 && subSpace >0){    //有剩余容量解封容量内场景
+        if(oldCameraDetail.getType() != 10 && subSpace >0){           //有剩余容量解封容量内场景
             this.lockOrUnLockBySpace(oldCameraDetail,oldCameraDetail.getCameraId(),1);
         }
+
+        Integer payStatus =  scenePro == null ? scenePlus.getPayStatus() : scenePro.getPayStatus();
+
+        if(cameraDetail.getType() != 10 && payStatus!=1){           //有剩余容量解封容量内场景
+            this.lockOrUnLockBySpace(scenePro,scenePlus,1);
+        }
         cameraDetailService.updateById(oldCameraDetail);
         cameraDetail.setUsedSpace(newUseSpace);
         cameraDetailService.updateById(cameraDetail);