lyhzzz 1 年之前
父节点
当前提交
d9d25ff978

+ 2 - 0
src/main/java/com/fdkankan/agent/entity/CameraDetail.java

@@ -151,4 +151,6 @@ public class CameraDetail implements Serializable {
 
     @TableField("agent_id")
     private Integer agentId;
+    @TableField("unit")
+    private String unit;
 }

+ 6 - 0
src/main/java/com/fdkankan/agent/entity/IncrementType.java

@@ -51,6 +51,12 @@ public class IncrementType implements Serializable {
     private BigDecimal downloadPrice;
 
     /**
+     * 相机容量单位
+     */
+    @TableField("camera_space")
+    private Integer cameraSpace;
+
+    /**
      * 相机容量 单位 G
      */
     @TableField("camera_capacity")

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

@@ -20,4 +20,6 @@ public interface ICameraDetailService extends IService<CameraDetail> {
     CameraDetail getByCameraId(Long cameraId);
 
     List<CameraDetail> getByAgentId(Integer agentId);
+
+    Boolean checkSpace(CameraDetail detailEntity, Long needSpace);
 }

+ 43 - 0
src/main/java/com/fdkankan/agent/service/impl/CameraDetailServiceImpl.java

@@ -2,13 +2,18 @@ package com.fdkankan.agent.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fdkankan.agent.entity.CameraDetail;
+import com.fdkankan.agent.entity.IncrementType;
 import com.fdkankan.agent.entity.User;
+import com.fdkankan.agent.entity.UserIncrement;
 import com.fdkankan.agent.mapper.ICameraDetailMapper;
 import com.fdkankan.agent.mapper.IUserMapper;
 import com.fdkankan.agent.service.ICameraDetailService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.agent.service.IIncrementTypeService;
+import com.fdkankan.agent.service.IUserIncrementService;
 import com.fdkankan.agent.service.IUserService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -28,6 +33,10 @@ public class CameraDetailServiceImpl extends ServiceImpl<ICameraDetailMapper, Ca
 
     @Autowired
     IUserService userService;
+    @Autowired
+    IIncrementTypeService incrementTypeService;
+    @Autowired
+    IUserIncrementService userIncrementService;
 
     @Override
     public List<CameraDetail> getByUserName(Integer agentId,String userName) {
@@ -63,4 +72,38 @@ public class CameraDetailServiceImpl extends ServiceImpl<ICameraDetailMapper, Ca
         wrapper.eq(CameraDetail::getAgentId,agentId);
         return this.list(wrapper);
     }
+
+    @Value("${spring.profiles.active}")
+    private String uploadType;
+    @Override
+    public Boolean checkSpace(CameraDetail detailEntity, Long space) {
+        if(!uploadType.contains("eur") && (detailEntity.getType() == 10 || detailEntity.getType() == 11)){
+            return true;
+        }
+        UserIncrement userIncrement = userIncrementService.getByCameraId(detailEntity.getCameraId());
+        if(userIncrement == null || userIncrement.getIsExpired() == 1){
+            return checkSpace(detailEntity,null,space);
+        }
+        IncrementType incrementType = incrementTypeService.getById(userIncrement.getIncrementTypeId());
+        return checkSpace(detailEntity,incrementType,space);
+    }
+
+    public Boolean checkSpace(CameraDetail detailEntity, IncrementType incrementType, Long space) {
+        Long totalSpace = 0L;
+        if("SP".equals(detailEntity.getUnit())){
+            if(incrementType!=null && incrementType.getCameraSpace() == -1){
+                return true;
+            }
+            totalSpace = incrementType != null ?incrementType.getCameraSpace() : detailEntity.getTotalSpace();
+            return detailEntity.getUsedSpace() + 1 <= 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() + space <= totalSpace ;
+        }
+        return false;
+    }
 }

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

@@ -113,9 +113,29 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             throw new BusinessException(ResultCode.CAMERA_EMPTY);
         }
 
+//        Long needSpace = 0L;
+//        if(scenePro != null){
+//            needSpace = scenePro.getSpace();
+//        }
+//        if(scenePlus != null){
+//            ScenePlusExt scenePlusExt = scenePlusExtService.getByPlusId(scenePlus.getId());
+//            if(scenePlusExt != null && scenePlusExt.getSpace() != null){
+//                needSpace = scenePlusExt.getSpace();
+//            }
+//        }
+//        Boolean checkSpace = cameraDetailService.checkSpace(detailEntity, needSpace);
+//
+//        if(!checkSpace){
+//            throw new BusinessException(ResultCode.CAMERA_SPACE_ERROR);
+//        }
+
         HashMap<String, Object> param = new HashMap<>();
         param.put("num",sceneNum);
-        fdKKClient.copyScene(param,"m_a_n_a_g_e");
+        JSONObject jsonObject = fdKKClient.copyScene(param, "m_a_n_a_g_e");
+        Integer code = jsonObject.getInteger("code");
+        if(code != 0){
+            throw new BusinessException(jsonObject.getInteger("code"),jsonObject.getString("message"));
+        }
 
     }