lyhzzz 2 سال پیش
والد
کامیت
fd22aa428c

+ 59 - 3
src/main/java/com/fdkankan/manage/entity/IncrementType.java

@@ -35,6 +35,9 @@ public class IncrementType implements Serializable {
     @TableField("name")
     private String name;
 
+    /**
+     * member会员,freeMember免费会员
+     */
     @TableField("type")
     private String type;
 
@@ -57,6 +60,12 @@ public class IncrementType implements Serializable {
     private Integer cameraCapacity;
 
     /**
+     * 相机容量单位
+     */
+    @TableField("camera_space")
+    private Integer cameraSpace;
+
+    /**
      * 购买之后,有效期天数,-1代表无限制
      */
     @TableField("valid_time")
@@ -80,18 +89,65 @@ public class IncrementType implements Serializable {
     @TableField("symbol")
     private String symbol;
 
+    /**
+     * 自定义logo
+     */
+    @TableField("custom_logo")
+    private Boolean customLogo;
+
+    /**
+     * 自定义热点样式
+     */
+    @TableField("custom_style")
+    private Boolean customStyle;
+
+    /**
+     * 空间贴图
+     */
+    @TableField("custom_image")
+    private Boolean customImage;
+
+    /**
+     * 三维模型
+     */
+    @TableField("custom_model")
+    private Boolean customModel;
+
+    /**
+     * 场景美化调节
+     */
+    @TableField("custom_scene")
+    private Boolean customScene;
+
+    /**
+     * 场景复制
+     */
+    @TableField("custom_copy")
+    private Boolean customCopy;
+
+    /**
+     * 场景计算
+     */
+    @TableField("custom_modeling")
+    private Integer customModeling;
+
+    /**
+     * 场景下载
+     */
+    @TableField("custom_down")
+    private Integer customDown;
+
     @TableField("rec_status")
     @TableLogic(value = "A",delval = "I")
     private String recStatus;
 
     @TableField("create_time")
-    private String createTime;
+    private Date createTime;
 
     /**
      * 权益价格
      */
     @TableField("update_time")
-    private String updateTime;
-
+    private Date updateTime;
 
 }

+ 10 - 0
src/main/java/com/fdkankan/manage/service/ICameraDetailService.java

@@ -2,6 +2,7 @@ package com.fdkankan.manage.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.manage.entity.CameraDetail;
+import com.fdkankan.manage.entity.IncrementType;
 
 import java.util.HashMap;
 import java.util.List;
@@ -41,4 +42,13 @@ public interface ICameraDetailService extends IService<CameraDetail> {
     List<CameraDetail> getByUserId(Long id);
 
     void addUsedSpace(Long cameraId,Long space);
+
+    Long getTotalSpaceByCameraId(Long cameraId);
+    Long getTotalSpaceByCameraId(CameraDetail detailEntity);
+
+    Boolean checkSpace(CameraDetail detailEntity, IncrementType incrementType, Long space);
+
+    Boolean checkSpace(CameraDetail detailEntity, Long space);
+
+    Boolean checkSpace(Long cameraId, Long space);
 }

+ 80 - 3
src/main/java/com/fdkankan/manage/service/impl/CameraDetailServiceImpl.java

@@ -7,10 +7,8 @@ import com.fdkankan.common.constant.Constant;
 import com.fdkankan.manage.common.CacheUtil;
 import com.fdkankan.manage.common.PageInfo;
 import com.fdkankan.manage.common.ResultCode;
+import com.fdkankan.manage.entity.*;
 import com.fdkankan.manage.exception.BusinessException;
-import com.fdkankan.manage.entity.Camera;
-import com.fdkankan.manage.entity.CameraDetail;
-import com.fdkankan.manage.entity.User;
 import com.fdkankan.manage.httpClient.service.LaserService;
 import com.fdkankan.manage.mapper.ICameraDetailMapper;
 import com.fdkankan.manage.service.*;
@@ -52,6 +50,10 @@ public class CameraDetailServiceImpl extends ServiceImpl<ICameraDetailMapper, Ca
     IUserService userService;
     @Autowired
     LaserService laserService;
+    @Autowired
+    IUserIncrementService userIncrementService;
+    @Autowired
+    IIncrementTypeService incrementTypeService;
 
 
     @Override
@@ -232,4 +234,79 @@ public class CameraDetailServiceImpl extends ServiceImpl<ICameraDetailMapper, Ca
         }
         this.updateById(cameraDetail);
     }
+
+
+    @Override
+    public Long getTotalSpaceByCameraId(Long cameraId) {
+        CameraDetail cameraDetail = this.getByCameraId(cameraId);
+        if(cameraDetail == null){
+            return 0L;
+        }
+        return getTotalSpaceByCameraId(cameraDetail);
+    }
+    @Override
+    public Long getTotalSpaceByCameraId(CameraDetail cameraDetail) {
+        UserIncrement userIncrement = userIncrementService.getByCameraId(cameraDetail.getCameraId());
+        if(userIncrement != null && userIncrement.getIsExpired() == 0){
+            IncrementType incrementType = incrementTypeService.getById(userIncrement.getIncrementTypeId());
+            return getTotalSpace(cameraDetail,incrementType);
+        }
+        return getTotalSpace(cameraDetail,null);
+    }
+
+    @Override
+    public Boolean checkSpace(Long cameraId, Long space) {
+        CameraDetail cameraDetail = this.getByCameraId(cameraId);
+        if(cameraDetail == null){
+            return false;
+        }
+        return checkSpace(cameraDetail,space);
+    }
+
+    @Override
+    public Boolean checkSpace(CameraDetail detailEntity, Long space) {
+        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);
+    }
+
+    @Override
+    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() : detailEntity.getTotalSpace();
+            return detailEntity.getUsedSpace() + space <= totalSpace * 1024 * 1024 * 1024L;
+        }
+        return false;
+    }
+
+    public Long getTotalSpace(CameraDetail detailEntity, IncrementType incrementType) {
+        if("SP".equals(detailEntity.getUnit())){
+            if(incrementType!=null && incrementType.getCameraSpace() == -1){
+                return -1L;
+            }
+            return incrementType != null ?incrementType.getCameraSpace() : detailEntity.getTotalSpace();
+        }
+        if("GB".equals(detailEntity.getUnit())){
+            if(incrementType!=null && incrementType.getCameraCapacity() == -1){
+                return -1L;
+            }
+            return incrementType != null ?incrementType.getCameraCapacity() : detailEntity.getTotalSpace();
+        }
+        return 0L;
+    }
+
 }

+ 5 - 15
src/main/java/com/fdkankan/manage/service/impl/SceneProServiceImpl.java

@@ -242,9 +242,10 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         if(status == 0){
             throw new BusinessException(SceneConstant.FAILURE_CODE_5037, SceneConstant.FAILURE_MSG_5037);
         }
-
+        //todo  sapce init
         Long sceneCameraId = scenePro == null ? scenePlus.getCameraId() : scenePro.getCameraId();
-        Long space = scenePro == null ? 0 :scenePro.getSpace();
+        Long space = null;
+        space = scenePro == null ? 0 :scenePro.getSpace();
         String dataSource = scenePro == null ? null :scenePro.getDataSource();
         if(scenePlus !=null){
             ScenePlusExt scenePlusExt = scenePlusExtService.getByPlusId(scenePlus.getId());
@@ -254,20 +255,9 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         space = space == null ? 0 :space;
         Long newUseSpace = space + cameraDetail.getUsedSpace();
 
-        Long totalSpace = cameraDetail.getTotalSpace();
-        UserIncrement userIncrement = userIncrementService.getByCameraId(camera.getId());
-        if(userIncrement!=null && userIncrement.getIsExpired() == 0){
-            IncrementType incrementType = incrementTypeService.getById(userIncrement.getIncrementTypeId());
-            if(incrementType!=null){
-                if(incrementType.getCameraCapacity() == -1){
-                    totalSpace   = -1L;
-                }else {
-                    totalSpace = incrementType.getCameraCapacity() * 1024 *1024 * 1024L;
-                }
-            }
-        }
+        Boolean checkSpace = cameraDetailService.checkSpace(cameraDetail, space);
         //深时场景无限容量
-        if(cameraDetail.getType() != 11 && cameraDetail.getType() != 10 && totalSpace !=-1 &&  newUseSpace  > totalSpace){
+        if(cameraDetail.getType() != 11 && cameraDetail.getType() != 10 && !checkSpace){
             throw new BusinessException(ResultCode.CAMERA_SPACE_ERROR);
         }