Browse Source

文保vrv1.5.0需求,文保vr全景场景默认不封村

dengsixing 5 months ago
parent
commit
99a2e2b984

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

@@ -202,7 +202,7 @@ public class BuildIntermitSceneServiceImpl implements IBuildSceneService {
             }
 
             //如果相机容量不足,需要把场景的paystatus改为容量不足状态
-            scenePlus.setPayStatus(commonService.getPayStatus(scenePlus.getCameraId(), space));
+            scenePlus.setPayStatus(commonService.getPayStatus(scenePlus.getCameraId(), space, fdageData));
 
             this.uploadStatusJson(scenePlus, scenePlusExt);
 

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

@@ -283,7 +283,7 @@ public class BuildLiguangServiceImpl implements IBuildSceneService {
 
             //更新场景主表
             //如果相机容量不足,需要把场景的paystatus改为容量不足状态
-            scenePlus.setPayStatus(commonService.getPayStatus(scenePlus.getCameraId(), space));
+            scenePlus.setPayStatus(commonService.getPayStatus(scenePlus.getCameraId(), space, null));
             //统计原始资源大小
             scenePlusExt.setOrigSpace(FileUtil.size(new File(path.concat(File.separator).concat("capture"))));
 

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

@@ -330,9 +330,8 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
             SceneEditInfoExt sceneEditInfoExt = (SceneEditInfoExt)editInfoArr[1];
             SceneEditControls sceneEditControls = (SceneEditControls)editInfoArr[2];
 
-            //更新场景主表
             //如果相机容量不足,需要把场景的paystatus改为容量不足状态
-            scenePlus.setPayStatus(commonService.getPayStatus(scenePlus.getCameraId(), space));
+            scenePlus.setPayStatus(commonService.getPayStatus(scenePlus.getCameraId(), space, fdageData));
             //统计原始资源大小
             scenePlusExt.setOrigSpace(FileUtil.size(new File(path.concat(File.separator).concat("capture"))));
 

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

@@ -238,7 +238,7 @@ public class BuildV3SceneServiceImpl implements IBuildSceneService {
 
             scenePro.setPayStatus(PayStatus.PAY.code());
             //如果相机容量不足,需要把场景的paystatus改为容量不足状态
-            scenePro.setPayStatus(commonService.getPayStatus(scenePro.getCameraId(), space));
+            scenePro.setPayStatus(commonService.getPayStatus(scenePro.getCameraId(), space, fdageData));
             sceneProService.update(
                     new LambdaUpdateWrapper<ScenePro>()
                             .set(ScenePro::getPayStatus, scenePro.getPayStatus())

+ 4 - 1
src/main/java/com/fdkankan/contro/service/ICommonService.java

@@ -34,7 +34,7 @@ public interface ICommonService {
 
     String getOssOrignPath(String path);
 
-    int getPayStatus(Long cameraId, Long space);
+    int getPayStatus(Long cameraId, Long space, JSONObject dataFdageJson);
 
     void uploadStatusJson(String num, Integer sceneStatus, String webSite, String thumb, Integer payStatus, String uploadPath);
 
@@ -58,4 +58,7 @@ public interface ICommonService {
     JSONObject getFdageData(String path);
 
     Map<String, String> getUploadFiles(ScenePlus scenePlus,String path,Integer cameraType,JSONObject fdageData) throws Exception;
+
+    boolean checkIsSpVr(JSONObject dataFdageJson, CameraDetail cameraDetail);
+
 }

+ 21 - 3
src/main/java/com/fdkankan/contro/service/impl/CommonServiceImpl.java

@@ -331,7 +331,7 @@ public class CommonServiceImpl implements ICommonService {
     }
 
     @Override
-    public int getPayStatus(Long cameraId, Long space){
+    public int getPayStatus(Long cameraId, Long space, JSONObject dataFdageJson){
         //查询权益统计容量的方式
         String unit = SpaceType.GB.code();
         CameraDetail cameraDetail = cameraDetailService.getByCameraId(cameraId);
@@ -347,8 +347,10 @@ public class CommonServiceImpl implements ICommonService {
         //更新相机使用用量,非激光相机或者是空间个数计算方式的,需要叠加相机容量
         cameraDetailService.updateCameraDetailByCameraIdAndSpace(cameraId, space);
 
-        //无限容量或者激光相机,直接返回已支付
-        if(limit == -1 || ("gn".equals(env) && CollUtil.isNotEmpty(laserCamTypeList) && laserCamTypeList.contains(cameraDetail.getType()))){
+        //无限容量或者激光相机或者文保vr,直接返回已支付
+        if(limit == -1
+                || ("gn".equals(env) && CollUtil.isNotEmpty(laserCamTypeList) && laserCamTypeList.contains(cameraDetail.getType()))
+                || this.checkIsSpVr(dataFdageJson, cameraDetail)){
             return PayStatus.PAY.code();
         }
 
@@ -787,4 +789,20 @@ public class CommonServiceImpl implements ICommonService {
         return map;
 
     }
+
+    @Override
+    public boolean checkIsSpVr(JSONObject dataFdageJson, CameraDetail cameraDetail) {
+        if(Objects.isNull(cameraDetail)
+                || Objects.isNull(cameraDetail.getCompanyId())
+                || Objects.isNull(dataFdageJson)
+                || Objects.isNull(dataFdageJson.getInteger("location"))){
+            return false;
+        }
+        Integer location = dataFdageJson.getInteger("location");
+        Long companyId = cameraDetail.getCompanyId();
+        if(companyId == 26 && location == 7){
+            return true;
+        }
+        return false;
+    }
 }

+ 1 - 1
src/main/java/com/fdkankan/contro/service/impl/InnerServiceImpl.java

@@ -141,7 +141,7 @@ public class InnerServiceImpl implements IInnerService {
 
         //更新场景主表
         //如果相机容量不足,需要把场景的paystatus改为容量不足状态
-        scenePlus.setPayStatus(commonService.getPayStatus(scenePlus.getCameraId(), space));
+        scenePlus.setPayStatus(commonService.getPayStatus(scenePlus.getCameraId(), space, fdageData));
         //统计原始资源大小
         scenePlusExt.setOrigSpace(FileUtil.size(new File(path.concat(File.separator).concat("capture"))));
 

+ 2 - 1
src/main/java/com/fdkankan/contro/service/impl/SceneFileBuildServiceImpl.java

@@ -382,7 +382,8 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
         }
 
         //如果是相机计算容量的模式是场景个数模式,则需要拦截计算
-        if(rebuild == CommonStatus.NO.code()){//新场景需要校验容量是否超出限制
+        //文保系统v1.5.0增加需求,文保vr场景默认不封存(条件companyI=26&&location=7)
+        if(rebuild == CommonStatus.NO.code() && !commonService.checkIsSpVr(jsonObject, cameraDetail)){//新场景需要校验容量是否超出限制
             boolean exceedSpace = exceedSpaceSceneService.cehckExceedSpace(sceneNum, cameraDetail, cameraName, fileId, unicode);
             if(exceedSpace){
                 ScenePlusVO scenePlusVO = new ScenePlusVO();