package com.fdkankan.contro.service.impl; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fdkankan.common.constant.ErrorCode; import com.fdkankan.common.constant.SceneStatus; import com.fdkankan.common.response.ResultData; import com.fdkankan.contro.entity.ScenePro; import com.fdkankan.contro.entity.SceneProExt; import com.fdkankan.contro.entity.SceneProPO; import com.fdkankan.contro.mapper.ISceneProMapper; import com.fdkankan.contro.service.ICameraDetailService; import com.fdkankan.contro.service.ISceneProExtService; import com.fdkankan.contro.service.ISceneProService; import com.fdkankan.fyun.oss.UploadToOssUtil; import java.util.Calendar; import java.util.List; import java.util.stream.Collectors; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; /** *

* pro场景表 服务实现类 *

* * @author dengsixing * @since 2021-12-23 */ @Slf4j @Service public class SceneProServiceImpl extends ServiceImpl implements ISceneProService { @Autowired @Qualifier("uploadToOssUtil") UploadToOssUtil uploadToOssUtil; @Autowired private ISceneProExtService sceneProExtService; @Autowired private ICameraDetailService cameraDetailService; @Override public ScenePro findBySceneNum(String sceneNum) { return this.getOne(new LambdaQueryWrapper() .eq(ScenePro::getNum, sceneNum)); } @Override public void updateStatus(String sceneNum, int sceneStatus) { this.update(new LambdaUpdateWrapper() .eq(ScenePro::getNum, sceneNum) .set(ScenePro::getSceneStatus, sceneStatus)); } @Override public void updateTime(String sceneNum, Long space, int payStatus, String videos, long computeTime) { List list = this.list(new LambdaQueryWrapper().eq(ScenePro::getNum, sceneNum)); if(CollUtil.isEmpty(list)) return; //修改场景状态 空间 支付状态 计算时间 List sceneProIds = list.stream().map(scenePro -> { return scenePro.getId(); }).collect(Collectors.toList()); this.update(new LambdaUpdateWrapper() .in(ScenePro::getId, sceneProIds) .set(ScenePro::getSceneStatus, SceneStatus.NO_DISPLAY.code()) .set(ScenePro::getCreateTime, Calendar.getInstance().getTime()) .set(ScenePro::getUpdateTime, Calendar.getInstance().getTime()) .set(ScenePro::getPayStatus, payStatus) .set(ScenePro::getVideos, videos)); sceneProExtService.update(new LambdaUpdateWrapper() .in(SceneProExt::getSceneProId, sceneProIds) .set(SceneProExt::getSpace, space) .set(SceneProExt::getComputeTime, computeTime)); } @Override public SceneProPO getSceneStatusByUnicode(String unicode) { return baseMapper.getSceneStatusByUnicode(unicode); } @Override public ResultData rebuildReduceSpaceBySceneNum(String sceneNum) throws Exception{ ScenePro scenePro = this.findBySceneNum(sceneNum); if(scenePro == null){ log.info("该场景不存在无法扣除容量,场景码为:" + sceneNum); return ResultData.error(ErrorCode.FAILURE_CODE_5054); } if (scenePro.getSceneScheme() < 4){ log.info("该场景不属于八目相机无法扣除容量,场景码为:" + sceneNum); return ResultData.error(ErrorCode.FAILURE_CODE_5055); } SceneProExt sceneProExt = sceneProExtService.findBySceneProId(scenePro.getId()); cameraDetailService.updateCameraDetailByCameraIdAndSpace(scenePro.getCameraId(), -sceneProExt.getSpace()); sceneProExt.setSpace(Long.parseLong("0")); sceneProExt.setUpdateTime(Calendar.getInstance().getTime()); sceneProExtService.updateById(sceneProExt); return ResultData.ok(); } @Override public SceneProPO findByFileId(String fileId) { return baseMapper.findByFileId(fileId); } }