From 7ed84bed7f3383507b8a954cb947920b2da0f84a Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 09 四月 2024 20:11:10 +0800
Subject: [PATCH] Merge pull request #1411 from 648540858/dev/zlm

---
 src/main/java/com/genersoft/iot/vmp/media/MediaServerConfig.java |   64 ++++++++++++++++++++++++++++++++
 1 files changed, 64 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/media/MediaServerConfig.java b/src/main/java/com/genersoft/iot/vmp/media/MediaServerConfig.java
new file mode 100755
index 0000000..fb9de3f
--- /dev/null
+++ b/src/main/java/com/genersoft/iot/vmp/media/MediaServerConfig.java
@@ -0,0 +1,64 @@
+package com.genersoft.iot.vmp.media;
+
+import com.genersoft.iot.vmp.conf.MediaConfig;
+import com.genersoft.iot.vmp.media.event.mediaServer.MediaServerChangeEvent;
+import com.genersoft.iot.vmp.media.service.IMediaServerService;
+import com.genersoft.iot.vmp.media.bean.MediaServer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.context.ApplicationEventPublisher;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * 鍚姩鏄粠閰嶇疆鏂囦欢鍔犺浇鑺傜偣淇℃伅锛屼互鍙婂彂閫佷釜鑺傜偣鐘舵�佺鐞嗗幓鎺у埗鑺傜偣鐘舵��
+ */
+@Component
+@Order(value=12)
+public class MediaServerConfig implements CommandLineRunner {
+
+    private final static Logger logger = LoggerFactory.getLogger(MediaServerConfig.class);
+
+    @Autowired
+    private ApplicationEventPublisher applicationEventPublisher;
+
+    @Autowired
+    private IMediaServerService mediaServerService;
+
+    @Autowired
+    private MediaConfig mediaConfig;
+
+
+    @Override
+    public void run(String... strings) throws Exception {
+        // 娓呯悊鎵�鏈夊湪绾胯妭鐐圭殑缂撳瓨淇℃伅
+        mediaServerService.clearMediaServerForOnline();
+        MediaServer defaultMediaServer = mediaServerService.getDefaultMediaServer();
+        MediaServer mediaSerItemInConfig = mediaConfig.getMediaSerItem();
+        if (defaultMediaServer != null && mediaSerItemInConfig.getId().equals(defaultMediaServer.getId())) {
+            mediaServerService.update(mediaSerItemInConfig);
+        }else {
+            if (defaultMediaServer != null) {
+                mediaServerService.delete(defaultMediaServer.getId());
+            }
+            MediaServer mediaServerItem = mediaServerService.getOneFromDatabase(mediaSerItemInConfig.getId());
+            if (mediaServerItem == null) {
+                mediaServerService.add(mediaSerItemInConfig);
+            }else {
+                mediaServerService.update(mediaSerItemInConfig);
+            }
+        }
+        // 鍙戦�佸獟浣撹妭鐐瑰彉鍖栦簨浠�
+        mediaServerService.syncCatchFromDatabase();
+        // 鑾峰彇鎵�鏈夌殑zlm锛� 骞跺紑鍚富鍔ㄨ繛鎺�
+        List<MediaServer> all = mediaServerService.getAllFromDatabase();
+        logger.info("[濯掍綋鑺傜偣] 鍔犺浇鑺傜偣鍒楄〃锛� 鍏眥}涓妭鐐�", all.size());
+        MediaServerChangeEvent event = new MediaServerChangeEvent(this);
+        event.setMediaServerItemList(all);
+        applicationEventPublisher.publishEvent(event);
+    }
+}

--
Gitblit v1.8.0