| 
					
				 | 
			
			
				@@ -2,9 +2,7 @@ package com.genersoft.iot.vmp.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.math.BigDecimal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.math.RoundingMode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.Objects; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.UUID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import javax.sip.ResponseEvent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -659,6 +657,53 @@ public class PlayServiceImpl implements IPlayService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public void zlmServerOnline(String mediaServerId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 似乎没啥需要做的 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // TODO 查找之前的点播,流如果不存在则给下级发送bye 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        MediaServerItem mediaServerItem = mediaServerService.getOne(mediaServerId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        zlmresTfulUtils.getMediaList(mediaServerItem, (mediaList ->{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            Integer code = mediaList.getInteger("code"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            if (code == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                JSONArray data = mediaList.getJSONArray("data"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                if (data == null || data.size() == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    zlmServerOffline(mediaServerId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    Map<String, JSONObject> mediaListMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    for (int i = 0; i < data.size(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                        JSONObject json = data.getJSONObject(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                        String app = json.getString("app"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                        if ("rtp".equals(app)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                            String stream = json.getString("stream"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                            if (mediaListMap.get(stream) != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                                continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                            mediaListMap.put(stream, json); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                            // 处理正在观看的国标设备 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                            List<SsrcTransaction> ssrcTransactions = streamSession.getSsrcTransactionForAll(null, null, null, stream); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                            if (ssrcTransactions.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                                for (SsrcTransaction ssrcTransaction : ssrcTransactions) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                                    if(ssrcTransaction.getMediaServerId().equals(mediaServerId)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                                        cmder.streamByeCmd(ssrcTransaction.getDeviceId(), ssrcTransaction.getChannelId(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                                                ssrcTransaction.getStream(), null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    if (mediaListMap.size() > 0 ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                        // 处理正在向上推流的上级平台 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                        List<SendRtpItem> sendRtpItems = redisCatchStorage.querySendRTPServer(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                        if (sendRtpItems.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                            for (SendRtpItem sendRtpItem : sendRtpItems) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                                if (sendRtpItem.getMediaServerId().equals(mediaServerId)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                                    if (mediaListMap.get(sendRtpItem.getStreamId()) == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                                        ParentPlatform platform = storager.queryParentPlatByServerGBId(sendRtpItem.getPlatformId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                                        sipCommanderFroPlatform.streamByeCmd(platform, sendRtpItem.getCallId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        })); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |