package com.fdkankan.scene.service.impl; import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fdkankan.common.constant.CommonStatus; import com.fdkankan.common.constant.ErrorCode; import com.fdkankan.common.exception.BusinessException; import com.fdkankan.scene.entity.SceneEditInfoExt; import com.fdkankan.scene.entity.ScenePlus; import com.fdkankan.scene.entity.Surveillance; import com.fdkankan.scene.mapper.ISurveillanceMapper; import com.fdkankan.scene.service.ISceneEditInfoExtService; import com.fdkankan.scene.service.IScenePlusService; import com.fdkankan.scene.service.ISurveillanceService; import com.fdkankan.scene.vo.BaseSidParamVO; import com.fdkankan.scene.vo.SurveillanceParamVO; import com.fdkankan.scene.vo.SurveillanceVO; import com.fdkankan.web.response.ResultData; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** *

* 监控推拉流信息 服务实现类 *

* * @author * @since 2022-09-16 */ @Service public class SurveillanceServiceImpl extends ServiceImpl implements ISurveillanceService { @Autowired private IScenePlusService scenePlusService; @Autowired private ISceneEditInfoExtService sceneEditInfoExtService; @Override public ResultData saveSurveillance(SurveillanceParamVO param) { ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum()); if(Objects.isNull(scenePlus)){ throw new BusinessException(ErrorCode.FAILURE_CODE_5005); } SceneEditInfoExt sceneEditInfoExt = sceneEditInfoExtService.getByScenePlusId(scenePlus.getId()); Surveillance surveillance = this.getBySid(param.getNum(), param.getSid()); if(Objects.isNull(surveillance)){ surveillance = new Surveillance(); } surveillance.setSid(param.getSid()); surveillance.setPanoId(param.getPanoId()); surveillance.setNum(param.getNum()); surveillance.setName(param.getName()); surveillance.setData(param.getData().toJSONString()); surveillance.setPlayUrl(param.getPlayUrl()); this.saveOrUpdate(surveillance); sceneEditInfoExt.setSurveillances(CommonStatus.YES.code().intValue()); sceneEditInfoExtService.updateById(sceneEditInfoExt); return ResultData.ok(); } @Override public ResultData deleteSurveillance(BaseSidParamVO param) { ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum()); if(Objects.isNull(scenePlus)){ throw new BusinessException(ErrorCode.FAILURE_CODE_5005); } SceneEditInfoExt sceneEditInfoExt = sceneEditInfoExtService.getByScenePlusId(scenePlus.getId()); this.remove(new LambdaQueryWrapper().eq(Surveillance::getSid, param.getSid())); long count = this.count(new LambdaQueryWrapper().eq(Surveillance::getNum, param.getNum())); if(count < 1){ sceneEditInfoExt.setSurveillances(CommonStatus.NO.code().intValue()); } sceneEditInfoExtService.updateById(sceneEditInfoExt); return ResultData.ok(); } @Override public List listSurveillance(String num) { List list = this.list(new LambdaQueryWrapper().eq(Surveillance::getNum, num).orderByDesc(Surveillance::getId)); if(Objects.isNull(list)){ return null; } List voList = list.stream().map(item -> { SurveillanceVO vo = BeanUtil.copyProperties(item, SurveillanceVO.class, "data"); vo.setData(JSON.parseObject(item.getData())); return vo; }).collect(Collectors.toList()); return voList; } @Override public Surveillance getBySid(String num, String sid) { return this.getOne(new LambdaQueryWrapper().eq(Surveillance::getSid, sid).eq(Surveillance::getNum, num)); } }