From d27164bf20154b6053ce61418b6275fdc512a0cc Mon Sep 17 00:00:00 2001
From: lawrencehj <1934378145@qq.com>
Date: 星期二, 13 四月 2021 10:06:36 +0800
Subject: [PATCH] 修正播放按钮失效问题
---
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java | 144 +++++++++++++++++++++++++++++++++++++++--------
1 files changed, 118 insertions(+), 26 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
index 071bf68..5d1cfc8 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
@@ -2,21 +2,21 @@
import java.util.*;
-import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
-import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
-import com.genersoft.iot.vmp.gb28181.bean.ParentPlatformCatch;
-import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyDto;
+import com.genersoft.iot.vmp.gb28181.bean.*;
+import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem;
+import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
-import com.genersoft.iot.vmp.gb28181.bean.MobilePosition;
import com.genersoft.iot.vmp.storager.dao.*;
-import com.genersoft.iot.vmp.vmanager.platform.bean.ChannelReduce;
+import com.genersoft.iot.vmp.vmanager.gb28181.platform.bean.ChannelReduce;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.stereotype.Component;
-import com.genersoft.iot.vmp.gb28181.bean.Device;
import com.genersoft.iot.vmp.storager.IVideoManagerStorager;
+import org.springframework.transaction.TransactionDefinition;
+import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Transactional;
/**
@@ -27,6 +27,11 @@
@SuppressWarnings("rawtypes")
@Component
public class VideoManagerStoragerImpl implements IVideoManagerStorager {
+ @Autowired
+ DataSourceTransactionManager dataSourceTransactionManager;
+
+ @Autowired
+ TransactionDefinition transactionDefinition;
@Autowired
private DeviceMapper deviceMapper;
@@ -44,12 +49,16 @@
private IRedisCatchStorage redisCatchStorage;
@Autowired
- private PatformChannelMapper patformChannelMapper;
+ private PlatformChannelMapper platformChannelMapper;
@Autowired
private StreamProxyMapper streamProxyMapper;
+ @Autowired
+ private StreamPushMapper streamPushMapper;
+ @Autowired
+ private GbStreamMapper gbStreamMapper;
/**
@@ -216,9 +225,10 @@
*/
@Override
public synchronized boolean outline(String deviceId) {
+ System.out.println("鏇存柊璁惧绂荤嚎: " + deviceId);
Device device = deviceMapper.getDeviceByDeviceId(deviceId);
+ if (device == null) return false;
device.setOnline(0);
- System.out.println("鏇存柊璁惧绂荤嚎");
return deviceMapper.update(device) > 0;
}
@@ -283,7 +293,7 @@
public boolean deleteParentPlatform(ParentPlatform parentPlatform) {
int result = platformMapper.delParentPlatform(parentPlatform);
// 鍒犻櫎鍏宠仈鐨勯�氶亾
- patformChannelMapper.cleanChannelForGB(parentPlatform.getServerGBId());
+ platformChannelMapper.cleanChannelForGB(parentPlatform.getServerGBId());
return result > 0;
}
@@ -333,7 +343,7 @@
}
List<String> deviceAndChannelList = new ArrayList<>(deviceAndChannels.keySet());
// 鏌ヨ褰撳墠宸茬粡瀛樺湪鐨�
- List<String> relatedPlatformchannels = patformChannelMapper.findChannelRelatedPlatform(platformId, deviceAndChannelList);
+ List<String> relatedPlatformchannels = platformChannelMapper.findChannelRelatedPlatform(platformId, deviceAndChannelList);
if (relatedPlatformchannels != null) {
deviceAndChannelList.removeAll(relatedPlatformchannels);
}
@@ -344,7 +354,7 @@
// 瀵瑰墿涓嬬殑鏁版嵁杩涜瀛樺偍
int result = 0;
if (channelReducesToAdd.size() > 0) {
- result = patformChannelMapper.addChannels(platformId, channelReducesToAdd);
+ result = platformChannelMapper.addChannels(platformId, channelReducesToAdd);
}
return result;
@@ -354,20 +364,20 @@
@Override
public int delChannelForGB(String platformId, List<ChannelReduce> channelReduces) {
- int result = patformChannelMapper.delChannelForGB(platformId, channelReduces);
+ int result = platformChannelMapper.delChannelForGB(platformId, channelReduces);
return result;
}
@Override
public DeviceChannel queryChannelInParentPlatform(String platformId, String channelId) {
- DeviceChannel channel = patformChannelMapper.queryChannelInParentPlatform(platformId, channelId);
+ DeviceChannel channel = platformChannelMapper.queryChannelInParentPlatform(platformId, channelId);
return channel;
}
@Override
public Device queryVideoDeviceByPlatformIdAndChannelId(String platformId, String channelId) {
- Device device = patformChannelMapper.queryVideoDeviceByPlatformIdAndChannelId(platformId, channelId);
+ Device device = platformChannelMapper.queryVideoDeviceByPlatformIdAndChannelId(platformId, channelId);
return device;
}
@@ -390,27 +400,56 @@
/**
* 鏂板浠g悊娴�
- * @param streamProxyDto
+ * @param streamProxyItem
* @return
*/
@Override
- public int addStreamProxy(StreamProxyDto streamProxyDto) {
- return streamProxyMapper.add(streamProxyDto);
+ public boolean addStreamProxy(StreamProxyItem streamProxyItem) {
+ TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
+ boolean result = false;
+ streamProxyItem.setStreamType("proxy");
+ streamProxyItem.setStatus(true);
+ try {
+ if (gbStreamMapper.add(streamProxyItem)<0 || streamProxyMapper.add(streamProxyItem) < 0) {
+ //浜嬪姟鍥炴粴
+ dataSourceTransactionManager.rollback(transactionStatus);
+ }
+ result = true;
+ dataSourceTransactionManager.commit(transactionStatus); //鎵嬪姩鎻愪氦
+ }catch (Exception e) {
+ dataSourceTransactionManager.rollback(transactionStatus);
+ }
+ return result;
}
/**
* 鏇存柊浠g悊娴�
- * @param streamProxyDto
+ * @param streamProxyItem
* @return
*/
@Override
- public int updateStreamProxy(StreamProxyDto streamProxyDto) {
- return streamProxyMapper.update(streamProxyDto);
+ public boolean updateStreamProxy(StreamProxyItem streamProxyItem) {
+ TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
+ boolean result = false;
+ streamProxyItem.setStreamType("proxy");
+ try {
+ if (gbStreamMapper.update(streamProxyItem)<0 || streamProxyMapper.update(streamProxyItem) < 0) {
+ //浜嬪姟鍥炴粴
+ dataSourceTransactionManager.rollback(transactionStatus);
+ }
+ dataSourceTransactionManager.commit(transactionStatus); //鎵嬪姩鎻愪氦
+ result = true;
+ }catch (Exception e) {
+ e.printStackTrace();
+ dataSourceTransactionManager.rollback(transactionStatus);
+ }
+ return result;
}
/**
* 绉婚櫎浠g悊娴�
- * @param id
+ * @param app
+ * @param stream
* @return
*/
@Override
@@ -424,7 +463,7 @@
* @return
*/
@Override
- public List<StreamProxyDto> getStreamProxyListForEnable(boolean enable) {
+ public List<StreamProxyItem> getStreamProxyListForEnable(boolean enable) {
return streamProxyMapper.selectForEnable(enable);
}
@@ -435,12 +474,32 @@
* @return
*/
@Override
- public PageInfo<StreamProxyDto> queryStreamProxyList(Integer page, Integer count) {
+ public PageInfo<StreamProxyItem> queryStreamProxyList(Integer page, Integer count) {
PageHelper.startPage(page, count);
- List<StreamProxyDto> all = streamProxyMapper.selectAll();
+ List<StreamProxyItem> all = streamProxyMapper.selectAll();
return new PageInfo<>(all);
}
+ /**
+ * 鏍规嵁鍥芥爣ID鑾峰彇骞冲彴鍏宠仈鐨勭洿鎾祦
+ * @param platformId
+ * @param gbId
+ * @return
+ */
+ @Override
+ public GbStream queryStreamInParentPlatform(String platformId, String gbId) {
+ return gbStreamMapper.queryStreamInPlatform(platformId, gbId);
+ }
+
+ /**
+ * 鑾峰彇骞冲彴鍏宠仈鐨勭洿鎾祦
+ * @param platformId
+ * @return
+ */
+ @Override
+ public List<GbStream> queryGbStreamListInPlatform(String platformId) {
+ return gbStreamMapper.queryGbStreamListInPlatform(platformId);
+ }
/**
* 鎸夌収鏄痑pp鍜宻tream鑾峰彇浠g悊娴�
@@ -449,7 +508,40 @@
* @return
*/
@Override
- public StreamProxyDto queryStreamProxy(String app, String stream){
+ public StreamProxyItem queryStreamProxy(String app, String stream){
return streamProxyMapper.selectOne(app, stream);
}
+
+ @Override
+ public void updateMediaList(List<StreamPushItem> streamPushItems) {
+ if (streamPushItems == null || streamPushItems.size() == 0) return;
+ System.out.printf("updateMediaList: " + streamPushItems.size());
+ streamPushMapper.addAll(streamPushItems);
+ // TODO 寰呬紭鍖�
+ for (int i = 0; i < streamPushItems.size(); i++) {
+ gbStreamMapper.setStatus(streamPushItems.get(i).getApp(), streamPushItems.get(i).getStream(), true);
+ }
+ }
+
+ @Override
+ public void updateMedia(StreamPushItem streamPushItem) {
+ streamPushMapper.del(streamPushItem.getApp(), streamPushItem.getStream());
+ streamPushMapper.add(streamPushItem);
+ gbStreamMapper.setStatus(streamPushItem.getApp(), streamPushItem.getStream(), true);
+ }
+
+ @Override
+ public void removeMedia(String app, String stream) {
+ streamPushMapper.del(app, stream);
+ }
+
+ @Override
+ public void clearMediaList() {
+ streamPushMapper.clear();
+ }
+
+ @Override
+ public void mediaOutline(String app, String streamId) {
+ gbStreamMapper.setStatus(app, streamId, false);
+ }
}
--
Gitblit v1.8.0