diff --git a/src/main/java/com/genersoft/iot/vmp/streamProxy/service/impl/StreamProxyServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/streamProxy/service/impl/StreamProxyServiceImpl.java index a37b4b471..c36daf78c 100755 --- a/src/main/java/com/genersoft/iot/vmp/streamProxy/service/impl/StreamProxyServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/streamProxy/service/impl/StreamProxyServiceImpl.java @@ -235,6 +235,18 @@ public class StreamProxyServiceImpl implements IStreamProxyService { if (streamProxyInDb == null) { throw new ControllerException(ErrorCode.ERROR100.getCode(), "代理不存在"); } + + // 检查 app+stream 唯一性(如果修改了app或stream) + if (!streamProxyInDb.getApp().equals(streamProxy.getApp()) || + !streamProxyInDb.getStream().equals(streamProxy.getStream())) { + StreamProxy duplicate = streamProxyMapper.selectOneByAppAndStream( + streamProxy.getApp(), streamProxy.getStream()); + if (duplicate != null && !duplicate.getId().equals(streamProxy.getId())) { + throw new ControllerException(ErrorCode.ERROR100.getCode(), + "应用名 [" + streamProxy.getApp() + "] 下的流ID [" + streamProxy.getStream() + "] 已存在"); + } + } + int updateResult = streamProxyMapper.update(streamProxy); if (updateResult > 0 && !ObjectUtils.isEmpty(streamProxy.getGbDeviceId())) { if (streamProxy.getGbId() > 0) {