package com.fdkankan.scene.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.fdkankan.common.constant.ErrorCode; import com.fdkankan.common.constant.RebuildResult; import com.fdkankan.common.constant.RecStatus; import com.fdkankan.common.constant.TbStatus; import com.fdkankan.common.exception.BusinessException; import com.fdkankan.common.response.ResultData; import com.fdkankan.scene.entity.PicSceneProgress; import com.fdkankan.scene.entity.ScenePro; import com.fdkankan.scene.mapper.IPicSceneProgressMapper; import com.fdkankan.scene.service.IPicSceneProgressService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fdkankan.scene.service.ISceneProService; import com.fdkankan.scene.vo.RebuildVedioSceneParamVO; import com.fdkankan.scene.vo.VideoSceneProgressVO; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Calendar; import java.util.List; /** *

* 视频重算进度 服务实现类 *

* * @author * @since 2022-01-14 */ @Service public class PicSceneProgressServiceImpl extends ServiceImpl implements IPicSceneProgressService { @Autowired ISceneProService sceneProService; @Override public VideoSceneProgressVO findPicSceneProgress(RebuildVedioSceneParamVO param) { List list = this.list( new LambdaQueryWrapper() .eq(PicSceneProgress::getTbStatus, TbStatus.VALID.code()) .eq(PicSceneProgress::getNum, param.getNum())); VideoSceneProgressVO videoSceneProgressVO = new VideoSceneProgressVO(); if(list == null || list.size()<=0){ return videoSceneProgressVO; } BeanUtils.copyProperties(list.get(0), videoSceneProgressVO); //更新访问量 this.updatePageView(param.getNum()); return videoSceneProgressVO; } @Override public void updateProgressRec(RebuildVedioSceneParamVO param) { this.update(new LambdaUpdateWrapper() .set(PicSceneProgress::getTbStatus, TbStatus.DELETE.code()) .eq(PicSceneProgress::getNum, param.getNum())); } @Override public PicSceneProgress findrebuildVideoProgressDetail(String num,String panId) { PicSceneProgress picSceneProgress = this.getOne(new LambdaQueryWrapper() .eq(PicSceneProgress::getTbStatus, TbStatus.VALID.code()) .eq(PicSceneProgress::getNum, num)); return picSceneProgress; } @Override public void updateProgress(String num, String panId, Integer status) { this.update(new LambdaUpdateWrapper() .set(PicSceneProgress::getRebuildResult, status) .set(PicSceneProgress::getRebuildEndTime, Calendar.getInstance().getTime()) .eq(PicSceneProgress::getNum, num) .eq(PicSceneProgress::getTbStatus, RecStatus.VALID.code())); } @Override public void updatePageView(String sceneCode) { this.update(new LambdaUpdateWrapper() .set(PicSceneProgress::getRebuildResult, RebuildResult.POLLED.code()) .eq(PicSceneProgress::getNum, sceneCode) .eq(PicSceneProgress::getTbStatus, RecStatus.VALID.code()) .eq(PicSceneProgress::getRebuildResult, RebuildResult.SUCCESS.code())); } public ResultData rebuildPicSceneProgress(RebuildVedioSceneParamVO param) throws Exception { if(StringUtils.isEmpty(param.getNum())){ throw new BusinessException(ErrorCode.FAILURE_CODE_3001); } ScenePro sceneProEntity = sceneProService.findBySceneNum(param.getNum()); if(null == sceneProEntity){ throw new BusinessException(ErrorCode.FAILURE_CODE_5005); } VideoSceneProgressVO picSceneProgress =this.findPicSceneProgress(param); return ResultData.ok(picSceneProgress.getRebuildResult()); } }