From f4aa3e0ee8c988c0d7535ad1c76e68e23e400194 Mon Sep 17 00:00:00 2001
From: 648540858 <18010473990@163.com>
Date: 星期日, 08 八月 2021 09:18:45 +0800
Subject: [PATCH] 修复自动点播

---
 src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java |   59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 58 insertions(+), 1 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 7e206bf..89c1d6c 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
@@ -1,10 +1,11 @@
 package com.genersoft.iot.vmp.storager.impl;
 
+import java.text.SimpleDateFormat;
 import java.util.*;
 
-import com.genersoft.iot.vmp.common.StreamInfo;
 import com.genersoft.iot.vmp.gb28181.bean.*;
 import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager;
+import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
 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;
@@ -70,6 +71,11 @@
 	@Autowired
     private VideoStreamSessionManager streamSession;
 
+	@Autowired
+    private MediaServerMapper mediaServerMapper;
+
+	private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
 
 	/**
 	 * 鏍规嵁璁惧ID鍒ゆ柇璁惧鏄惁瀛樺湪
@@ -103,8 +109,11 @@
 	 */
 	@Override
 	public synchronized boolean updateDevice(Device device) {
+		String now = this.format.format(System.currentTimeMillis());
+		device.setUpdateTime(now);
 		Device deviceByDeviceId = deviceMapper.getDeviceByDeviceId(device.getDeviceId());
 		if (deviceByDeviceId == null) {
+			device.setCreateTime(now);
 			return deviceMapper.add(device) > 0;
 		}else {
 			return deviceMapper.update(device) > 0;
@@ -117,8 +126,11 @@
 		String channelId = channel.getChannelId();
 		channel.setDeviceId(deviceId);
 		channel.setStreamId(streamSession.getStreamId(deviceId, channel.getChannelId()));
+		String now = this.format.format(System.currentTimeMillis());
+		channel.setUpdateTime(now);
 		DeviceChannel deviceChannel = deviceChannelMapper.queryChannel(deviceId, channelId);
 		if (deviceChannel == null) {
+			channel.setCreateTime(now);
 			deviceChannelMapper.add(channel);
 		}else {
 			deviceChannelMapper.update(channel);
@@ -254,6 +266,18 @@
 		if (device == null) return false;
 		device.setOnline(0);
 		return deviceMapper.update(device) > 0;
+	}
+
+	/**
+	 * 鏇存柊鎵�鏈夎澶囩绾�
+	 *
+	 * @return true锛氭洿鏂版垚鍔�  false锛氭洿鏂板け璐�
+	 */
+	@Override
+	public synchronized boolean outlineForAll() {
+		logger.info("鏇存柊鎵�鏈夎澶囩绾�");
+		int result = deviceMapper.outlineForAll();
+		return result > 0;
 	}
 
 	/**
@@ -439,6 +463,8 @@
 		boolean result = false;
 		streamProxyItem.setStreamType("proxy");
 		streamProxyItem.setStatus(true);
+		String now = this.format.format(System.currentTimeMillis());
+		streamProxyItem.setCreateTime(now);
 		try {
 			if (gbStreamMapper.add(streamProxyItem)<0 || streamProxyMapper.add(streamProxyItem) < 0) {
 				//浜嬪姟鍥炴粴
@@ -447,6 +473,7 @@
 			result = true;
 			dataSourceTransactionManager.commit(transactionStatus);     //鎵嬪姩鎻愪氦
 		}catch (Exception e) {
+			logger.error("鍚戞暟鎹簱娣诲姞娴佷唬鐞嗗け璐ワ細", e);
 			dataSourceTransactionManager.rollback(transactionStatus);
 		}
 		return result;
@@ -575,5 +602,35 @@
 		gbStreamMapper.setStatus(app, streamId, false);
 	}
 
+	@Override
+	public void updateParentPlatformStatus(String platformGbID, boolean online) {
+		platformMapper.updateParentPlatformStatus(platformGbID, online);
+	}
 
+	@Override
+	public void updateMediaServer(MediaServerItem mediaServerItem) {
+		String now = this.format.format(System.currentTimeMillis());
+		mediaServerItem.setUpdateTime(now);
+		if (mediaServerMapper.queryOne(mediaServerItem.getId()) != null) {
+			mediaServerMapper.update(mediaServerItem);
+		}else {
+			mediaServerItem.setCreateTime(now);
+			mediaServerMapper.add(mediaServerItem);
+		}
+	}
+
+	@Override
+	public List<StreamProxyItem> getStreamProxyListForEnableInMediaServer(String id, boolean enable) {
+		return streamProxyMapper.selectForEnableInMediaServer(id, enable);
+	}
+
+	@Override
+	public Device queryVideoDeviceByChannelId(String channelId) {
+		Device result = null;
+		List<DeviceChannel> channelList = deviceChannelMapper.queryChannelByChannelId(channelId);
+		if (channelList.size() == 1) {
+			result = deviceMapper.getDeviceByDeviceId(channelList.get(0).getDeviceId());
+		}
+		return result;
+	}
 }

--
Gitblit v1.8.0