123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- package com.fdkankan.contro.service.impl;
- import cn.hutool.core.util.StrUtil;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.fdkankan.common.constant.*;
- import com.fdkankan.common.exception.BusinessException;
- import com.fdkankan.contro.entity.*;
- import com.fdkankan.contro.mapper.IExceedSpaceSceneMapper;
- import com.fdkankan.contro.service.*;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.fdkankan.fyun.face.FYunFileServiceInterface;
- import com.fdkankan.model.constants.ConstantFilePath;
- import com.fdkankan.model.constants.UploadFilePath;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.io.IOException;
- import java.util.Objects;
- /**
- * <p>
- * 超出容量场景码表 服务实现类
- * </p>
- *
- * @author
- * @since 2023-06-29
- */
- @Service
- public class ExceedSpaceSceneServiceImpl extends ServiceImpl<IExceedSpaceSceneMapper, ExceedSpaceScene> implements IExceedSpaceSceneService {
- @Autowired
- private IScenePlusService scenePlusService;
- @Autowired
- private ISceneProService sceneProService;
- @Autowired
- private IUserIncrementService userIncrementService;
- @Autowired
- private IIncrementTypeService incrementTypeService;
- @Autowired
- private ICommonService commonService;
- @Autowired
- private FYunFileServiceInterface fYunFileService;
- @Autowired
- private ISceneCleanOrigService sceneCleanOrigService;
- @Override
- public boolean cehckExceedSpace(String num, CameraDetail cameraDetail, String snCode, String fileId, String unicode) {
- if(!cameraDetail.getUnit().equals(SpaceType.SP.code())){
- return false;
- }
- boolean exceedSpace = this.isExceedSpace(num, cameraDetail);
- if(exceedSpace){
- //写入超出容量场景表
- ExceedSpaceScene scene = new ExceedSpaceScene();
- scene.setNum(num);
- scene.setUserId(cameraDetail.getUserId());
- scene.setCameraId(cameraDetail.getCameraId());
- scene.setFileId(fileId);
- scene.setUnicode(unicode);
- this.save(scene);
- // TODO: 2023/7/11 由于八目相机有bug,第一次请求返回成功后,还是会请求第二次,第二次请求检测data.fdage不存在会导致请求失败,所以这个版本先不删除原始资源
- //删除原始资源
- // if(fileId.length() > 1 && unicode.length() > 1){
- // String homePath = ConstantFilePath.OSS_PREFIX.concat(snCode).concat("/").concat(fileId).concat("/").concat(unicode);
- // fYunFileService.deleteFolder(homePath);
- // }
- //记录删除原始资源记录
- SceneCleanOrig sceneCleanOrig = new SceneCleanOrig();
- sceneCleanOrig.setNum(num);
- sceneCleanOrig.setType(4);
- sceneCleanOrig.setState(CommonSuccessStatus.SUCCESS.code());
- sceneCleanOrigService.save(sceneCleanOrig);
- //上传计算失败状态文件
- //上传app状态文件
- commonService.uploadStatusJson(num,SceneStatus.FAILD.code(),
- null, null, PayStatus.NOT_PAY.code(),
- String.format(UploadFilePath.DATA_VIEW_PATH, num));
- }
- return exceedSpace;
- }
- @Override
- public boolean isExceedSpace(String num, CameraDetail cameraDetail) {
- //查询权益统计容量的方式
- Long limit = commonService.getSpaceLimit(cameraDetail);
- if(limit == -1){
- return false;
- }
- // TODO: 2023/6/30 现阶段只有按个数统计容量的方式再需要做上传拦截,所以这里暂时只做了统计个数统计
- //统计场景个数
- long v4Count = scenePlusService.count(
- new LambdaQueryWrapper<ScenePlus>()
- .eq(ScenePlus::getCameraId, cameraDetail.getCameraId())
- .in(ScenePlus::getSceneStatus, SceneStatus.wait.code(), SceneStatus.SUCCESS.code(), SceneStatus.NO_DISPLAY.code()));
- long V3count = sceneProService.count(new LambdaQueryWrapper<ScenePro>()
- .eq(ScenePro::getCameraId, cameraDetail.getCameraId())
- .in(ScenePro::getStatus, SceneStatus.wait.code(), SceneStatus.SUCCESS.code(), SceneStatus.NO_DISPLAY.code())
- .eq(ScenePro::getIsUpgrade, CommonStatus.NO.code()));
- if(v4Count + V3count < limit){
- return false;
- }
- return true;
- }
- @Override
- public ExceedSpaceScene getByFileIdAndUnicode(long cameraId, String fileId, String unicode) {
- return this.getOne(new LambdaQueryWrapper<ExceedSpaceScene>()
- .eq(ExceedSpaceScene::getCameraId, cameraId)
- .eq(ExceedSpaceScene::getFileId, fileId)
- .eq(ExceedSpaceScene::getUnicode, unicode));
- }
- @Override
- public void repeal(long cameraId, String fileId, String unicode) throws IOException {
- ExceedSpaceScene scene = this.getByFileIdAndUnicode(cameraId, fileId, unicode);
- if(Objects.isNull(scene)){
- return;
- }
- this.removeById(scene);
- //删除status.json
- String statusJsonPath = String.format(UploadFilePath.DATA_VIEW_PATH, scene.getNum()).concat("status.json");
- fYunFileService.deleteFile(statusJsonPath);
- }
- }
|