|
@@ -10,12 +10,15 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.fdkankan.common.constant.*;
|
|
|
+import com.fdkankan.common.exception.BusinessException;
|
|
|
+import com.fdkankan.common.response.ResultData;
|
|
|
import com.fdkankan.common.util.*;
|
|
|
-import com.fdkankan.platform.api.feign.PlatformGoodsClient;
|
|
|
-import com.fdkankan.platform.api.feign.PlatformUserClient;
|
|
|
+import com.fdkankan.fyun.oss.UploadToOssUtil;
|
|
|
import com.fdkankan.platform.api.dto.Camera;
|
|
|
import com.fdkankan.platform.api.dto.CameraDetail;
|
|
|
import com.fdkankan.platform.api.dto.User;
|
|
|
+import com.fdkankan.platform.api.feign.PlatformGoodsClient;
|
|
|
+import com.fdkankan.platform.api.feign.PlatformUserClient;
|
|
|
import com.fdkankan.redis.constant.RedisKey;
|
|
|
import com.fdkankan.redis.constant.RedisLockKey;
|
|
|
import com.fdkankan.redis.util.RedisLockUtil;
|
|
@@ -23,10 +26,6 @@ import com.fdkankan.scene.entity.*;
|
|
|
import com.fdkankan.scene.mapper.ISceneProMapper;
|
|
|
import com.fdkankan.scene.service.*;
|
|
|
import com.fdkankan.scene.vo.*;
|
|
|
-import com.fdkankan.common.constant.ErrorCode;
|
|
|
-import com.fdkankan.common.exception.BusinessException;
|
|
|
-import com.fdkankan.common.response.ResultData;
|
|
|
-import com.fdkankan.fyun.oss.UploadToOssUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import net.coobird.thumbnailator.Thumbnails;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
@@ -2227,6 +2226,23 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
|
|
|
return ResultData.ok();
|
|
|
}
|
|
|
|
|
|
+ public void lockBeyondSpaceScenes(Long usedSpace, Long totalSpace, Long cameraId) throws Exception{
|
|
|
+ Long beyondSpace = usedSpace - totalSpace;
|
|
|
+ List<SceneVO> scenes = this.findScenesByUserIdAndSceneScheme(cameraId, "create_time", PayStatus.PAY.code());
|
|
|
+ Long accumulateSpace = 0L;
|
|
|
+ List<Long> lockedIds = new ArrayList<>();
|
|
|
+ if (scenes != null && scenes.size() > 0){
|
|
|
+ for (SceneVO responseScene : scenes){
|
|
|
+ accumulateSpace = accumulateSpace + responseScene.getSpace();
|
|
|
+ if (accumulateSpace.compareTo(beyondSpace) == 1){
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ lockedIds.add(responseScene.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ lockOrUnlockScenes(lockedIds,true);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void unlockBeyondSpaceScenes(Long newSpace, Long cameraId) throws Exception{
|
|
|
List<SceneVO> scenes = this.findScenesByUserIdAndSceneScheme(cameraId, "create_time", PayStatus.NO_CAPACITY.code());
|
|
@@ -2251,21 +2267,22 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
|
|
|
|
|
|
}
|
|
|
}
|
|
|
- unlockScenes(unlockedIds);
|
|
|
+ lockOrUnlockScenes(unlockedIds,false);
|
|
|
}
|
|
|
|
|
|
- public void unlockScenes(List<Long> lockedIds) {
|
|
|
+ public void lockOrUnlockScenes(List<Long> lockedIds,Boolean lock) {
|
|
|
if (lockedIds == null || lockedIds.size() == 0){
|
|
|
return;
|
|
|
}
|
|
|
+ Integer payStatus = lock ? -2 : 1;
|
|
|
for (Long id : lockedIds){
|
|
|
ScenePro scenePro = sceneProService.getById(id);
|
|
|
- scenePro.setPayStatus(1);
|
|
|
+ scenePro.setPayStatus(payStatus);
|
|
|
sceneProService.updateById(scenePro);
|
|
|
|
|
|
try{
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
- map.put("payStatus", 1);
|
|
|
+ map.put("payStatus", payStatus);
|
|
|
FileUtils.writeJsonFile(ConstantFilePath.SCENE_PATH + "data/data" + scenePro.getNum() + "/scene.json", map);
|
|
|
com.alibaba.fastjson.JSONObject statusJson = new com.alibaba.fastjson.JSONObject();
|
|
|
|