package com.ruoyi.media.service.impl; import java.util.List; import java.util.Map; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.media.service.IMediaService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import com.ruoyi.media.mapper.VtduMapper; import com.ruoyi.media.domain.Vtdu; import com.ruoyi.media.service.IVtduService; import javax.annotation.Resource; /** * 流媒体管理Service业务层处理 * * @author ard * @date 2023-08-29 */ @Service @Slf4j(topic = "sdk") public class VtduServiceImpl implements IVtduService { @Resource private VtduMapper vtduMapper; @Resource private IMediaService mediaService; /** * 查询流媒体管理 * * @param name 流媒体管理主键 * @return 流媒体管理 */ @Override public Vtdu selectVtduByName(String name) { return vtduMapper.selectVtduByName(name); } /** * 查询流媒体管理列表 * * @param vtdu 流媒体管理 * @return 流媒体管理 */ @Override public List selectVtduList(Vtdu vtdu) { return vtduMapper.selectVtduList(vtdu); } /** * 新增流媒体管理 * * @param vtdu 流媒体管理 * @return 结果 */ @Override public int insertVtdu(Vtdu vtdu) { log.debug("流媒体【" + vtdu.getName() + "】通道添加"); Map map = mediaService.addPath(vtdu.getName(), vtdu.getRtspSource(), vtdu.getMode(), vtdu.getIsCode()); vtdu.setRtspUrl(map.get("rtspUrl")); vtdu.setRtmpUrl(map.get("rtmpUrl")); vtdu.setWebrtcUrl(map.get("webrtcUrl")); vtdu.setName(vtdu.getName()); vtdu.setRtspSource(vtdu.getRtspSource()); vtdu.setIsCode(vtdu.getIsCode()); vtdu.setMode(vtdu.getMode()); vtdu.setCreateTime(DateUtils.getNowDate()); return vtduMapper.insertVtdu(vtdu); } /** * 修改流媒体管理 * * @param vtdu 流媒体管理 * @return 结果 */ @Override public int updateVtdu(Vtdu vtdu) { log.debug("流媒体【" + vtdu.getName() + "】通道更新"); Map map = mediaService.editPath(vtdu.getName(), vtdu.getRtspSource(), vtdu.getMode(), vtdu.getIsCode()); vtdu.setName(vtdu.getName()); vtdu.setRtspSource(vtdu.getRtspSource()); vtdu.setIsCode(vtdu.getIsCode()); vtdu.setMode(vtdu.getMode()); vtdu.setRtspUrl(map.get("rtspUrl")); vtdu.setRtmpUrl(map.get("rtmpUrl")); vtdu.setWebrtcUrl(map.get("webrtcUrl")); vtdu.setUpdateTime(DateUtils.getNowDate()); return vtduMapper.updateVtdu(vtdu); } /** * 批量删除流媒体管理 * * @param names 需要删除的数据主键集合 * @return 结果 */ @Override public int deleteVtduByNames(String[] names) { for (String name : names) { log.debug("流媒体【" + name + "】通道删除"); } mediaService.removePath(names); return vtduMapper.deleteVtduByNames(names); } /** * 删除流媒体管理 * * @param name 流媒体通道名称 * @return 结果 */ @Override public int deleteVtduByName(String name) { mediaService.removePath(name); log.debug("流媒体【" + name + "】通道删除"); return vtduMapper.deleteVtduByName(name); } /** * 删除流媒体管理信息 * * @param cameraId 相机ID * @return 结果 */ @Override public int deleteVtduByCameraId(String cameraId) { Vtdu vtdu = new Vtdu(); vtdu.setCameraId(cameraId); List vtdus = vtduMapper.selectVtduList(vtdu); if (vtdus.size() > 0) { for (Vtdu v : vtdus) { mediaService.removePath(v.getName()); } } return vtduMapper.deleteVtduByCameraId(cameraId); } }