From fc77b3f819b3143387b90a4d631725e7c6513ecd Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期五, 01 十二月 2023 15:49:18 +0800
Subject: [PATCH] 支持重新接入zlm的时候检查拉流代理数据是否异常,异常数据自动移除
---
src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java | 71 ++++++++++++++++++++---------------
1 files changed, 40 insertions(+), 31 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
old mode 100644
new mode 100755
index dc9d927..26b4f3e
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java
@@ -18,6 +18,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import java.util.ArrayList;
@@ -39,6 +40,9 @@
@Autowired
private PlatformGbStreamMapper platformGbStreamMapper;
+
+ @Autowired
+ private SubscribeHolder subscribeHolder;
@Autowired
private ParentPlatformMapper platformMapper;
@@ -73,16 +77,23 @@
}
try {
List<DeviceChannel> deviceChannelList = new ArrayList<>();
- for (GbStream gbStream : gbStreams) {
+
+
+ for (int i = 0; i < gbStreams.size(); i++) {
+ GbStream gbStream = gbStreams.get(i);
gbStream.setCatalogId(catalogId);
gbStream.setPlatformId(platformId);
// TODO 淇敼涓烘壒閲忔彁浜�
platformGbStreamMapper.add(gbStream);
+ logger.info("[鍏宠仈閫氶亾]鐩存挱娴侀�氶亾 骞冲彴锛歿}, 鍏遍渶鍏宠仈閫氶亾鏁�:{}, 宸插叧鑱旓細{}", platformId, gbStreams.size(), i + 1);
DeviceChannel deviceChannelListByStream = getDeviceChannelListByStreamWithStatus(gbStream, catalogId, parentPlatform);
deviceChannelList.add(deviceChannelListByStream);
}
dataSourceTransactionManager.commit(transactionStatus); //鎵嬪姩鎻愪氦
- eventPublisher.catalogEventPublish(platformId, deviceChannelList, CatalogEvent.ADD);
+ if (subscribeHolder.getCatalogSubscribe(platformId) != null) {
+ eventPublisher.catalogEventPublish(platformId, deviceChannelList, CatalogEvent.ADD);
+ }
+
result = true;
}catch (Exception e) {
logger.error("鎵归噺淇濆瓨娴佷笌骞冲彴鐨勫叧绯绘椂閿欒", e);
@@ -100,23 +111,18 @@
deviceChannel.setLatitude(gbStream.getLatitude());
deviceChannel.setDeviceId(platform.getDeviceGBId());
deviceChannel.setManufacture("wvp-pro");
- deviceChannel.setStatus(gbStream.isStatus()?1:0);
+ deviceChannel.setStatus(gbStream.isStatus());
deviceChannel.setRegisterWay(1);
- deviceChannel.setCivilCode(platform.getAdministrativeDivision());
- if (platform.getTreeType().equals(TreeType.CIVIL_CODE)){
- deviceChannel.setCivilCode(catalogId);
- }else if (platform.getTreeType().equals(TreeType.BUSINESS_GROUP)){
- PlatformCatalog catalog = catalogMapper.select(catalogId);
- if (catalog == null) {
- deviceChannel.setParentId(platform.getDeviceGBId());
- deviceChannel.setBusinessGroupId(null);
- }else {
- deviceChannel.setParentId(catalog.getId());
- deviceChannel.setBusinessGroupId(catalog.getBusinessGroupId());
- }
-
+ PlatformCatalog catalog = catalogMapper.selectByPlatFormAndCatalogId(platform.getServerGBId(), catalogId);
+ if (catalog != null) {
+ deviceChannel.setCivilCode(catalog.getCivilCode());
+ deviceChannel.setParentId(catalog.getParentId());
+ deviceChannel.setBusinessGroupId(catalog.getBusinessGroupId());
+ }else {
+ deviceChannel.setCivilCode(platform.getAdministrativeDivision());
+ deviceChannel.setParentId(platform.getDeviceGBId());
}
deviceChannel.setModel("live");
@@ -152,6 +158,10 @@
@Override
public void sendCatalogMsg(GbStream gbStream, String type) {
+ if (gbStream == null || type == null) {
+ logger.warn("[鍙戦�佺洰褰曡闃匽绫诲瀷锛氭祦淇℃伅鎴栫被鍨嬩负NULL");
+ return;
+ }
List<GbStream> gbStreams = new ArrayList<>();
if (gbStream.getGbId() != null) {
gbStreams.add(gbStream);
@@ -204,23 +214,17 @@
}else {
status = gbStreamMapper.selectStatusForPush(gbStream.getApp(), gbStream.getStream());
}
- deviceChannel.setStatus((status != null && status )?1:0);
+ deviceChannel.setStatus(status != null && status);
deviceChannel.setRegisterWay(1);
- deviceChannel.setCivilCode(platform.getAdministrativeDivision());
-
- if (platform.getTreeType().equals(TreeType.CIVIL_CODE)){
- deviceChannel.setCivilCode(catalogId);
- }else if (platform.getTreeType().equals(TreeType.BUSINESS_GROUP)){
- PlatformCatalog catalog = catalogMapper.select(catalogId);
- if (catalog == null) {
- deviceChannel.setParentId(platform.getDeviceGBId());
- deviceChannel.setBusinessGroupId(null);
- }else {
- deviceChannel.setParentId(catalog.getId());
- deviceChannel.setBusinessGroupId(catalog.getBusinessGroupId());
- }
-
+ PlatformCatalog catalog = catalogMapper.selectByPlatFormAndCatalogId(platform.getServerGBId(), catalogId);
+ if (catalog != null) {
+ deviceChannel.setCivilCode(catalog.getCivilCode());
+ deviceChannel.setParentId(catalog.getParentId());
+ deviceChannel.setBusinessGroupId(catalog.getBusinessGroupId());
+ }else {
+ deviceChannel.setCivilCode(platform.getAdministrativeDivision());
+ deviceChannel.setParentId(platform.getDeviceGBId());
}
deviceChannel.setModel("live");
@@ -260,4 +264,9 @@
eventPublisher.catalogEventPublish(platformId, deviceChannelList, CatalogEvent.DEL);
}
}
+
+ @Override
+ public List<GbStream> getGbChannelWithGbid(String gbId) {
+ return gbStreamMapper.selectByGBId(gbId);
+ }
}
--
Gitblit v1.8.0