lyhzzz 1 년 전
부모
커밋
13dec43b65

+ 2 - 0
src/main/java/com/fdkankan/ucenter/service/ICameraDetailService.java

@@ -60,6 +60,8 @@ public interface ICameraDetailService extends IService<CameraDetail> {
 
     Boolean checkSpace(Long cameraId, Long space);
 
+    Boolean checkSpace(Long cameraId,CameraType cameraType);
+
     void initSpace(CameraDetail cameraDetail);
     void initSpace(Long cameraId);
 }

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

@@ -301,6 +301,23 @@ public class CameraDetailServiceImpl extends ServiceImpl<ICameraDetailMapper, Ca
     }
 
     @Override
+    public Boolean checkSpace(Long cameraId, CameraType cameraType) {
+        CameraDetail detailEntity = this.getByCameraId(cameraId);
+        if(detailEntity == null){
+            return false;
+        }
+        if (!"aws".equals(NacosProperty.uploadType) && cameraType.getIsLaser() == 1) {
+            return true;
+        }
+        UserIncrement userIncrement = userIncrementService.getByCameraId(detailEntity.getCameraId());
+        if(userIncrement == null || userIncrement.getIsExpired() == 1){
+            return checkSpace(detailEntity,null,cameraType,true);
+        }
+        IncrementType incrementType = incrementTypeService.getById(userIncrement.getIncrementTypeId());
+        return checkSpace(detailEntity,incrementType,cameraType,true);
+    }
+
+    @Override
     public Boolean checkSpace(CameraDetail detailEntity, Long space,CameraType cameraType) {
         if(detailEntity == null){
             return false;
@@ -341,6 +358,30 @@ public class CameraDetailServiceImpl extends ServiceImpl<ICameraDetailMapper, Ca
         return false;
     }
 
+    public Boolean checkSpace(CameraDetail detailEntity, IncrementType incrementType,CameraType cameraType,Boolean falg) {
+        Long totalSpace = 0L;
+        if (!"aws".equals(NacosProperty.uploadType) && cameraType.getIsLaser() == 1) {
+            return true;
+        }
+        if("SP".equals(detailEntity.getUnit())){
+            if(incrementType!=null && incrementType.getCameraSpace() == -1){
+                return true;
+            }
+            totalSpace = incrementType != null ?incrementType.getCameraSpace() : detailEntity.getTotalSpace();
+            Long proCount = sceneProService.getCountByCameraId(detailEntity.getCameraId());
+            Long plusCount = scenePlusService.getCountByCameraId(detailEntity.getCameraId());
+            return proCount + plusCount  <= totalSpace;
+        }
+        if("GB".equals(detailEntity.getUnit())){
+            if(incrementType!=null && incrementType.getCameraCapacity() == -1){
+                return true;
+            }
+            totalSpace = incrementType != null ?incrementType.getCameraCapacity()  * 1024 * 1024 * 1024L: detailEntity.getTotalSpace();
+            return detailEntity.getUsedSpace()  <= totalSpace;
+        }
+        return false;
+    }
+
     public Long getTotalSpace(CameraDetail detailEntity, IncrementType incrementType) {
         if("SP".equals(detailEntity.getUnit())){
             if(incrementType!=null && incrementType.getCameraSpace() == -1){

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

@@ -294,7 +294,7 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
                     }
                 }
                 redisUtil.set(redisSceneLock,"1",60*60);
-                Boolean checkSpace = cameraDetailService.checkSpace(cameraDetail.getCameraId(), plusExt.getSpace());
+                Boolean checkSpace = cameraDetailService.checkSpace(cameraDetail.getCameraId(),cameraType);
                 if(!checkSpace){
                     sceneProService.lockOrUnLockScenes(new ArrayList<>(),Arrays.asList(scenePlus.getNum()),-2,cameraType.getIsLaser());
                 }

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

@@ -856,7 +856,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
                 this.updateById(scenePro);
 
                 sceneCopyLogService.saveByNum(oldNum,newNum,scenePro.getUserId());
-                Boolean checkSpace = cameraDetailService.checkSpace(cameraDetail, scenePro.getSpace(),cameraType);
+                Boolean checkSpace = cameraDetailService.checkSpace(cameraDetail.getCameraId(),cameraType);
                 if(!checkSpace){
                     this.lockOrUnLockScenes(Arrays.asList(scenePro.getNum()),new ArrayList<>(),-2,cameraType.getIsLaser());
                 }