From 683f336ea347970c14848d21b87b452c051291d0 Mon Sep 17 00:00:00 2001
From: Xiajijian <1176061145@qq.com>
Date: Thu, 16 Oct 2025 12:52:02 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 ard-vtdu/src/main/java/com/ard/vtdu/service/impl/ArdArdMediaServiceImpl.java           |    8 ++++----
 ard-work/src/main/java/com/ard/work/component/forest/TokenInterceptor.java             |   23 ++++++++++++++++-------
 ard-sample/src/main/java/com/ard/sample/manage/service/impl/LiveStreamServiceImpl.java |    4 ----
 3 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/ard-sample/src/main/java/com/ard/sample/manage/service/impl/LiveStreamServiceImpl.java b/ard-sample/src/main/java/com/ard/sample/manage/service/impl/LiveStreamServiceImpl.java
index 7906af2..1852a1b 100644
--- a/ard-sample/src/main/java/com/ard/sample/manage/service/impl/LiveStreamServiceImpl.java
+++ b/ard-sample/src/main/java/com/ard/sample/manage/service/impl/LiveStreamServiceImpl.java
@@ -125,10 +125,6 @@
                 String protocol = mediamtxConfig.isHttps() ? "https://" : "http://";
                 String webrtcUrl = protocol + mediamtxConfig.getPlayHost() + ":8889" + "/" + name;  // 拼接 webrtcUrl
 
-                live.setRtmpUrl(rtmpUrl);
-                live.setRtspUrl(rtspUrl);
-                live.setWebrtcUrl(webrtcUrl);
-
                 // 如果没有,插入新的记录
                 ArdVtdu vtdu = ArdVtdu.builder().name(name).rtspSource("publisher").rtspUrl(rtspUrl).rtmpUrl(rtmpUrl).webrtcUrl(webrtcUrl).build();
                 int i = ardVtduService.insertArdVtdu(vtdu);  // 保存到媒体表
diff --git a/ard-vtdu/src/main/java/com/ard/vtdu/service/impl/ArdArdMediaServiceImpl.java b/ard-vtdu/src/main/java/com/ard/vtdu/service/impl/ArdArdMediaServiceImpl.java
index 3b202c1..7446a03 100644
--- a/ard-vtdu/src/main/java/com/ard/vtdu/service/impl/ArdArdMediaServiceImpl.java
+++ b/ard-vtdu/src/main/java/com/ard/vtdu/service/impl/ArdArdMediaServiceImpl.java
@@ -63,11 +63,11 @@
             conf.setMaxReaders(100);
             conf.setSourceProtocol("tcp");
 
-            if (!checkNameExist(ardVtdu.getName())) {
-                mediaClient.addPath(ardVtdu.getName(), conf);
-            } else {
-                mediaClient.editPath(ardVtdu.getName(), conf);
+            if (checkNameExist(ardVtdu.getName())) {
+                mediaClient.removePath(ardVtdu.getName());
             }
+            mediaClient.addPath(ardVtdu.getName(), conf);
+
             ardVtdu.setCameraId(ardVtdu.getName().split("_")[0]);
             ardVtdu.setRtspUrl(rtspUrl);
             ardVtdu.setRtmpUrl(rtmpUrl);
diff --git a/ard-work/src/main/java/com/ard/work/component/forest/TokenInterceptor.java b/ard-work/src/main/java/com/ard/work/component/forest/TokenInterceptor.java
index 207fbce..f20837b 100644
--- a/ard-work/src/main/java/com/ard/work/component/forest/TokenInterceptor.java
+++ b/ard-work/src/main/java/com/ard/work/component/forest/TokenInterceptor.java
@@ -3,6 +3,7 @@
 import com.ard.work.domain.receiver.AccessTokenReceiver;
 import com.ard.work.service.IArdServerInfoService;
 import com.dtflys.forest.http.ForestRequest;
+import com.dtflys.forest.interceptor.ForestInterceptor;
 import com.dtflys.forest.interceptor.Interceptor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
@@ -10,7 +11,7 @@
 
 @Component
 @Slf4j
-public class TokenInterceptor<T> implements Interceptor<T> {
+public class TokenInterceptor implements ForestInterceptor {
     @Resource
     private IArdServerInfoService ardServerService;
 
@@ -21,11 +22,19 @@
      */
     @Override
     public boolean beforeExecute(ForestRequest req) {
-        log.debug("invoke Simple beforeExecute");
-        String serverId = (String) req.getVariableValue("serverId");
-        AccessTokenReceiver accessToken = ardServerService.getAccessToken(serverId);
-        req.addHeader("x-cid", accessToken.getCompanyId());
-        req.addHeader("x-token", accessToken.getAccessToken());
-        return true;  // 继续执行请求返回true
+        try {
+            String serverId = (String) req.getVariableValue("serverId");
+            AccessTokenReceiver accessToken = ardServerService.getAccessToken(serverId);
+            if (accessToken == null) {
+                log.warn("AccessToken 为 null, serverId={}", serverId);
+                return false; // 阻止请求继续
+            }
+            req.addHeader("x-cid", accessToken.getCompanyId());
+            req.addHeader("x-token", accessToken.getAccessToken());
+        } catch (Exception e) {
+            log.error("TokenInterceptor 处理异常:{}", e.getMessage());
+            return false;
+        }
+        return true;
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3