liusuyi
2025-11-27 9e1c6de09a1c078e02d267c980d0ee49003016ee
ard-device/src/main/java/com/ard/device/channel/service/impl/ArdChannelServiceImpl.java
@@ -13,6 +13,7 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
@@ -34,6 +35,7 @@
    private IArdVtduService ardVtduService;
    @Resource
    private MediamtxConfig mediamtxConfig;
    /**
     * 查询通道管理
     *
@@ -111,6 +113,7 @@
    public int clearArdChannel(){
        return ardChannelMapper.clearArdChannel();
    }
    /**
     * 删除通道管理信息
     *
@@ -121,6 +124,7 @@
    public int deleteArdChannelByDeviceId(String deviceId) {
        return ardChannelMapper.deleteArdChannelByDeviceId(deviceId);
    }
    /**
     * 校验相机通道是否唯一
     *
@@ -130,8 +134,7 @@
    @Override
    public boolean checkArdChannelUnique(ArdChannel channel) {
        ArdChannel info = ardChannelMapper.checkArdChannelUnique(channel);
        if (info != null && !Objects.equals(info.getId(), channel.getId()))
        {
        if (info != null && !Objects.equals(info.getId(), channel.getId())) {
            return UserConstants.NOT_UNIQUE;
        }
        return UserConstants.UNIQUE;
@@ -156,10 +159,16 @@
            String name = channel.getDeviceId() + "_" + channel.getChanNo();  // 生成媒体表的 name
            String cameraId = channel.getDeviceId();  // cameraId 就是通道的 deviceId
            String rtspSourceUrl = getRtspSource(channel);
            String rtspUrl = "rtsp://" + mediamtxConfig.getPlayHost() + ":8554" + "/" + name;  // 拼接 webrtcUrl
            String rtmpUrl = "rtmp://" + mediamtxConfig.getPlayHost() + ":1935" + "/" + name;  // 拼接 webrtcUrl
            String rtspUrl =
                    "rtsp://" + mediamtxConfig.getPlayHost() + ":" + mediamtxConfig.getRtspPort() + "/" + name;  //
            // 拼接 webrtcUrl
            String rtmpUrl =
                    "rtmp://" + mediamtxConfig.getPlayHost() + ":" + mediamtxConfig.getRtmpPort() + "/" + name;  // 拼接
            // webrtcUrl
            String protocol = mediamtxConfig.isHttps() ? "https://" : "http://";
            String webrtcUrl = protocol + mediamtxConfig.getPlayHost() + ":8889" + "/" + name;  // 拼接 webrtcUrl
            String webrtcUrl =
                    protocol + mediamtxConfig.getPlayHost() + ":" + mediamtxConfig.getWebrtcPort() + "/" + name;
            // 拼接 webrtcUrl
            // 先检查媒体表是否已有此记录
            Optional<ArdVtdu> existingMedia = ardVtduList.stream()