From e48fa711a3664bece9b3e58840a75fe7c05bc47c Mon Sep 17 00:00:00 2001
From: panlinlin <648540858@qq.com>
Date: 星期六, 08 五月 2021 17:14:05 +0800
Subject: [PATCH] 添加截图(快照)功能

---
 src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java |  286 ++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 230 insertions(+), 56 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java b/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java
index 2680922..5d838c5 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java
@@ -1,34 +1,20 @@
 package com.genersoft.iot.vmp.storager;
 
 import java.util.List;
-import java.util.Map;
 
-import com.alibaba.fastjson.JSONObject;
-import com.genersoft.iot.vmp.common.PageResult;
-import com.genersoft.iot.vmp.common.StreamInfo;
-import com.genersoft.iot.vmp.conf.MediaServerConfig;
-import com.genersoft.iot.vmp.gb28181.bean.Device;
-import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
+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.vmanager.gb28181.platform.bean.ChannelReduce;
+import com.github.pagehelper.PageInfo;
 
 /**    
  * @Description:瑙嗛璁惧鏁版嵁瀛樺偍鎺ュ彛
  * @author: swwheihei
  * @date:   2020骞�5鏈�6鏃� 涓嬪崍2:14:31     
  */
+@SuppressWarnings("rawtypes")
 public interface IVideoManagerStorager {
-
-	/**
-	 * 鏇存柊娴佸獟浣撲俊鎭�
-	 * @param mediaServerConfig
-	 * @return
-	 */
-	public boolean updateMediaInfo(MediaServerConfig mediaServerConfig);
-
-	/**
-	 * 鑾峰彇娴佸獟浣撲俊鎭�
-	 * @return
-	 */
-	public MediaServerConfig getMediaInfo();
 
 	/**   
 	 * 鏍规嵁璁惧ID鍒ゆ柇璁惧鏄惁瀛樺湪
@@ -61,6 +47,21 @@
 	 * @param channel 閫氶亾
 	 */
 	public void updateChannel(String deviceId, DeviceChannel channel);
+
+	/**
+	 * 寮�濮嬫挱鏀�
+	 * @param deviceId 璁惧id
+	 * @param channelId 閫氶亾ID
+	 * @param streamId 娴佸湴鍧�
+	 */
+	public void startPlay(String deviceId, String channelId, String streamId);
+
+	/**
+	 * 鍋滄鎾斁
+	 * @param deviceId 璁惧id
+	 * @param channelId 閫氶亾ID
+	 */
+	public void stopPlay(String deviceId, String channelId);
 	
 	/**   
 	 * 鑾峰彇璁惧
@@ -78,7 +79,7 @@
 	 * @param count 姣忛〉鏁伴噺
 	 * @return
 	 */
-	public PageResult queryChannelsByDeviceId(String deviceId, String query, Boolean hasSubChannel, String online, int page, int count);
+	public PageInfo queryChannelsByDeviceId(String deviceId, String query, Boolean hasSubChannel, Boolean online, int page, int count);
 
 	/**
 	 * 鑾峰彇鏌愪釜璁惧鐨勯�氶亾鍒楄〃
@@ -87,6 +88,7 @@
 	 * @return
 	 */
 	public List<DeviceChannel> queryChannelsByDeviceId(String deviceId);
+
 	/**
 	 * 鑾峰彇鏌愪釜璁惧鐨勯�氶亾
 	 * @param deviceId 璁惧ID
@@ -94,21 +96,20 @@
 	 */
 	public DeviceChannel queryChannel(String deviceId, String channelId);
 
-	/**   
+	/**
 	 * 鑾峰彇澶氫釜璁惧
-	 * 
-	 * @param deviceIds 璁惧ID鏁扮粍
+	 * @param page 褰撳墠椤垫暟
+	 * @param count 姣忛〉鏁伴噺
 	 * @return List<Device> 璁惧瀵硅薄鏁扮粍
 	 */
-	public PageResult<Device> queryVideoDeviceList(String[] deviceIds, int page, int count);
+	public PageInfo<Device> queryVideoDeviceList(int page, int count);
 
 	/**
 	 * 鑾峰彇澶氫釜璁惧
 	 *
-	 * @param deviceIds 璁惧ID鏁扮粍
 	 * @return List<Device> 璁惧瀵硅薄鏁扮粍
 	 */
-	public List<Device> queryVideoDeviceList(String[] deviceIds);
+	public List<Device> queryVideoDeviceList();
 
 	/**   
 	 * 鍒犻櫎璁惧
@@ -135,26 +136,12 @@
 	public boolean outline(String deviceId);
 
 	/**
-	 * 寮�濮嬫挱鏀炬椂灏嗘祦瀛樺叆
+	 * 鏇存柊鎵�鏈夎澶囩绾�
 	 *
-	 * @param stream 娴佷俊鎭�
-	 * @return
+	 * @return true锛氭洿鏂版垚鍔�  false锛氭洿鏂板け璐�
 	 */
-	public boolean startPlay(StreamInfo stream);
+	public boolean outlineForAll();
 
-	/**
-	 * 鍋滄鎾斁鏃跺垹闄�
-	 *
-	 * @return
-	 */
-	public boolean stopPlay(StreamInfo streamInfo);
-
-	/**
-	 * 鏌ユ壘瑙嗛娴�
-	 *
-	 * @return
-	 */
-	public StreamInfo queryPlay(StreamInfo streamInfo);
 
 	/**
 	 * 鏌ヨ瀛愯澶�
@@ -165,12 +152,8 @@
 	 * @param count
 	 * @return
 	 */
-    PageResult querySubChannels(String deviceId, String channelId, String query, Boolean hasSubChannel, String online, int page, int count);
+	PageInfo querySubChannels(String deviceId, String channelId, String query, Boolean hasSubChannel, String online, int page, int count);
 
-	/**
-	 * 鏇存柊缂撳瓨
-	 */
-	public void updateCatch();
 
 	/**
 	 * 娓呯┖閫氶亾
@@ -178,17 +161,208 @@
 	 */
 	void cleanChannelsForDevice(String deviceId);
 
-	StreamInfo queryPlayBySSRC(String ssrc);
 
-	StreamInfo queryPlayByDevice(String deviceId, String code);
+	/**
+	 * 鏇存柊涓婄骇骞冲彴
+	 * @param parentPlatform
+	 */
+	boolean updateParentPlatform(ParentPlatform parentPlatform);
 
-	Map<String, StreamInfo> queryPlayByDeviceId(String deviceId);
 
-	boolean startPlayBlack(StreamInfo streamInfo);
+	/**
+	 * 娣诲姞涓婄骇骞冲彴
+	 * @param parentPlatform
+	 */
+	boolean addParentPlatform(ParentPlatform parentPlatform);
 
-	boolean stopPlayBlack(StreamInfo streamInfo);
+	/**
+	 * 鍒犻櫎涓婄骇骞冲彴
+	 * @param parentPlatform
+	 */
+	boolean deleteParentPlatform(ParentPlatform parentPlatform);
 
-	StreamInfo queryPlayBlackByDevice(String deviceId, String channelId);
 
-	StreamInfo queryPlayBlackBySSRC(String ssrc);
+	/**
+	 * 鍒嗛〉鑾峰彇涓婄骇骞冲彴
+	 * @param page
+	 * @param count
+	 * @return
+	 */
+	PageInfo<ParentPlatform> queryParentPlatformList(int page, int count);
+
+	/**
+	 * 鑾峰彇鎵�鏈夊凡鍚敤鐨勫钩鍙�
+	 * @return
+	 */
+	List<ParentPlatform> queryEnableParentPlatformList(boolean enable);
+
+	/**
+	 * 鑾峰彇涓婄骇骞冲彴
+	 * @param platformGbId
+	 * @return
+	 */
+	ParentPlatform queryParentPlatByServerGBId(String platformGbId);
+
+	/**
+	 * 鎵�鏈夊钩鍙扮绾�
+	 */
+	void outlineForAllParentPlatform();
+
+	/**
+	 * 鏌ヨ閫氶亾淇℃伅锛屼笉鍖哄垎璁惧(宸插叧鑱斿钩鍙版垨鍏ㄩ儴)
+	 */
+	PageInfo<ChannelReduce> queryAllChannelList(int page, int count, String query, Boolean online, Boolean channelType, String platformId, Boolean inPlatform);
+
+	/**
+	 * 鏌ヨ璁惧鐨勯�氶亾淇℃伅
+	 */
+	List<ChannelReduce> queryChannelListInParentPlatform(String platformId);
+
+
+	/**
+	 * 鏇存柊涓婄骇骞冲彴鐨勯�氶亾淇℃伅
+	 * @param platformId
+	 * @param channelReduces
+	 * @return
+	 */
+	int updateChannelForGB(String platformId, List<ChannelReduce> channelReduces);
+
+	/**
+	 *  绉婚櫎涓婄骇骞冲彴鐨勯�氶亾淇℃伅
+	 * @param platformId
+	 * @param channelReduces
+	 * @return
+	 */
+	int delChannelForGB(String platformId, List<ChannelReduce> channelReduces);
+
+
+    DeviceChannel queryChannelInParentPlatform(String platformId, String channelId);
+
+    Device queryVideoDeviceByPlatformIdAndChannelId(String platformId, String channelId);
+
+
+	/**
+	 * 娣诲姞Mobile Position璁惧绉诲姩浣嶇疆
+	 * @param mobilePosition
+	 * @return
+	 */
+	public boolean insertMobilePosition(MobilePosition mobilePosition);
+
+	/**
+	 * 鏌ヨ绉诲姩浣嶇疆杞ㄨ抗
+	 * @param deviceId
+	 * @param startTime
+	 * @param endTime
+	 */
+	public List<MobilePosition> queryMobilePositions(String deviceId, String startTime, String endTime);
+
+	/**
+	 * 鏌ヨ鏈�鏂扮Щ鍔ㄤ綅缃�
+	 * @param deviceId
+	 */
+	public MobilePosition queryLatestPosition(String deviceId);
+
+	/**
+	 * 鍒犻櫎鎸囧畾璁惧鐨勬墍鏈夌Щ鍔ㄤ綅缃�
+	 * @param deviceId
+	 */
+	public int clearMobilePositionsByDeviceId(String deviceId);
+
+	/**
+	 * 鏂板浠g悊娴�
+	 * @param streamProxyDto
+	 * @return
+	 */
+	public boolean addStreamProxy(StreamProxyItem streamProxyDto);
+
+	/**
+	 * 鏇存柊浠g悊娴�
+	 * @param streamProxyDto
+	 * @return
+	 */
+	public boolean updateStreamProxy(StreamProxyItem streamProxyDto);
+
+	/**
+	 * 绉婚櫎浠g悊娴�
+	 * @param app
+	 * @param stream
+	 * @return
+	 */
+	public int deleteStreamProxy(String app, String stream);
+
+	/**
+	 * 鎸夌収鏄惁鍚敤鑾峰彇浠g悊娴�
+	 * @param enable
+	 * @return
+	 */
+	public List<StreamProxyItem> getStreamProxyListForEnable(boolean enable);
+
+	/**
+	 * 鎸夌収鏄痑pp鍜宻tream鑾峰彇浠g悊娴�
+	 * @param app
+	 * @param stream
+	 * @return
+	 */
+	public StreamProxyItem queryStreamProxy(String app, String stream);
+
+	/**
+	 * 鑾峰彇浠g悊娴�
+	 * @param page
+	 * @param count
+	 * @return
+	 */
+	PageInfo<StreamProxyItem> queryStreamProxyList(Integer page, Integer count);
+
+	/**
+	 * 鏍规嵁鍥芥爣ID鑾峰彇骞冲彴鍏宠仈鐨勭洿鎾祦
+	 * @param platformId
+	 * @param channelId
+	 * @return
+	 */
+	GbStream queryStreamInParentPlatform(String platformId, String channelId);
+
+	/**
+	 * 鑾峰彇骞冲彴鍏宠仈鐨勭洿鎾祦
+	 * @param platformId
+	 * @return
+	 */
+	List<GbStream> queryGbStreamListInPlatform(String platformId);
+
+	/**
+	 * 鎵归噺鏇存柊鎺ㄦ祦鍒楄〃
+	 * @param streamPushItems
+	 */
+	void updateMediaList(List<StreamPushItem> streamPushItems);
+
+	/**
+	 * 鏇存柊鍗曚釜鎺ㄦ祦
+	 * @param streamPushItem
+	 */
+	void updateMedia(StreamPushItem streamPushItem);
+
+	/**
+	 * 绉婚櫎鍗曚釜鎺ㄦ祦
+	 * @param app
+	 * @param stream
+	 */
+	void removeMedia(String app, String stream);
+
+
+	/**
+	 * 娓呯┖鎺ㄦ祦鍒楄〃
+	 */
+	void clearMediaList();
+
+	/**
+	 * 璁剧疆娴佺绾�
+	 * @param app
+	 * @param streamId
+	 */
+	void mediaOutline(String app, String streamId);
+
+	/**
+	 * 璁剧疆骞冲彴鍦ㄧ嚎/绂荤嚎
+	 * @param online
+	 */
+	void updateParentPlatformStatus(String platformGbID, boolean online);
 }

--
Gitblit v1.8.0