123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- package com.fdkankan.scene.service.impl;
- import cn.hutool.core.bean.BeanUtil;
- import cn.hutool.core.util.StrUtil;
- 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.constant.ServerCode;
- import com.fdkankan.common.exception.BusinessException;
- import com.fdkankan.fyun.face.FYunFileServiceInterface;
- import com.fdkankan.model.constants.UploadFilePath;
- import com.fdkankan.scene.entity.*;
- import com.fdkankan.scene.mapper.ISurveillanceMapper;
- import com.fdkankan.scene.service.*;
- 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.io.IOException;
- 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;
- import javax.annotation.Resource;
- /**
- * <p>
- * 监控推拉流信息 服务实现类
- * </p>
- *
- * @author
- * @since 2022-09-16
- */
- @Service
- public class SurveillanceServiceImpl extends ServiceImpl<ISurveillanceMapper, Surveillance> implements ISurveillanceService {
- @Autowired
- private IScenePlusService scenePlusService;
- @Autowired
- private ISceneEditInfoExtService sceneEditInfoExtService;
- @Autowired
- private ISceneEditInfoService sceneEditInfoService;
- @Resource
- private FYunFileServiceInterface yunFileService;
- @Autowired
- private IScenePlusExtService scenePlusExtService;
- @Autowired
- private ICommonService commonService;
- @Override
- public ResultData saveSurveillance(SurveillanceParamVO param) throws Exception {
- if(param.getUrlType() == 1){
- if(StrUtil.isEmpty(param.getPlayUrl())){
- throw new BusinessException(ServerCode.PARAM_REQUIRED.code(), ServerCode.PARAM_REQUIRED.formatMessage("playUrl"));
- }
- }else{
- if(StrUtil.isEmpty(param.getFileName()) || StrUtil.isEmpty(param.getPoster())){
- throw new BusinessException(ServerCode.PARAM_REQUIRED.code(), ServerCode.PARAM_REQUIRED.formatMessage("fileName、poster"));
- }
- }
- ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum());
- if(Objects.isNull(scenePlus)){
- throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
- }
- ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
- //转换视频格式
- if(param.getUrlType() == 2){
- commonService.transferToFlv(param.getNum(), param.getFileName(), scenePlusExt.getYunFileBucket());
- }
- SceneEditInfo sceneEditInfo = sceneEditInfoService.getByScenePlusId(scenePlus.getId());
- 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());
- surveillance.setUrlType(param.getUrlType());
- surveillance.setFileName(param.getFileName());
- surveillance.setPoster(param.getPoster());
- this.saveOrUpdate(surveillance);
- sceneEditInfoExt.setSurveillances(CommonStatus.YES.code().intValue());
- sceneEditInfoExtService.updateById(sceneEditInfoExt);
- sceneEditInfoService.upgradeVersionById(sceneEditInfo.getId());
- return ResultData.ok();
- }
- @Override
- public ResultData deleteSurveillance(BaseSidParamVO param) throws IOException {
- ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum());
- if(Objects.isNull(scenePlus)){
- throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
- }
- Surveillance surveillance = this.getBySid(param.getNum(), param.getSid());
- if(Objects.isNull(surveillance)){
- return ResultData.ok("sid不存在");
- }
- ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
- SceneEditInfo sceneEditInfo = sceneEditInfoService.getByScenePlusId(scenePlus.getId());
- SceneEditInfoExt sceneEditInfoExt = sceneEditInfoExtService.getByScenePlusId(scenePlus.getId());
- String bucket = scenePlusExt.getYunFileBucket();
- this.remove(new LambdaQueryWrapper<Surveillance>().eq(Surveillance::getSid, param.getSid()));
- long count = this.count(new LambdaQueryWrapper<Surveillance>().eq(Surveillance::getNum, param.getNum()));
- if(count < 1){
- sceneEditInfoExt.setSurveillances(CommonStatus.NO.code().intValue());
- }
- //如果是视频类型监控,需要删除oss文件
- if(surveillance.getUrlType() == 2){
- String userEditPath = String.format(UploadFilePath.USER_EDIT_PATH, param.getNum());
- if(StrUtil.isNotEmpty(surveillance.getFileName())){
- yunFileService.deleteFile(bucket, userEditPath.concat(surveillance.getFileName()));
- }
- if(StrUtil.isNotEmpty(surveillance.getPoster())){
- yunFileService.deleteFile(bucket, userEditPath.concat(surveillance.getPoster()));
- }
- }
- sceneEditInfoExtService.updateById(sceneEditInfoExt);
- sceneEditInfoService.upgradeVersionById(sceneEditInfo.getId());
- return ResultData.ok();
- }
- @Override
- public List<SurveillanceVO> listSurveillance(String num) {
- List<Surveillance> list = this.list(new LambdaQueryWrapper<Surveillance>().eq(Surveillance::getNum, num).orderByDesc(Surveillance::getId));
- if(Objects.isNull(list)){
- return null;
- }
- List<SurveillanceVO> 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<Surveillance>().eq(Surveillance::getSid, sid).eq(Surveillance::getNum, num));
- }
- }
|