From c21d973977a9f1d00d26179de764687ddd0ec56c Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期三, 24 四月 2024 14:59:41 +0800
Subject: [PATCH] 修复收到catalog消息是更新导致是否有音频的设置失效的BUG
---
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java | 5 +-
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForCatalogProcessor.java | 1
src/main/java/com/genersoft/iot/vmp/gb28181/bean/DeviceChannel.java | 4 +-
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java | 2
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java | 105 ----------------------------------------------------
5 files changed, 6 insertions(+), 111 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/DeviceChannel.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/DeviceChannel.java
index 8290a45..6e230af 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/DeviceChannel.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/DeviceChannel.java
@@ -535,11 +535,11 @@
this.subCount = subCount;
}
- public boolean isHasAudio() {
+ public Boolean getHasAudio() {
return hasAudio;
}
- public void setHasAudio(boolean hasAudio) {
+ public void setHasAudio(Boolean hasAudio) {
this.hasAudio = hasAudio;
}
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForCatalogProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForCatalogProcessor.java
index de93804..4d26189 100755
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForCatalogProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForCatalogProcessor.java
@@ -143,6 +143,7 @@
case CatalogEvent.UPDATE:
// 鏇存柊
channel.setUpdateTime(DateUtil.getNow());
+ channel.setHasAudio(null);
deviceChannelService.updateChannel(deviceId,channel);
if (userSetting.getDeviceStatusNotify()) {
// 鍙戦�乺edis娑堟伅
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java
index 8a42624..dcf823b 100755
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java
@@ -25,11 +25,9 @@
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Component;
-import org.springframework.util.ObjectUtils;
import javax.sip.InvalidArgumentException;
import javax.sip.RequestEvent;
@@ -110,7 +108,6 @@
} catch (SipException | InvalidArgumentException | ParseException e) {
logger.error("鏈鐞嗙殑寮傚父 ", e);
}
- boolean runed = !taskQueue.isEmpty();
taskQueue.offer(new HandlerCatchData(evt, null, null));
}
@Scheduled(fixedRate = 200) //姣�200姣鎵ц涓�娆�
@@ -155,108 +152,6 @@
}
} catch (DocumentException e) {
logger.error("澶勭悊NOTIFY娑堟伅鏃堕敊璇�", e);
- }
- }
-
-
-
- /**
- * 澶勭悊MobilePosition绉诲姩浣嶇疆Notify
- *
- * @param evt
- */
- @Async("taskExecutor")
- public void processNotifyMobilePosition(RequestEvent evt) {
- try {
- FromHeader fromHeader = (FromHeader) evt.getRequest().getHeader(FromHeader.NAME);
- String deviceId = SipUtils.getUserIdFromFromHeader(fromHeader);
- // 鍥炲 200 OK
- Element rootElement = getRootElement(evt);
- if (rootElement == null) {
- logger.error("澶勭悊MobilePosition绉诲姩浣嶇疆Notify鏃舵湭鑾峰彇鍒版秷鎭綋,{}", evt.getRequest());
- return;
- }
-
- MobilePosition mobilePosition = new MobilePosition();
- mobilePosition.setCreateTime(DateUtil.getNow());
-
- Element deviceIdElement = rootElement.element("DeviceID");
- String channelId = deviceIdElement.getTextTrim().toString();
- Device device = redisCatchStorage.getDevice(deviceId);
-
- if (device == null) {
- device = redisCatchStorage.getDevice(channelId);
- if (device == null) {
- // 鏍规嵁閫氶亾id鏌ヨ璁惧Id
- List<Device> deviceList = deviceChannelService.getDeviceByChannelId(channelId);
- if (deviceList.size() > 0) {
- device = deviceList.get(0);
- }
- }
- }
- if (device == null) {
- logger.warn("[mobilePosition绉诲姩浣嶇疆Notify] 鏈壘鍒伴�氶亾{}鎵�灞炵殑璁惧", channelId);
- return;
- }
- // 鍏煎璁惧閮ㄥ垎璁惧涓婃姤鏄�氶亾缂栧彿涓庤澶囩紪鍙蜂竴鑷寸殑鎯呭喌
- if(deviceId.equals(channelId)) {
- List<DeviceChannel> deviceChannels = deviceChannelService.queryChaneListByDeviceId(deviceId);
- if (deviceChannels.size() == 1) {
- channelId = deviceChannels.get(0).getChannelId();
- }
- }
- if (!ObjectUtils.isEmpty(device.getName())) {
- mobilePosition.setDeviceName(device.getName());
- }
-
- mobilePosition.setDeviceId(device.getDeviceId());
- mobilePosition.setChannelId(channelId);
- String time = XmlUtil.getText(rootElement, "Time");
- if (ObjectUtils.isEmpty(time)){
- mobilePosition.setTime(DateUtil.getNow());
- }else {
- mobilePosition.setTime(SipUtils.parseTime(time));
- }
-
- mobilePosition.setLongitude(Double.parseDouble(XmlUtil.getText(rootElement, "Longitude")));
- mobilePosition.setLatitude(Double.parseDouble(XmlUtil.getText(rootElement, "Latitude")));
- if (NumericUtil.isDouble(XmlUtil.getText(rootElement, "Speed"))) {
- mobilePosition.setSpeed(Double.parseDouble(XmlUtil.getText(rootElement, "Speed")));
- } else {
- mobilePosition.setSpeed(0.0);
- }
- if (NumericUtil.isDouble(XmlUtil.getText(rootElement, "Direction"))) {
- mobilePosition.setDirection(Double.parseDouble(XmlUtil.getText(rootElement, "Direction")));
- } else {
- mobilePosition.setDirection(0.0);
- }
- if (NumericUtil.isDouble(XmlUtil.getText(rootElement, "Altitude"))) {
- mobilePosition.setAltitude(Double.parseDouble(XmlUtil.getText(rootElement, "Altitude")));
- } else {
- mobilePosition.setAltitude(0.0);
- }
-// logger.info("[鏀跺埌绉诲姩浣嶇疆璁㈤槄閫氱煡]锛歿}/{}->{}.{}", mobilePosition.getDeviceId(), mobilePosition.getChannelId(),
-// mobilePosition.getLongitude(), mobilePosition.getLatitude());
- mobilePosition.setReportSource("Mobile Position");
-
- // 鏇存柊device channel 鐨勭粡绾害
- DeviceChannel deviceChannel = new DeviceChannel();
- deviceChannel.setDeviceId(device.getDeviceId());
- deviceChannel.setChannelId(channelId);
- deviceChannel.setLongitude(mobilePosition.getLongitude());
- deviceChannel.setLatitude(mobilePosition.getLatitude());
- deviceChannel.setGpsTime(mobilePosition.getTime());
-// deviceChannel = deviceChannelService.updateGps(deviceChannel, device);
-//
-// mobilePosition.setLongitudeWgs84(deviceChannel.getLongitudeWgs84());
-// mobilePosition.setLatitudeWgs84(deviceChannel.getLatitudeWgs84());
-// mobilePosition.setLongitudeGcj02(deviceChannel.getLongitudeGcj02());
-// mobilePosition.setLatitudeGcj02(deviceChannel.getLatitudeGcj02());
-
- deviceChannelService.updateChannelGPS(device, deviceChannel, mobilePosition);
-
- } catch (DocumentException e) {
- logger.error("鏈鐞嗙殑寮傚父 ", e);
}
}
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
index de98916..f3d7477 100755
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
@@ -289,7 +289,7 @@
String channelId = ssrcTransactionForAll.get(0).getChannelId();
DeviceChannel deviceChannel = storager.queryChannel(deviceId, channelId);
if (deviceChannel != null) {
- result.setEnable_audio(deviceChannel.isHasAudio());
+ result.setEnable_audio(deviceChannel.getHasAudio());
}
// 濡傛灉鏄綍鍍忎笅杞藉氨璁剧疆瑙嗛闂撮殧鍗佺
if (ssrcTransactionForAll.get(0).getType() == InviteSessionType.DOWNLOAD) {
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
index 509240f..b1eef31 100755
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
@@ -7,7 +7,6 @@
import com.genersoft.iot.vmp.gb28181.event.EventPublisher;
import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent;
import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem;
-import com.genersoft.iot.vmp.service.IGbStreamService;
import com.genersoft.iot.vmp.service.bean.GPSMsgInfo;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
@@ -139,7 +138,7 @@
gbIdSet.add(deviceChannel.getChannelId());
if (allChannelMap.containsKey(deviceChannel.getChannelId())) {
deviceChannel.setStreamId(allChannelMap.get(deviceChannel.getChannelId()).getStreamId());
- deviceChannel.setHasAudio(allChannelMap.get(deviceChannel.getChannelId()).isHasAudio());
+ deviceChannel.setHasAudio(allChannelMap.get(deviceChannel.getChannelId()).getHasAudio());
if (allChannelMap.get(deviceChannel.getChannelId()).isStatus() !=deviceChannel.isStatus()){
List<String> strings = platformChannelMapper.queryParentPlatformByChannelId(deviceChannel.getChannelId());
if (!CollectionUtils.isEmpty(strings)){
@@ -275,7 +274,7 @@
deviceChannel.setUpdateTime(DateUtil.getNow());
if (allChannelMap.containsKey(deviceChannel.getChannelId())) {
deviceChannel.setStreamId(allChannelMap.get(deviceChannel.getChannelId()).getStreamId());
- deviceChannel.setHasAudio(allChannelMap.get(deviceChannel.getChannelId()).isHasAudio());
+ deviceChannel.setHasAudio(allChannelMap.get(deviceChannel.getChannelId()).getHasAudio());
if (allChannelMap.get(deviceChannel.getChannelId()).isStatus() !=deviceChannel.isStatus()){
List<String> strings = platformChannelMapper.queryParentPlatformByChannelId(deviceChannel.getChannelId());
if (!CollectionUtils.isEmpty(strings)){
--
Gitblit v1.8.0