From a42dda2bd3cc1cf8c20cc61e7ad9211eadecbaf3 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期四, 24 二月 2022 16:55:06 +0800 Subject: [PATCH] 规范数据库,添加必要约束,优化通道批量导入功能 --- src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java | 22 +++++++++++++++++----- 1 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java index 35c262f..2b4515f 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java @@ -20,6 +20,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.TransactionStatus; +import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.List; @@ -51,9 +52,9 @@ private EventPublisher eventPublisher; @Override - public PageInfo<GbStream> getAll(Integer page, Integer count) { + public PageInfo<GbStream> getAll(Integer page, Integer count, String platFormId, String catalogId, String query, Boolean pushing, String mediaServerId) { PageHelper.startPage(page, count); - List<GbStream> all = gbStreamMapper.selectAll(); + List<GbStream> all = gbStreamMapper.selectAll(platFormId, catalogId, query, pushing, mediaServerId); return new PageInfo<>(all); } @@ -69,6 +70,7 @@ boolean result = false; TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition); ParentPlatform parentPlatform = platformMapper.getParentPlatByServerGBId(platformId); + if (catalogId == null) catalogId = parentPlatform.getCatalogId(); try { List<DeviceChannel> deviceChannelList = new ArrayList<>(); for (GbStream gbStream : gbStreams) { @@ -116,14 +118,14 @@ TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition); try { List<DeviceChannel> deviceChannelList = new ArrayList<>(); + platformGbStreamMapper.delByAppAndStreamsByPlatformId(gbStreams, platformId); for (GbStream gbStream : gbStreams) { - platformGbStreamMapper.delByAppAndStream(gbStream.getApp(), gbStream.getStream()); DeviceChannel deviceChannel = new DeviceChannel(); deviceChannel.setChannelId(gbStream.getGbId()); deviceChannelList.add(deviceChannel); - eventPublisher.catalogEventPublish(platformId, deviceChannel, CatalogEvent.DEL); } + eventPublisher.catalogEventPublish(platformId, deviceChannelList, CatalogEvent.DEL); dataSourceTransactionManager.commit(transactionStatus); //鎵嬪姩鎻愪氦 result = true; }catch (Exception e) { @@ -144,12 +146,22 @@ gbStreams.add(streamProxyItem); } } + sendCatalogMsgs(gbStreams, type); + } + + @Override + public void sendCatalogMsgs(List<GbStream> gbStreams, String type) { if (gbStreams.size() > 0) { for (GbStream gs : gbStreams) { + if (StringUtils.isEmpty(gs.getGbId())){ + continue; + } List<ParentPlatform> parentPlatforms = platformGbStreamMapper.selectByAppAndStream(gs.getApp(), gs.getStream()); if (parentPlatforms.size() > 0) { for (ParentPlatform parentPlatform : parentPlatforms) { - eventPublisher.catalogEventPublishForStream(parentPlatform.getServerGBId(), gs, type); + if (parentPlatform != null) { + eventPublisher.catalogEventPublishForStream(parentPlatform.getServerGBId(), gs, type); + } } } } -- Gitblit v1.8.0