浏览代码

容量改造

dsx 2 年之前
父节点
当前提交
b78abedb19

+ 2 - 0
src/main/java/com/fdkankan/contro/mq/service/ICommonService.java

@@ -28,4 +28,6 @@ public interface ICommonService {
     public void sendEmail(String num);
 
     String getOssOrignPath(String path);
+
+    int getPayStatus(Long cameraId, Long space);
 }

+ 1 - 42
src/main/java/com/fdkankan/contro/mq/service/impl/BuildSceneServiceImpl.java

@@ -251,7 +251,7 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
             scenePlus.setPayStatus(PayStatus.PAY.code());
             //如果相机容量不足,需要把场景的paystatus改为容量不足状态
             if (cameraType != 14) {
-                scenePlus.setPayStatus(this.getPayStatus(scenePlus.getCameraId(), space));
+                scenePlus.setPayStatus(commonService.getPayStatus(scenePlus.getCameraId(), space));
             }
             scenePlus.setUpdateTime(new Date());
             scenePlus.setSceneStatus(SceneStatus.NO_DISPLAY.code());
@@ -846,47 +846,6 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
         scenePlusExtService.updateById(scenePlusExt);
     }
 
-    private int getPayStatus(Long cameraId, Long space){
-
-        //查询权益统计容量的方式
-        String unit = SpaceType.GB.code();
-        CameraDetail cameraDetail = cameraDetailService.getByCameraId(cameraId);
-        if(StrUtil.isNotEmpty(cameraDetail.getUnit())){
-            unit = cameraDetail.getUnit();
-        }
-        Long limit = cameraDetail.getTotalSpace();
-
-        UserIncrement userIncrement = userIncrementService.getByCameraId(cameraId);
-        if(Objects.nonNull(userIncrement)){
-            IncrementType incrementType = incrementTypeService.getById(userIncrement.getIncrementTypeId());
-            switch (SpaceType.get(unit)){
-                case GB:
-                    limit = incrementType.getCameraCapacity();
-                    if(limit != -1){
-                        limit = limit * 1024 * 1024 * 1024;
-                    }
-                    break;
-                case SP:
-                    limit = incrementType.getCameraSpace();
-                    break;
-            }
-        }
-        if(SpaceType.SP.code().equals(unit)){//如果按空间方式统计,则space置为1
-            space = 1L;
-        }
-
-        //更新相机使用用量
-        cameraDetail = cameraDetailService.updateCameraDetailByCameraIdAndSpace(cameraId, space);
-        if(limit == -1){
-            return PayStatus.PAY.code();
-        }
-        Long usedSpace = cameraDetail.getUsedSpace();
-        if(usedSpace < limit){
-            return PayStatus.NOT_PAY.code();
-        }
-        return PayStatus.PAY.code();
-    }
-
     private Object[] updateEditInfo(ScenePlus scenePlus){
         SceneEditInfo sceneEditInfo = sceneEditInfoService.getByScenePlusId(scenePlus.getId());
         SceneEditControls sceneEditControls = null;

+ 1 - 22
src/main/java/com/fdkankan/contro/mq/service/impl/BuildV3SceneServiceImpl.java

@@ -232,7 +232,7 @@ public class BuildV3SceneServiceImpl implements IBuildSceneService {
             scenePro.setPayStatus(PayStatus.PAY.code());
             //如果相机容量不足,需要把场景的paystatus改为容量不足状态
             if (cameraType != 14) {
-                scenePro.setPayStatus(this.getPayStatus(scenePro.getCameraId(), space));
+                scenePro.setPayStatus(commonService.getPayStatus(scenePro.getCameraId(), space));
                 sceneProService.update(
                         new LambdaUpdateWrapper<ScenePro>()
                                 .set(ScenePro::getPayStatus, scenePro.getPayStatus())
@@ -590,27 +590,6 @@ public class BuildV3SceneServiceImpl implements IBuildSceneService {
        return sceneProService.getByNum(num);
     }
 
-    private int getPayStatus(Long cameraId, Long space) throws Exception{
-        //更新相机使用用量
-        CameraDetail cameraDetail = cameraDetailService.updateCameraDetailByCameraIdAndSpace(cameraId, space);
-        Long totalSpace = cameraDetail.getTotalSpace();
-
-        UserIncrement userIncrement = userIncrementService.getByCameraId(cameraId);
-        if(!ObjectUtils.isEmpty(userIncrement) && userIncrement.getIsExpired().equals(ExpiredStatus.NOT_EXPIRED.code())){
-            IncrementType type = incrementTypeService.getById(userIncrement.getIncrementTypeId());
-            if(type != null){
-                Integer cameraCapacity = type.getCameraCapacity();
-                if(cameraCapacity == -1){           //无限容量权益
-                    return PayStatus.PAY.code();
-                }else {
-                    totalSpace = cameraCapacity *1024 * 1024 * 1024L;     //权益设置容量
-                }
-            }
-        }
-
-        return totalSpace.compareTo(cameraDetail.getUsedSpace()) == -1 ? PayStatus.NO_CAPACITY.code() : PayStatus.PAY.code();
-    }
-
     public void uploadHouseTypeJson(String num, String floorPlanCardFilePath) {
         if (!new File(floorPlanCardFilePath).exists()) {
             log.error("floorplan_cad.json 文件不存在,文件路径:{}", floorPlanCardFilePath);

+ 50 - 0
src/main/java/com/fdkankan/contro/mq/service/impl/CommonServiceImpl.java

@@ -5,6 +5,8 @@ import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.common.constant.PayStatus;
+import com.fdkankan.common.constant.SpaceType;
 import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.contro.entity.*;
 import com.fdkankan.contro.factory.UserEditData.UserEditDataHandler;
@@ -55,6 +57,12 @@ public class CommonServiceImpl implements ICommonService {
     private IUserService userService;
     @Autowired
     private ISceneProService sceneProService;
+    @Autowired
+    private ICameraDetailService cameraDetailService;
+    @Autowired
+    private IUserIncrementService userIncrementService;
+    @Autowired
+    private IIncrementTypeService incrementTypeService;
 
 
     @Override
@@ -236,4 +244,46 @@ public class CommonServiceImpl implements ICommonService {
         }
         return ossPath;
     }
+
+    @Override
+    public int getPayStatus(Long cameraId, Long space){
+
+        //查询权益统计容量的方式
+        String unit = SpaceType.GB.code();
+        CameraDetail cameraDetail = cameraDetailService.getByCameraId(cameraId);
+        if(StrUtil.isNotEmpty(cameraDetail.getUnit())){
+            unit = cameraDetail.getUnit();
+        }
+        Long limit = cameraDetail.getTotalSpace();
+
+        UserIncrement userIncrement = userIncrementService.getByCameraId(cameraId);
+        if(Objects.nonNull(userIncrement)){
+            IncrementType incrementType = incrementTypeService.getById(userIncrement.getIncrementTypeId());
+            switch (SpaceType.get(unit)){
+                case GB:
+                    limit = incrementType.getCameraCapacity();
+                    if(limit != -1){
+                        limit = limit * 1024 * 1024 * 1024;
+                    }
+                    break;
+                case SP:
+                    limit = incrementType.getCameraSpace();
+                    break;
+            }
+        }
+        if(SpaceType.SP.code().equals(unit)){//如果按空间方式统计,则space置为1
+            space = 1L;
+        }
+
+        //更新相机使用用量
+        cameraDetail = cameraDetailService.updateCameraDetailByCameraIdAndSpace(cameraId, space);
+        if(limit == -1){
+            return PayStatus.PAY.code();
+        }
+        Long usedSpace = cameraDetail.getUsedSpace();
+        if(usedSpace < limit){
+            return PayStatus.NOT_PAY.code();
+        }
+        return PayStatus.PAY.code();
+    }
 }