Revert "修复摄像头增删改配置下发链路"

This reverts commit 424a6a681e.
This commit is contained in:
2026-04-29 09:53:25 +08:00
parent 424a6a681e
commit 7456333453
3 changed files with 9 additions and 82 deletions

View File

@@ -438,29 +438,11 @@ public class AiRedisConfigServiceImpl implements IAiRedisConfigService {
}
try {
// 1. 查询该设备下所有摄像头(优先从 stream_proxy 表查询,确保包含无 ROI 的摄像头)
// 合并两个来源stream_proxy 表的 edge_device_id 关联 + ROI 表的 device_id 关联
Set<String> cameraIdSet = new LinkedHashSet<>();
// 来源1stream_proxy 表中 edge_device_id 匹配的摄像头
List<String> proxyCameraIds = streamProxyMapper.selectCameraCodesByEdgeDeviceId(deviceId);
if (proxyCameraIds != null && !proxyCameraIds.isEmpty()) {
cameraIdSet.addAll(proxyCameraIds);
log.debug("[AiRedis] 从 stream_proxy 表查询到 {} 个摄像头: deviceId={}", proxyCameraIds.size(), deviceId);
}
// 来源2ROI 表中 device_id 关联的摄像头(兼容旧数据或边缘情况)
List<String> roiCameraIds = roiMapper.queryDistinctCameraIdsByDeviceId(deviceId);
if (roiCameraIds != null && !roiCameraIds.isEmpty()) {
cameraIdSet.addAll(roiCameraIds);
log.debug("[AiRedis] 从 ROI 表查询到 {} 个摄像头: deviceId={}", roiCameraIds.size(), deviceId);
}
List<String> cameraIds = new ArrayList<>(cameraIdSet);
if (cameraIds.isEmpty()) {
// 1. 查询该设备下所有摄像头
List<String> cameraIds = roiMapper.queryDistinctCameraIdsByDeviceId(deviceId);
if (cameraIds == null || cameraIds.isEmpty()) {
log.info("[AiRedis] 设备 {} 下无关联摄像头,写入空配置", deviceId);
} else {
log.info("[AiRedis] 设备 {} 下共 {} 个摄像头(去重后)", deviceId, cameraIds.size());
cameraIds = Collections.emptyList();
}
// 2. 构建扁平格式 JSON

View File

@@ -133,10 +133,4 @@ public interface StreamProxyMapper {
*/
@Select("SELECT edge_device_id FROM wvp_stream_proxy WHERE camera_code = #{cameraCode}")
String selectEdgeDeviceIdByCameraCode(@Param("cameraCode") String cameraCode);
/**
* 根据 edge_device_id 查询关联的所有摄像头编码
*/
@Select("SELECT camera_code FROM wvp_stream_proxy WHERE edge_device_id = #{edgeDeviceId} AND camera_code IS NOT NULL AND camera_code != '' ORDER BY camera_name")
List<String> selectCameraCodesByEdgeDeviceId(@Param("edgeDeviceId") String edgeDeviceId);
}

View File

@@ -169,21 +169,6 @@ public class StreamProxyServiceImpl implements IStreamProxyService {
streamProxyMapper.add(streamProxy);
streamProxy.setDataType(ChannelDataType.STREAM_PROXY);
streamProxy.setDataDeviceId(streamProxy.getId());
// 推送配置到 Edge新增摄像头
String edgeDeviceId = streamProxy.getEdgeDeviceId();
if (edgeDeviceId != null && !edgeDeviceId.isEmpty()) {
try {
redisConfigService.writeDeviceAggregatedConfig(edgeDeviceId, "UPDATE");
log.info("[StreamProxy] 新增摄像头后推送配置到 EdgeedgeDeviceId={}, cameraCode={}",
edgeDeviceId, cameraCode);
} catch (Exception e) {
log.error("[StreamProxy] 新增摄像头后推送配置失败edgeDeviceId={}, cameraCode={}",
edgeDeviceId, cameraCode, e);
}
} else {
log.warn("[StreamProxy] 新增摄像头但 edgeDeviceId 为空跳过推送配置cameraCode={}", cameraCode);
}
} catch (DuplicateKeyException e) {
throw new RuntimeException("生成 camera_code 失败,请重试");
}
@@ -200,7 +185,7 @@ public class StreamProxyServiceImpl implements IStreamProxyService {
private void delete(StreamProxy streamProxy) {
Assert.notNull(streamProxy, "代理不可为NULL");
String edgeDeviceId = streamProxy.getEdgeDeviceId();
String cameraCode = streamProxy.getCameraCode();
if (streamProxy.getPulling() != null && streamProxy.getPulling()) {
playService.stopProxy(streamProxy);
}
@@ -209,15 +194,13 @@ public class StreamProxyServiceImpl implements IStreamProxyService {
}
streamProxyMapper.delete(streamProxy.getId());
// 推送配置到 Edge删除摄像头
if (edgeDeviceId != null && !edgeDeviceId.isEmpty()) {
if (cameraCode != null) {
try {
redisConfigService.writeDeviceAggregatedConfig(edgeDeviceId, "UPDATE");
log.info("[StreamProxy] 删除摄像头后推送配置到 EdgeedgeDeviceId={}", edgeDeviceId);
redisConfigService.writeDeviceAggregatedConfig(cameraCode, "UPDATE");
log.info("[StreamProxy] 删除摄像头后推送配置到 Edgecamera_code={}", cameraCode);
} catch (Exception e) {
log.error("[StreamProxy] 删除摄像头后推送配置失败,edgeDeviceId={}", edgeDeviceId, e);
log.error("[StreamProxy] 删除摄像头后推送配置失败,camera_code={}", cameraCode, e);
}
} else {
log.warn("[StreamProxy] 删除摄像头但 edgeDeviceId 为空,跳过推送配置");
}
}
@@ -261,38 +244,6 @@ public class StreamProxyServiceImpl implements IStreamProxyService {
gbChannelService.add(streamProxy.buildCommonGBChannel());
}
}
// 推送配置到 Edge更新摄像头
String oldEdgeDeviceId = streamProxyInDb.getEdgeDeviceId();
String newEdgeDeviceId = streamProxy.getEdgeDeviceId();
if (oldEdgeDeviceId != null && !oldEdgeDeviceId.isEmpty() &&
newEdgeDeviceId != null && !newEdgeDeviceId.isEmpty() &&
!oldEdgeDeviceId.equals(newEdgeDeviceId)) {
// edgeDeviceId 变更:先推送给老设备(移除),再推送给新设备(添加)
try {
redisConfigService.writeDeviceAggregatedConfig(oldEdgeDeviceId, "UPDATE");
log.info("[StreamProxy] 更新摄像头后推送配置到旧 EdgeoldEdgeDeviceId={}", oldEdgeDeviceId);
} catch (Exception e) {
log.error("[StreamProxy] 更新摄像头后推送配置到旧 Edge 失败oldEdgeDeviceId={}", oldEdgeDeviceId, e);
}
try {
redisConfigService.writeDeviceAggregatedConfig(newEdgeDeviceId, "UPDATE");
log.info("[StreamProxy] 更新摄像头后推送配置到新 EdgenewEdgeDeviceId={}", newEdgeDeviceId);
} catch (Exception e) {
log.error("[StreamProxy] 更新摄像头后推送配置到新 Edge 失败newEdgeDeviceId={}", newEdgeDeviceId, e);
}
} else if (newEdgeDeviceId != null && !newEdgeDeviceId.isEmpty()) {
// edgeDeviceId 未变更或原为空:推送给当前设备
try {
redisConfigService.writeDeviceAggregatedConfig(newEdgeDeviceId, "UPDATE");
log.info("[StreamProxy] 更新摄像头后推送配置到 EdgeedgeDeviceId={}", newEdgeDeviceId);
} catch (Exception e) {
log.error("[StreamProxy] 更新摄像头后推送配置失败edgeDeviceId={}", newEdgeDeviceId, e);
}
} else {
log.warn("[StreamProxy] 更新摄像头但 edgeDeviceId 为空,跳过推送配置");
}
return true;
}