From baeffa4311622a8f087fd20b5fe47ed9d6fccf41 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期六, 10 八月 2024 20:59:52 +0800
Subject: [PATCH] Merge pull request #1559 from koisi-io/fix

---
 src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java |   51 ++++++++++++++++++++++++++++++++-------------------
 1 files changed, 32 insertions(+), 19 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java
index c849358..18de78a 100755
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java
@@ -26,6 +26,7 @@
 import com.genersoft.iot.vmp.storager.dao.*;
 import com.genersoft.iot.vmp.utils.DateUtil;
 import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo;
+import com.genersoft.iot.vmp.vmanager.bean.StreamContent;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import org.slf4j.Logger;
@@ -126,18 +127,13 @@
             streamPushMapper.update(transform);
             gbStreamMapper.updateMediaServer(event.getApp(), event.getStream(), event.getMediaServer().getId());
         }
-        // TODO 鐩稿叧鐨勪簨浠惰嚜琛岀鐞嗭紝涓嶉渶瑕佸啓鍏LMMediaListManager
-//        ChannelOnlineEvent channelOnlineEventLister = getChannelOnlineEventLister(transform.getApp(), transform.getStream());
-//        if ( channelOnlineEventLister != null)  {
-//            try {
-//                channelOnlineEventLister.run(transform.getApp(), transform.getStream(), transform.getServerId());;
-//            } catch (ParseException e) {
-//                logger.error("addPush: ", e);
-//            }
-//            removedChannelOnlineEventLister(transform.getApp(), transform.getStream());
-//        }
         // 鍐椾綑鏁版嵁锛岃嚜宸辩郴缁熶腑鑷敤
-        redisCatchStorage.addPushListItem(event.getApp(), event.getStream(), event);
+        if (!"broadcast".equals(event.getApp()) && !"talk".equals(event.getApp())) {
+            StreamInfo streamInfo = mediaServerService.getStreamInfoByAppAndStream(
+                    event.getMediaServer(), event.getApp(), event.getStream(), event.getMediaInfo(), event.getCallId());
+            event.getHookParam().setStreamInfo(new StreamContent(streamInfo));
+            redisCatchStorage.addPushListItem(event.getApp(), event.getStream(), event);
+        }
 
         // 鍙戦�佹祦鍙樺寲redis娑堟伅
         JSONObject jsonObject = new JSONObject();
@@ -217,7 +213,7 @@
         streamPushItem.setStream(item.getStream());
         streamPushItem.setAliveSecond(item.getAliveSecond());
         streamPushItem.setOriginSock(item.getOriginSock());
-        streamPushItem.setTotalReaderCount(item.getTotalReaderCount() + "");
+        streamPushItem.setTotalReaderCount(item.getTotalReaderCount());
         streamPushItem.setOriginType(item.getOriginType());
         streamPushItem.setOriginTypeStr(item.getOriginTypeStr());
         streamPushItem.setOriginUrl(item.getOriginUrl());
@@ -274,19 +270,19 @@
     }
 
     @Override
-    public boolean stop(String app, String streamId) {
-        logger.info("[鎺ㄦ祦 ] 鍋滄娴侊細 {}/{}", app, streamId);
-        StreamPushItem streamPushItem = streamPushMapper.selectOne(app, streamId);
+    public boolean stop(String app, String stream) {
+        logger.info("[鎺ㄦ祦 ] 鍋滄娴侊細 {}/{}", app, stream);
+        StreamPushItem streamPushItem = streamPushMapper.selectOne(app, stream);
         if (streamPushItem != null) {
             gbStreamService.sendCatalogMsg(streamPushItem, CatalogEvent.DEL);
         }
 
-        platformGbStreamMapper.delByAppAndStream(app, streamId);
-        gbStreamMapper.del(app, streamId);
-        int delStream = streamPushMapper.del(app, streamId);
+        platformGbStreamMapper.delByAppAndStream(app, stream);
+        gbStreamMapper.del(app, stream);
+        int delStream = streamPushMapper.del(app, stream);
         if (delStream > 0) {
             MediaServer mediaServerItem = mediaServerService.getOne(streamPushItem.getMediaServerId());
-            mediaServerService.closeStreams(mediaServerItem,app, streamId);
+            mediaServerService.closeStreams(mediaServerItem,app, stream);
         }
         return true;
     }
@@ -633,4 +629,21 @@
     public Map<String, StreamPushItem> getAllAppAndStreamMap() {
         return streamPushMapper.getAllAppAndStreamMap();
     }
+
+    @Override
+    public void updatePush(OnStreamChangedHookParam param) {
+        StreamPushItem transform = transform(param);
+        StreamPushItem pushInDb = getPush(param.getApp(), param.getStream());
+        transform.setPushIng(param.isRegist());
+        transform.setUpdateTime(DateUtil.getNow());
+        transform.setPushTime(DateUtil.getNow());
+        transform.setSelf(userSetting.getServerId().equals(param.getSeverId()));
+        if (pushInDb == null) {
+            transform.setCreateTime(DateUtil.getNow());
+            streamPushMapper.add(transform);
+        }else {
+            streamPushMapper.update(transform);
+            gbStreamMapper.updateMediaServer(param.getApp(), param.getStream(), param.getMediaServerId());
+        }
+    }
 }

--
Gitblit v1.8.0