From bc1b8098a2d042bd94038128f3e83c604b0418c9 Mon Sep 17 00:00:00 2001
From: 648540858 <456panlinlin>
Date: 星期一, 21 三月 2022 16:58:42 +0800
Subject: [PATCH] 修身颠簸与录像回放redis前缀重复的问题

---
 src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java |   28 +++++++++++++++++++++++-----
 1 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java
index a6c30cf..fa4aa35 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java
@@ -122,25 +122,43 @@
                 transform.setName(thirdPartyGB.getName());
             }
         }
-        storager.updateMedia(transform);
         if (!StringUtils.isEmpty(transform.getGbId())) {
             // 濡傛灉杩欎釜鍥芥爣ID宸茬粡缁欎簡鍏朵粬鎺ㄦ祦涓旀祦宸茬绾匡紝鍒欑Щ闄ゅ叾浠栨帹娴�
             List<GbStream> gbStreams = gbStreamMapper.selectByGBId(transform.getGbId());
             if (gbStreams.size() > 0) {
                 for (GbStream gbStream : gbStreams) {
                     // 鍑虹幇浣跨敤鐩稿悓鍥芥爣Id鐨勮棰戞祦鏃讹紝浣跨敤鏂版祦鏇挎崲鏃ф祦锛�
-                    gbStreamMapper.del(gbStream.getApp(), gbStream.getStream());
-                    if (!gbStream.isStatus()) {
-                        streamPushMapper.del(gbStream.getApp(), gbStream.getStream());
+                    if (queryKey != null && gbStream.getApp().equals(mediaItem.getApp())) {
+                        Matcher matcherForStream = pattern.matcher(gbStream.getStream());
+                        String queryKeyForStream = null;
+                        if (matcherForStream.find()) { //姝ゅfind锛堬級姣忔琚皟鐢ㄥ悗锛屼細鍋忕Щ鍒颁笅涓�涓尮閰�
+                            queryKeyForStream = matcherForStream.group();
+                        }
+                        if (queryKeyForStream == null || !queryKeyForStream.equals(queryKey)) {
+                            // 姝ゆ椂涓嶆槸鍚屼竴涓祦
+                            gbStreamMapper.del(gbStream.getApp(), gbStream.getStream());
+                            if (!gbStream.isStatus()) {
+                                streamPushMapper.del(gbStream.getApp(), gbStream.getStream());
+                            }
+                        }
                     }
                 }
             }
-            if (gbStreamMapper.selectOne(transform.getApp(), transform.getStream()) != null) {
+            //            StreamProxyItem streamProxyItem = gbStreamMapper.selectOne(transform.getApp(), transform.getStream());
+            List<GbStream> gbStreamList = gbStreamMapper.selectByGBId(transform.getGbId());
+            if (gbStreamList != null && gbStreamList.size() == 1) {
+                transform.setGbStreamId(gbStreamList.get(0).getGbStreamId());
+                transform.setPlatformId(gbStreamList.get(0).getPlatformId());
+                transform.setCatalogId(gbStreamList.get(0).getCatalogId());
+                transform.setGbId(gbStreamList.get(0).getGbId());
                 gbStreamMapper.update(transform);
+                streamPushMapper.del(gbStreamList.get(0).getApp(), gbStreamList.get(0).getStream());
             }else {
+                transform.setCreateStamp(System.currentTimeMillis());
                 gbStreamMapper.add(transform);
             }
         }
+        storager.updateMedia(transform);
         return transform;
     }
 

--
Gitblit v1.8.0