From b5fb82934e01f78921e465ba0ac88b4daa97327d Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 08 九月 2022 21:22:49 +0800
Subject: [PATCH] 修复发送目录信息是状态错误
---
src/main/java/com/genersoft/iot/vmp/service/IGbStreamService.java | 2 +
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java | 8 ++--
src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java | 6 +++
src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java | 44 +++++++++++++++++++++
src/main/java/com/genersoft/iot/vmp/gb28181/event/subscribe/catalog/CatalogEventLister.java | 4 +-
5 files changed, 57 insertions(+), 7 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/event/subscribe/catalog/CatalogEventLister.java b/src/main/java/com/genersoft/iot/vmp/gb28181/event/subscribe/catalog/CatalogEventLister.java
index 734d600..7cd08a5 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/event/subscribe/catalog/CatalogEventLister.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/event/subscribe/catalog/CatalogEventLister.java
@@ -132,7 +132,7 @@
if (event.getGbStreams() != null && event.getGbStreams().size() > 0){
for (GbStream gbStream : event.getGbStreams()) {
deviceChannelList.add(
- gbStreamService.getDeviceChannelListByStream(gbStream, gbStream.getCatalogId(), parentPlatform));
+ gbStreamService.getDeviceChannelListByStreamWithStatus(gbStream, gbStream.getCatalogId(), parentPlatform));
}
}
if (deviceChannelList.size() > 0) {
@@ -154,7 +154,7 @@
deviceChannelList.add(deviceChannel);
GbStream gbStream = storager.queryStreamInParentPlatform(platform.getServerGBId(), gbId);
if(gbStream != null){
- DeviceChannel deviceChannelByStream = gbStreamService.getDeviceChannelListByStream(gbStream, gbStream.getCatalogId(), platform);
+ DeviceChannel deviceChannelByStream = gbStreamService.getDeviceChannelListByStreamWithStatus(gbStream, gbStream.getCatalogId(), platform);
deviceChannelList.add(deviceChannelByStream);
}
sipCommanderFroPlatform.sendNotifyForCatalogAddOrUpdate(event.getType(), platform, deviceChannelList, subscribeInfo, null);
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
index e6228bb..aa57f25 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
@@ -1219,9 +1219,9 @@
String charset = device.getCharset();
catalogXml.append("<?xml version=\"1.0\" encoding=\"" + charset + "\"?>\r\n");
catalogXml.append("<Query>\r\n");
- catalogXml.append("<CmdType>Catalog</CmdType>\r\n");
- catalogXml.append("<SN>" + sn + "</SN>\r\n");
- catalogXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n");
+ catalogXml.append(" <CmdType>Catalog</CmdType>\r\n");
+ catalogXml.append(" <SN>" + sn + "</SN>\r\n");
+ catalogXml.append(" <DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n");
catalogXml.append("</Query>\r\n");
String tm = Long.toString(System.currentTimeMillis());
@@ -1229,7 +1229,7 @@
CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
: udpSipProvider.getNewCallId();
- Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), "z9hG4bK-ViaCatalog-" + tm, "FromCat" + tm, null, callIdHeader);
+ Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), "z9hG4bK" + tm, tm, null, callIdHeader);
transmitRequest(device, request, errorEvent);
} catch (SipException | ParseException | InvalidArgumentException e) {
diff --git a/src/main/java/com/genersoft/iot/vmp/service/IGbStreamService.java b/src/main/java/com/genersoft/iot/vmp/service/IGbStreamService.java
index 61f94c2..ffbba00 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/IGbStreamService.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/IGbStreamService.java
@@ -53,4 +53,6 @@
* @return
*/
int updateGbIdOrName(List<StreamPushItem> streamPushItemForUpdate);
+
+ DeviceChannel getDeviceChannelListByStreamWithStatus(GbStream gbStream, String catalogId, ParentPlatform platform);
}
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 95b46b8..da11b16 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
@@ -79,7 +79,7 @@
gbStream.setPlatformId(platformId);
// TODO 淇敼涓烘壒閲忔彁浜�
platformGbStreamMapper.add(gbStream);
- DeviceChannel deviceChannelListByStream = getDeviceChannelListByStream(gbStream, catalogId, parentPlatform);
+ DeviceChannel deviceChannelListByStream = getDeviceChannelListByStreamWithStatus(gbStream, catalogId, parentPlatform);
deviceChannelList.add(deviceChannelListByStream);
}
dataSourceTransactionManager.commit(transactionStatus); //鎵嬪姩鎻愪氦
@@ -188,4 +188,46 @@
public int updateGbIdOrName(List<StreamPushItem> streamPushItemForUpdate) {
return gbStreamMapper.updateGbIdOrName(streamPushItemForUpdate);
}
+
+ @Override
+ public DeviceChannel getDeviceChannelListByStreamWithStatus(GbStream gbStream, String catalogId, ParentPlatform platform) {
+ DeviceChannel deviceChannel = new DeviceChannel();
+ deviceChannel.setChannelId(gbStream.getGbId());
+ deviceChannel.setName(gbStream.getName());
+ deviceChannel.setLongitude(gbStream.getLongitude());
+ deviceChannel.setLatitude(gbStream.getLatitude());
+ deviceChannel.setDeviceId(platform.getDeviceGBId());
+ deviceChannel.setManufacture("wvp-pro");
+ // todo 鐩墠鏄瘡涓�鏉℃煡璇竴娆★紝闇�瑕佷紭鍖�
+ Boolean status = null;
+ if ("proxy".equals(gbStream.getStreamType())) {
+ status = gbStreamMapper.selectStatusForProxy(gbStream.getApp(), gbStream.getStream());
+ }else {
+ status = gbStreamMapper.selectStatusForPush(gbStream.getApp(), gbStream.getStream());
+ }
+ deviceChannel.setStatus((status != null && status )?1:0);
+
+ 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());
+ }
+
+ }
+
+ deviceChannel.setModel("live");
+ deviceChannel.setOwner("wvp-pro");
+ deviceChannel.setParental(0);
+ deviceChannel.setSecrecy("0");
+ return deviceChannel;
+ }
}
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java
index df9143d..5e74d99 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java
@@ -158,4 +158,10 @@
"</foreach>"+
"</script>")
int updateGbIdOrName(List<StreamPushItem> streamPushItemForUpdate);
+
+ @Select("SELECT status FROM stream_proxy WHERE app=#{app} AND stream=#{stream}")
+ Boolean selectStatusForProxy(String app, String stream);
+
+ @Select("SELECT status FROM stream_push WHERE app=#{app} AND stream=#{stream}")
+ Boolean selectStatusForPush(String app, String stream);
}
--
Gitblit v1.8.0