From f8ef14bfea43abd8716aab15f5e302e7c1f23f79 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 11 六月 2024 10:08:13 +0800
Subject: [PATCH] 修复移动位置位置订阅上报间隔为0的bug
---
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java | 33 ++++++++++++++++++---------------
1 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java
old mode 100644
new mode 100755
index b876cf9..56d192e
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java
@@ -2,16 +2,18 @@
import com.genersoft.iot.vmp.common.StreamInfo;
import com.genersoft.iot.vmp.conf.exception.ControllerException;
+import com.genersoft.iot.vmp.conf.security.JwtUtils;
import com.genersoft.iot.vmp.conf.security.SecurityUtils;
import com.genersoft.iot.vmp.conf.security.dto.LoginUser;
import com.genersoft.iot.vmp.media.zlm.dto.StreamAuthorityInfo;
-import com.genersoft.iot.vmp.service.IStreamProxyService;
import com.genersoft.iot.vmp.service.IMediaService;
+import com.genersoft.iot.vmp.service.IStreamProxyService;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
-import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
+import com.genersoft.iot.vmp.vmanager.bean.StreamContent;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -24,7 +26,7 @@
@Tag(name = "濯掍綋娴佺浉鍏�")
@Controller
-@CrossOrigin
+
@RequestMapping(value = "/api/media")
public class MediaController {
@@ -45,7 +47,7 @@
* @param stream 娴乮d
* @return
*/
- @Operation(summary = "鏍规嵁搴旂敤鍚嶅拰娴乮d鑾峰彇鎾斁鍦板潃")
+ @Operation(summary = "鏍规嵁搴旂敤鍚嶅拰娴乮d鑾峰彇鎾斁鍦板潃", security = @SecurityRequirement(name = JwtUtils.HEADER))
@Parameter(name = "app", description = "搴旂敤鍚�", required = true)
@Parameter(name = "stream", description = "娴乮d", required = true)
@Parameter(name = "mediaServerId", description = "濯掍綋鏈嶅姟鍣╥d")
@@ -53,19 +55,21 @@
@Parameter(name = "useSourceIpAsStreamIp", description = "鏄惁浣跨敤璇锋眰IP浣滀负杩斿洖鐨勫湴鍧�IP")
@GetMapping(value = "/stream_info_by_app_and_stream")
@ResponseBody
- public StreamInfo getStreamInfoByAppAndStream(HttpServletRequest request, @RequestParam String app,
- @RequestParam String stream,
- @RequestParam(required = false) String mediaServerId,
- @RequestParam(required = false) String callId,
- @RequestParam(required = false) Boolean useSourceIpAsStreamIp){
+ public StreamContent getStreamInfoByAppAndStream(HttpServletRequest request, @RequestParam String app,
+ @RequestParam String stream,
+ @RequestParam(required = false) String mediaServerId,
+ @RequestParam(required = false) String callId,
+ @RequestParam(required = false) Boolean useSourceIpAsStreamIp){
boolean authority = false;
if (callId != null) {
// 鏉冮檺鏍¢獙
StreamAuthorityInfo streamAuthorityInfo = redisCatchStorage.getStreamAuthorityInfo(app, stream);
- if (streamAuthorityInfo.getCallId().equals(callId)) {
+ if (streamAuthorityInfo != null
+ && streamAuthorityInfo.getCallId() != null
+ && streamAuthorityInfo.getCallId().equals(callId)) {
authority = true;
}else {
- throw new ControllerException(ErrorCode.ERROR400);
+ throw new ControllerException(ErrorCode.ERROR400.getCode(), "鑾峰彇鎾斁鍦板潃閴存潈澶辫触");
}
}else {
// 鏄惁鐧婚檰鐢ㄦ埛, 鐧婚檰鐢ㄦ埛杩斿洖瀹屾暣淇℃伅
@@ -86,9 +90,8 @@
streamInfo = mediaService.getStreamInfoByAppAndStreamWithCheck(app, stream, mediaServerId, authority);
}
- WVPResult<StreamInfo> result = new WVPResult<>();
if (streamInfo != null){
- return streamInfo;
+ return new StreamContent(streamInfo);
}else {
//鑾峰彇娴佸け璐ワ紝閲嶅惎鎷夋祦鍚庨噸璇曚竴娆�
streamProxyService.stop(app,stream);
@@ -96,7 +99,7 @@
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
- e.printStackTrace();
+ logger.error("[绾跨▼浼戠湢澶辫触]锛� {}", e.getMessage());
}
if (useSourceIpAsStreamIp != null && useSourceIpAsStreamIp) {
String host = request.getHeader("Host");
@@ -107,7 +110,7 @@
streamInfo = mediaService.getStreamInfoByAppAndStreamWithCheck(app, stream, mediaServerId, authority);
}
if (streamInfo != null){
- return streamInfo;
+ return new StreamContent(streamInfo);
}else {
throw new ControllerException(ErrorCode.ERROR100);
}
--
Gitblit v1.8.0