lyhzzz 2 éve
szülő
commit
6ece3bc76b

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

@@ -288,7 +288,7 @@ public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implement
         if(param.getAbroad() == 1 && param.getPayType() != 2){
             throw new BusinessException(OrderConstant.FAILURE_CODE_8004, OrderConstant.FAILURE_MSG_8004);
         }
-        IncrementType incrementType = incrementTypeService.getById(param.getSkuSn());
+        IncrementType incrementType = incrementTypeService.getById(param.getIncrementType());
         if(incrementType == null){
           throw new BusinessException(OrderConstant.FAILURE_CODE_8004, OrderConstant.FAILURE_MSG_8004);
         }

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

@@ -82,6 +82,8 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     @Autowired
     private IUserIncrementService userIncrementService;
     @Autowired
+    private IIncrementTypeService incrementTypeService;
+    @Autowired
     private IScenePlusExtService scenePlusExtService;
     @Autowired
     private ISceneEditInfoService sceneEditInfoService;
@@ -179,15 +181,24 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     public void lockOrUnLockBySpace(CameraDetail cameraDetail, Long cameraId, Integer payStatus) {
         LambdaQueryWrapper<ScenePro> wrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<ScenePlus> plusWr = new LambdaQueryWrapper<>();
-        Long count = 0L;
+        Long totalSpace = cameraDetail.getTotalSpace();
+        UserIncrement userIncrement = userIncrementService.getByCameraId(cameraId);
+        if(userIncrement!=null){
+            IncrementType incrementType = incrementTypeService.getById(userIncrement.getId());
+            if(incrementType.getCameraCapacity() == -1){
+                totalSpace   = -1L;
+            }else {
+                totalSpace = incrementType.getCameraCapacity() * 1024 * 1024L;
+            }
+        }
+
         if(payStatus == 1){         //解封,判断用户权益,用户会员权益无限容量
-            count = userIncrementService.getValidCountByCameraId(cameraId);
             wrapper.orderByAsc(ScenePro::getCreateTime);
             plusWr.orderByAsc(ScenePlus::getCreateTime);
             wrapper.eq(ScenePro::getPayStatus,-2);
             plusWr.eq(ScenePlus::getPayStatus,-2);
         }else {
-            if (cameraDetail.getTotalSpace() >= cameraDetail.getUsedSpace()) {
+            if (totalSpace >= cameraDetail.getUsedSpace()) {
                 // 总容量大于已使用容量,不予封存
                 return;
             }
@@ -205,17 +216,17 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         List<ScenePro> list = this.list(wrapper);
         List<ScenePlus> plusList = scenePlusService.list(plusWr);
 
-        Long beyondSpace = Math.abs(cameraDetail.getUsedSpace() - cameraDetail.getTotalSpace());
+        Long beyondSpace = Math.abs(cameraDetail.getUsedSpace() - totalSpace);
         Long accumulateSpace = 0L;
         List<Long> lockedIds = new ArrayList<>();
         if(payStatus == 1){
-            Long doSpace = getScenePlusLockedIds(lockedIds, plusList, count, beyondSpace, accumulateSpace);
+            Long doSpace = getScenePlusLockedIds(lockedIds, plusList, totalSpace, beyondSpace, accumulateSpace);
             beyondSpace -= doSpace;
-            getSceneLockedIds(lockedIds,list,count,beyondSpace,accumulateSpace);
+            getSceneLockedIds(lockedIds,list,totalSpace,beyondSpace,accumulateSpace);
         }else {
-            Long doSpace = getSceneLockedIds(lockedIds, list, count, beyondSpace, accumulateSpace);
+            Long doSpace = getSceneLockedIds(lockedIds, list, totalSpace, beyondSpace, accumulateSpace);
             beyondSpace -= doSpace;
-            getScenePlusLockedIds(lockedIds,plusList,count,beyondSpace,accumulateSpace);
+            getScenePlusLockedIds(lockedIds,plusList,totalSpace,beyondSpace,accumulateSpace);
         }
 
         lockOrUnLockScenes(lockedIds,payStatus);
@@ -227,7 +238,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         if (list != null && list.size() > 0){
             for (ScenePro scenePro : list){
                 accumulateSpace += scenePro.getSpace();
-                if (count ==0 && accumulateSpace.compareTo(beyondSpace) > 0){
+                if (count ==-1 && accumulateSpace.compareTo(beyondSpace) > 0){
                     return  accumulateSpace - scenePro.getSpace();
                 }
                 lockedIds.add(scenePro.getId());
@@ -242,7 +253,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             for (ScenePlus scenePlus : list){
                 ScenePlusExt scenePlusExt = byPlusIds.get(scenePlus.getId());
                 accumulateSpace += scenePlusExt.getSpace();
-                if (count ==0 && accumulateSpace.compareTo(beyondSpace) > 0){
+                if (count ==-1 && accumulateSpace.compareTo(beyondSpace) > 0){
                     return  accumulateSpace - scenePlusExt.getSpace();
                 }
                 lockedIds.add(scenePlus.getId());

+ 10 - 1
src/main/java/com/fdkankan/ucenter/vo/request/DownNumParam.java

@@ -1,6 +1,7 @@
 package com.fdkankan.ucenter.vo.request;
 
 import lombok.Data;
+import org.apache.commons.lang3.StringUtils;
 
 @Data
 public class DownNumParam {
@@ -13,5 +14,13 @@ public class DownNumParam {
     private String userName;
 
     private Long  incrementId;
-    private Integer incrementType = 1;
+
+    private Integer incrementType ;
+
+    public Integer getIncrementType() {
+        if(incrementType == null && StringUtils.isNotBlank(skuSn) && StringUtils.isNumeric(skuSn)){
+            return  Integer.valueOf(skuSn);
+        }
+        return 1;
+    }
 }