From 74d97734bab2479f857add5e6d1ef9007f5f59ee Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期一, 11 七月 2022 17:34:22 +0800
Subject: [PATCH] 修复获取推流播放地址接口
---
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java | 62 ++++++++++++++++++++++++++-----
1 files changed, 52 insertions(+), 10 deletions(-)
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 1f35911..c4d1c9e 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
@@ -25,12 +25,13 @@
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
-/**
+/**
* 瑙嗛璁惧鏁版嵁瀛樺偍-jdbc瀹炵幇
* swwheihei
* 2020骞�5鏈�6鏃� 涓嬪崍2:31:42
@@ -195,7 +196,7 @@
@Override
public boolean resetChannels(String deviceId, List<DeviceChannel> deviceChannelList) {
- if (deviceChannelList == null) {
+ if (CollectionUtils.isEmpty(deviceChannelList)) {
return false;
}
List<DeviceChannel> allChannelInPlay = deviceChannelMapper.getAllChannelInPlay();
@@ -245,6 +246,10 @@
}
if (stringBuilder.length() > 0) {
logger.info("[鐩綍鏌ヨ]鏀跺埌鐨勬暟鎹瓨鍦ㄩ噸澶嶏細 {}" , stringBuilder);
+ }
+ if(CollectionUtils.isEmpty(channels)){
+ logger.info("閫氶亾閲嶈锛屾暟鎹负绌�={}" , deviceChannelList);
+ return false;
}
try {
int cleanChannelsResult = deviceChannelMapper.cleanChannelsNotInList(deviceId, channels);
@@ -315,6 +320,9 @@
List<DeviceChannel> all;
if (catalogUnderDevice != null && catalogUnderDevice) {
all = deviceChannelMapper.queryChannels(deviceId, deviceId, query, hasSubChannel, online);
+ // 娴峰悍璁惧鐨刾arentId鏄疭IP id
+ List<DeviceChannel> deviceChannels = deviceChannelMapper.queryChannels(deviceId, sipConfig.getId(), query, hasSubChannel, online);
+ all.addAll(deviceChannels);
}else {
all = deviceChannelMapper.queryChannels(deviceId, null, query, hasSubChannel, online);
}
@@ -464,6 +472,9 @@
*/
@Override
public synchronized boolean insertMobilePosition(MobilePosition mobilePosition) {
+ if (mobilePosition.getDeviceId().equals(mobilePosition.getChannelId())) {
+ mobilePosition.setChannelId(null);
+ }
return deviceMobilePositionMapper.insertNewPosition(mobilePosition) > 0;
}
@@ -703,7 +714,6 @@
streamProxyItem.setStatus(true);
String now = DateUtil.getNow();
streamProxyItem.setCreateTime(now);
- streamProxyItem.setCreateStamp(System.currentTimeMillis());
try {
if (streamProxyMapper.add(streamProxyItem) > 0) {
if (!StringUtils.isEmpty(streamProxyItem.getGbId())) {
@@ -838,7 +848,7 @@
streamPushMapper.addAll(streamPushItems);
// TODO 寰呬紭鍖�
for (int i = 0; i < streamPushItems.size(); i++) {
- int onlineResult = gbStreamMapper.setStatus(streamPushItems.get(i).getApp(), streamPushItems.get(i).getStream(), true);
+ int onlineResult = mediaOnline(streamPushItems.get(i).getApp(), streamPushItems.get(i).getStream());
if (onlineResult > 0) {
// 鍙戦�佷笂绾块�氱煡
eventPublisher.catalogEventPublishForStream(null, streamPushItems.get(i), CatalogEvent.ON);
@@ -846,11 +856,13 @@
}
}
+
+
@Override
public void updateMedia(StreamPushItem streamPushItem) {
streamPushMapper.del(streamPushItem.getApp(), streamPushItem.getStream());
streamPushMapper.add(streamPushItem);
- gbStreamMapper.setStatus(streamPushItem.getApp(), streamPushItem.getStream(), true);
+ mediaOffline(streamPushItem.getApp(), streamPushItem.getStream());
if(!StringUtils.isEmpty(streamPushItem.getGbId() )){
// 鏌ユ壘寮�鍚簡鍏ㄩ儴鐩存挱娴佸叡浜殑涓婄骇骞冲彴
@@ -877,13 +889,36 @@
}
@Override
+ public StreamPushItem getMedia(String app, String stream) {
+ return streamPushMapper.selectOne(app, stream);
+ }
+
+ @Override
public void clearMediaList() {
streamPushMapper.clear();
}
@Override
- public int mediaOutline(String app, String streamId) {
- return gbStreamMapper.setStatus(app, streamId, false);
+ public int mediaOffline(String app, String stream) {
+ GbStream gbStream = gbStreamMapper.selectOne(app, stream);
+ int result;
+ if ("proxy".equals(gbStream.getStreamType())) {
+ result = streamProxyMapper.updateStatus(app, stream, false);
+ }else {
+ result = streamPushMapper.updateStatus(app, stream, false);
+ }
+ return result;
+ }
+
+ public int mediaOnline(String app, String stream) {
+ GbStream gbStream = gbStreamMapper.selectOne(app, stream);
+ int result;
+ if ("proxy".equals(gbStream.getStreamType())) {
+ result = streamProxyMapper.updateStatus(app, stream, true);
+ }else {
+ result = streamPushMapper.updateStatus(app, stream, true);
+ }
+ return result;
}
@Override
@@ -993,7 +1028,7 @@
@Override
public int setDefaultCatalog(String platformId, String catalogId) {
- return platformMapper.setDefaultCatalog(platformId, catalogId);
+ return platformMapper.setDefaultCatalog(platformId, catalogId, DateUtil.getNow());
}
@Override
@@ -1106,7 +1141,14 @@
}
@Override
- public void updateChannelPotion(String deviceId, String channelId, double longitude, double latitude) {
- deviceChannelMapper.updatePotion(deviceId, channelId, longitude, latitude);
+ public void updateChannelPosition(DeviceChannel deviceChannel) {
+ if (deviceChannel.getChannelId().equals(deviceChannel.getDeviceId())) {
+ deviceChannel.setChannelId(null);
+ }
+ if (deviceChannel.getGpsTime() == null) {
+ deviceChannel.setGpsTime(DateUtil.getNow());
+ }
+
+ deviceChannelMapper.updatePosition(deviceChannel);
}
}
--
Gitblit v1.8.0