| package com.ruoyi.media.service.impl;  | 
|   | 
| import java.util.ArrayList;  | 
| 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.PostConstruct;  | 
| import javax.annotation.Resource;  | 
|   | 
| /**  | 
|  * 流媒体管理Service业务层处理  | 
|  *  | 
|  * @author ard  | 
|  * @date 2023-08-29  | 
|  */  | 
| @Service  | 
| @Slf4j(topic = "vtdu")  | 
| 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<Vtdu> selectVtduList(Vtdu vtdu) {  | 
|         return vtduMapper.selectVtduList(vtdu);  | 
|     }  | 
|   | 
|     /**  | 
|      * 新增流媒体管理  | 
|      *  | 
|      * @param vtdu 流媒体管理  | 
|      * @return 结果  | 
|      */  | 
|     @Override  | 
|     public int insertVtdu(Vtdu vtdu) {  | 
|         log.debug("流媒体【" + vtdu.getName() + "】通道添加");  | 
|         Map<String, String> 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<String, String> 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<Vtdu> vtdus = vtduMapper.selectVtduList(vtdu);  | 
|         if (vtdus.size() > 0) {  | 
|             for (Vtdu v : vtdus) {  | 
|                 mediaService.removePath(v.getName());  | 
|             }  | 
|         }  | 
|         return vtduMapper.deleteVtduByCameraId(cameraId);  | 
|     }  | 
| }  |