From 1af77ab5f7c11a4b3d59c1989b51b9fca29679ce Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 18 十月 2022 22:18:49 +0800
Subject: [PATCH] Merge pull request #645 from IKangXu/wvp-28181-2.0

---
 src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java |  100 +++++++------------------------------------------
 1 files changed, 15 insertions(+), 85 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 e8e0e02..79edcf8 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
@@ -2,6 +2,7 @@
 
 import com.genersoft.iot.vmp.common.StreamInfo;
 import com.genersoft.iot.vmp.conf.SipConfig;
+import com.genersoft.iot.vmp.conf.UserSetting;
 import com.genersoft.iot.vmp.gb28181.bean.*;
 import com.genersoft.iot.vmp.gb28181.event.EventPublisher;
 import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent;
@@ -84,6 +85,9 @@
     private GbStreamMapper gbStreamMapper;
 
 	@Autowired
+    private UserSetting userSetting;
+
+	@Autowired
     private PlatformCatalogMapper catalogMapper;
 
 	@Autowired
@@ -111,11 +115,11 @@
 		if (CollectionUtils.isEmpty(deviceChannelList)) {
 			return false;
 		}
-		List<DeviceChannel> allChannelInPlay = deviceChannelMapper.getAllChannelInPlay();
-		Map<String,DeviceChannel> allChannelMapInPlay = new ConcurrentHashMap<>();
-		if (allChannelInPlay.size() > 0) {
-			for (DeviceChannel deviceChannel : allChannelInPlay) {
-				allChannelMapInPlay.put(deviceChannel.getChannelId(), deviceChannel);
+		List<DeviceChannel> allChannels = deviceChannelMapper.queryAllChannels(deviceId);
+		Map<String,DeviceChannel> allChannelMap = new ConcurrentHashMap<>();
+		if (allChannels.size() > 0) {
+			for (DeviceChannel deviceChannel : allChannels) {
+				allChannelMap.put(deviceChannel.getChannelId(), deviceChannel);
 			}
 		}
 		TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
@@ -123,14 +127,15 @@
 		List<DeviceChannel> channels = new ArrayList<>();
 		StringBuilder stringBuilder = new StringBuilder();
 		Map<String, Integer> subContMap = new HashMap<>();
-		if (deviceChannelList.size() > 1) {
+		if (deviceChannelList.size() > 0) {
 			// 鏁版嵁鍘婚噸
 			Set<String> gbIdSet = new HashSet<>();
 			for (DeviceChannel deviceChannel : deviceChannelList) {
 				if (!gbIdSet.contains(deviceChannel.getChannelId())) {
 					gbIdSet.add(deviceChannel.getChannelId());
-					if (allChannelMapInPlay.containsKey(deviceChannel.getChannelId())) {
-						deviceChannel.setStreamId(allChannelMapInPlay.get(deviceChannel.getChannelId()).getStreamId());
+					if (allChannelMap.containsKey(deviceChannel.getChannelId())) {
+						deviceChannel.setStreamId(allChannelMap.get(deviceChannel.getChannelId()).getStreamId());
+						deviceChannel.setHasAudio(allChannelMap.get(deviceChannel.getChannelId()).isHasAudio());
 					}
 					channels.add(deviceChannel);
 					if (!ObjectUtils.isEmpty(deviceChannel.getParentId())) {
@@ -153,8 +158,6 @@
 				}
 			}
 
-		}else {
-			channels = deviceChannelList;
 		}
 		if (stringBuilder.length() > 0) {
 			logger.info("[鐩綍鏌ヨ]鏀跺埌鐨勬暟鎹瓨鍦ㄩ噸澶嶏細 {}" , stringBuilder);
@@ -294,79 +297,6 @@
 
 		List<Device> deviceList =  deviceMapper.getDevices();
 		return deviceList;
-	}
-
-	/**
-	 * 鍒犻櫎璁惧
-	 *
-	 * @param deviceId 璁惧ID
-	 * @return true锛氬垹闄ゆ垚鍔�  false锛氬垹闄ゅけ璐�
-	 */
-	@Override
-	public boolean delete(String deviceId) {
-		TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
-		boolean result = false;
-		try {
-			platformChannelMapper.delChannelForDeviceId(deviceId);
-			deviceChannelMapper.cleanChannelsByDeviceId(deviceId);
-			if ( deviceMapper.del(deviceId) < 0 ) {
-				//浜嬪姟鍥炴粴
-				dataSourceTransactionManager.rollback(transactionStatus);
-			}
-			result = true;
-			dataSourceTransactionManager.commit(transactionStatus);     //鎵嬪姩鎻愪氦
-		}catch (Exception e) {
-			dataSourceTransactionManager.rollback(transactionStatus);
-		}
-		return result;
-	}
-
-	/**
-	 * 鏇存柊璁惧鍦ㄧ嚎
-	 *
-	 * @param deviceId 璁惧ID
-	 * @return true锛氭洿鏂版垚鍔�  false锛氭洿鏂板け璐�
-	 */
-	@Override
-	public synchronized boolean online(String deviceId) {
-		Device device = deviceMapper.getDeviceByDeviceId(deviceId);
-		if (device == null) {
-			return false;
-		}
-		device.setOnline(1);
-		logger.info("鏇存柊璁惧鍦ㄧ嚎: " + deviceId);
-		redisCatchStorage.updateDevice(device);
-		return deviceMapper.update(device) > 0;
-	}
-
-	/**
-	 * 鏇存柊璁惧绂荤嚎
-	 *
-	 * @param deviceId 璁惧ID
-	 * @return true锛氭洿鏂版垚鍔�  false锛氭洿鏂板け璐�
-	 */
-	@Override
-	public synchronized boolean outline(String deviceId) {
-		logger.info("鏇存柊璁惧绂荤嚎: " + deviceId);
-		Device device = deviceMapper.getDeviceByDeviceId(deviceId);
-		if (device == null) {
-			return false;
-		}
-		device.setOnline(0);
-		redisCatchStorage.updateDevice(device);
-		return deviceMapper.update(device) > 0;
-	}
-
-	/**
-	 * 鏇存柊鎵�鏈夎澶囩绾�
-	 *
-	 * @return true锛氭洿鏂版垚鍔�  false锛氭洿鏂板け璐�
-	 */
-	@Override
-	public synchronized boolean outlineForAll() {
-		logger.info("鏇存柊鎵�鏈夎澶囩绾�");
-		int result = deviceMapper.outlineForAll();
-		return result > 0;
 	}
 
 	/**
@@ -615,7 +545,7 @@
 	 */
 	@Override
 	public List<DeviceChannel> queryGbStreamListInPlatform(String platformId) {
-		return gbStreamMapper.queryGbStreamListInPlatform(platformId);
+		return gbStreamMapper.queryGbStreamListInPlatform(platformId, userSetting.isUsePushingAsStatus());
 	}
 
 	/**
@@ -696,7 +626,7 @@
 			return 0;
 		}
 		if (platform.getTreeType().equals(TreeType.BUSINESS_GROUP)) {
-			if (platformCatalog.getPlatformId().equals(platformCatalog.getParentId())) {
+			if (platform.getDeviceGBId().equals(platformCatalog.getParentId())) {
 				// 绗竴灞傝妭鐐�
 				platformCatalog.setBusinessGroupId(platformCatalog.getId());
 				platformCatalog.setParentId(platform.getDeviceGBId());

--
Gitblit v1.8.0