From 8384736c22df9089581d20c4ef90147b26cd6e69 Mon Sep 17 00:00:00 2001 From: shaowei <80336411+Yiranjimo@users.noreply.github.com> Date: Thu, 31 Oct 2024 01:16:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9B=A0=E4=B8=BAint?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=A3=85=E7=AE=B1=E5=AF=BC=E8=87=B4year?= =?UTF-8?q?=E5=92=8Cmonth=E4=B8=BA=E7=A9=BA=E6=97=B6=EF=BC=8C=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cloudRecord/CloudRecordController.java | 138 ++++-------------- 1 file changed, 30 insertions(+), 108 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/cloudRecord/CloudRecordController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/cloudRecord/CloudRecordController.java index f19a9e0b..78f4fef2 100755 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/cloudRecord/CloudRecordController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/cloudRecord/CloudRecordController.java @@ -3,9 +3,9 @@ package com.genersoft.iot.vmp.vmanager.cloudRecord; import com.alibaba.fastjson2.JSONArray; import com.genersoft.iot.vmp.conf.exception.ControllerException; import com.genersoft.iot.vmp.conf.security.JwtUtils; +import com.genersoft.iot.vmp.gb28181.service.ICloudRecordService; import com.genersoft.iot.vmp.media.bean.MediaServer; import com.genersoft.iot.vmp.media.service.IMediaServerService; -import com.genersoft.iot.vmp.gb28181.service.ICloudRecordService; import com.genersoft.iot.vmp.service.bean.CloudRecordItem; import com.genersoft.iot.vmp.service.bean.DownloadFileInfo; import com.genersoft.iot.vmp.utils.DateUtil; @@ -55,16 +55,10 @@ public class CloudRecordController { @Parameter(name = "year", description = "年,置空则查询当年", required = false) @Parameter(name = "month", description = "月,置空则查询当月", required = false) @Parameter(name = "mediaServerId", description = "流媒体ID,置空则查询全部", required = false) - public List openRtpServer( - @RequestParam(required = true) String app, - @RequestParam(required = true) String stream, - @RequestParam(required = false) int year, - @RequestParam(required = false) int month, - @RequestParam(required = false) String mediaServerId + public List openRtpServer(@RequestParam(required = true) String app, @RequestParam(required = true) String stream, @RequestParam(required = false) Integer year, @RequestParam(required = false) Integer month, @RequestParam(required = false) String mediaServerId ) { - log.info("[云端录像] 查询存在云端录像的日期 app->{}, stream->{}, mediaServerId->{}, year->{}, month->{}", - app, stream, mediaServerId, year, month); + log.info("[云端录像] 查询存在云端录像的日期 app->{}, stream->{}, mediaServerId->{}, year->{}, month->{}", app, stream, mediaServerId, year, month); Calendar calendar = Calendar.getInstance(); if (ObjectUtils.isEmpty(year)) { year = calendar.get(Calendar.YEAR); @@ -102,20 +96,10 @@ public class CloudRecordController { @Parameter(name = "endTime", description = "结束时间(yyyy-MM-dd HH:mm:ss)", required = false) @Parameter(name = "mediaServerId", description = "流媒体ID,置空则查询全部流媒体", required = false) @Parameter(name = "callId", description = "每次录像的唯一标识,置空则查询全部流媒体", required = false) - public PageInfo openRtpServer( - @RequestParam(required = false) String query, - @RequestParam(required = false) String app, - @RequestParam(required = false) String stream, - @RequestParam int page, - @RequestParam int count, - @RequestParam(required = false) String startTime, - @RequestParam(required = false) String endTime, - @RequestParam(required = false) String mediaServerId, - @RequestParam(required = false) String callId + public PageInfo openRtpServer(@RequestParam(required = false) String query, @RequestParam(required = false) String app, @RequestParam(required = false) String stream, @RequestParam int page, @RequestParam int count, @RequestParam(required = false) String startTime, @RequestParam(required = false) String endTime, @RequestParam(required = false) String mediaServerId, @RequestParam(required = false) String callId ) { - log.info("[云端录像] 查询 app->{}, stream->{}, mediaServerId->{}, page->{}, count->{}, startTime->{}, endTime->{}, callId->{}", - app, stream, mediaServerId, page, count, startTime, endTime, callId); + log.info("[云端录像] 查询 app->{}, stream->{}, mediaServerId->{}, page->{}, count->{}, startTime->{}, endTime->{}, callId->{}", app, stream, mediaServerId, page, count, startTime, endTime, callId); List mediaServers; if (!ObjectUtils.isEmpty(mediaServerId)) { @@ -162,25 +146,16 @@ public class CloudRecordController { @Parameter(name = "endTime", description = "鉴权ID", required = false) @Parameter(name = "callId", description = "鉴权ID", required = false) @Parameter(name = "remoteHost", description = "返回地址时的远程地址", required = false) - public String addTask( - HttpServletRequest request, - @RequestParam(required = false) String app, - @RequestParam(required = false) String stream, - @RequestParam(required = false) String mediaServerId, - @RequestParam(required = false) String startTime, - @RequestParam(required = false) String endTime, - @RequestParam(required = false) String callId, - @RequestParam(required = false) String remoteHost - ){ + public String addTask(HttpServletRequest request, @RequestParam(required = false) String app, @RequestParam(required = false) String stream, @RequestParam(required = false) String mediaServerId, @RequestParam(required = false) String startTime, @RequestParam(required = false) String endTime, @RequestParam(required = false) String callId, @RequestParam(required = false) String remoteHost) { MediaServer mediaServer; if (mediaServerId == null) { mediaServer = mediaServerService.getDefaultMediaServer(); - }else { + } else { mediaServer = mediaServerService.getOne(mediaServerId); } if (mediaServer == null) { throw new ControllerException(ErrorCode.ERROR100.getCode(), "未找到可用的流媒体"); - }else { + } else { if (remoteHost == null) { remoteHost = request.getScheme() + "://" + mediaServer.getIp() + ":" + mediaServer.getRecordAssistPort(); } @@ -194,20 +169,12 @@ public class CloudRecordController { @Parameter(name = "taskId", description = "任务Id", required = false) @Parameter(name = "mediaServerId", description = "流媒体ID", required = false) @Parameter(name = "isEnd", description = "是否结束", required = false) - public JSONArray queryTaskList( - HttpServletRequest request, - @RequestParam(required = false) String app, - @RequestParam(required = false) String stream, - @RequestParam(required = false) String callId, - @RequestParam(required = false) String taskId, - @RequestParam(required = false) String mediaServerId, - @RequestParam(required = false) Boolean isEnd - ){ - if (ObjectUtils.isEmpty(mediaServerId)) { - mediaServerId = null; - } + public JSONArray queryTaskList(HttpServletRequest request, @RequestParam(required = false) String app, @RequestParam(required = false) String stream, @RequestParam(required = false) String callId, @RequestParam(required = false) String taskId, @RequestParam(required = false) String mediaServerId, @RequestParam(required = false) Boolean isEnd) { + if (ObjectUtils.isEmpty(mediaServerId)) { + mediaServerId = null; + } - return cloudRecordService.queryTask(app, stream, callId, taskId, mediaServerId, isEnd, request.getScheme()); + return cloudRecordService.queryTask(app, stream, callId, taskId, mediaServerId, isEnd, request.getScheme()); } @ResponseBody @@ -220,20 +187,11 @@ public class CloudRecordController { @Parameter(name = "endTime", description = "鉴权ID", required = false) @Parameter(name = "callId", description = "鉴权ID", required = false) @Parameter(name = "recordId", description = "录像记录的ID,用于精准收藏一个视频文件", required = false) - public int addCollect( - @RequestParam(required = false) String app, - @RequestParam(required = false) String stream, - @RequestParam(required = false) String mediaServerId, - @RequestParam(required = false) String startTime, - @RequestParam(required = false) String endTime, - @RequestParam(required = false) String callId, - @RequestParam(required = false) Integer recordId - ){ - log.info("[云端录像] 添加收藏,app={},stream={},mediaServerId={},startTime={},endTime={},callId={},recordId={}", - app, stream, mediaServerId, startTime, endTime, callId, recordId); + public int addCollect(@RequestParam(required = false) String app, @RequestParam(required = false) String stream, @RequestParam(required = false) String mediaServerId, @RequestParam(required = false) String startTime, @RequestParam(required = false) String endTime, @RequestParam(required = false) String callId, @RequestParam(required = false) Integer recordId) { + log.info("[云端录像] 添加收藏,app={},stream={},mediaServerId={},startTime={},endTime={},callId={},recordId={}", app, stream, mediaServerId, startTime, endTime, callId, recordId); if (recordId != null) { return cloudRecordService.changeCollectById(recordId, true); - }else { + } else { return cloudRecordService.changeCollect(true, app, stream, mediaServerId, startTime, endTime, callId); } } @@ -248,20 +206,11 @@ public class CloudRecordController { @Parameter(name = "endTime", description = "鉴权ID", required = false) @Parameter(name = "callId", description = "鉴权ID", required = false) @Parameter(name = "recordId", description = "录像记录的ID,用于精准精准移除一个视频文件的收藏", required = false) - public int deleteCollect( - @RequestParam(required = false) String app, - @RequestParam(required = false) String stream, - @RequestParam(required = false) String mediaServerId, - @RequestParam(required = false) String startTime, - @RequestParam(required = false) String endTime, - @RequestParam(required = false) String callId, - @RequestParam(required = false) Integer recordId - ){ - log.info("[云端录像] 移除收藏,app={},stream={},mediaServerId={},startTime={},endTime={},callId={},recordId={}", - app, stream, mediaServerId, startTime, endTime, callId, recordId); + public int deleteCollect(@RequestParam(required = false) String app, @RequestParam(required = false) String stream, @RequestParam(required = false) String mediaServerId, @RequestParam(required = false) String startTime, @RequestParam(required = false) String endTime, @RequestParam(required = false) String callId, @RequestParam(required = false) Integer recordId) { + log.info("[云端录像] 移除收藏,app={},stream={},mediaServerId={},startTime={},endTime={},callId={},recordId={}", app, stream, mediaServerId, startTime, endTime, callId, recordId); if (recordId != null) { return cloudRecordService.changeCollectById(recordId, false); - }else { + } else { return cloudRecordService.changeCollect(false, app, stream, mediaServerId, startTime, endTime, callId); } } @@ -270,9 +219,7 @@ public class CloudRecordController { @GetMapping("/play/path") @Operation(summary = "获取播放地址") @Parameter(name = "recordId", description = "录像记录的ID", required = true) - public DownloadFileInfo getPlayUrlPath( - @RequestParam(required = true) Integer recordId - ){ + public DownloadFileInfo getPlayUrlPath(@RequestParam(required = true) Integer recordId) { return cloudRecordService.getPlayUrlPath(recordId); } @@ -291,20 +238,10 @@ public class CloudRecordController { */ @ResponseBody @GetMapping("/zip") - public void downloadZipFile( - HttpServletResponse response, - @RequestParam(required = false) String query, - @RequestParam(required = false) String app, - @RequestParam(required = false) String stream, - @RequestParam(required = false) String startTime, - @RequestParam(required = false) String endTime, - @RequestParam(required = false) String mediaServerId, - @RequestParam(required = false) String callId, - @RequestParam(required = false) List ids + public void downloadZipFile(HttpServletResponse response, @RequestParam(required = false) String query, @RequestParam(required = false) String app, @RequestParam(required = false) String stream, @RequestParam(required = false) String startTime, @RequestParam(required = false) String endTime, @RequestParam(required = false) String mediaServerId, @RequestParam(required = false) String callId, @RequestParam(required = false) List ids ) { - log.info("[下载指定录像文件的压缩包] 查询 app->{}, stream->{}, mediaServerId->{}, startTime->{}, endTime->{}, callId->{}", - app, stream, mediaServerId, startTime, endTime, callId); + log.info("[下载指定录像文件的压缩包] 查询 app->{}, stream->{}, mediaServerId->{}, startTime->{}, endTime->{}, callId->{}", app, stream, mediaServerId, startTime, endTime, callId); List mediaServers; if (!ObjectUtils.isEmpty(mediaServerId)) { @@ -339,7 +276,7 @@ public class CloudRecordController { callId = null; } if (stream != null && callId != null) { - response.addHeader( "Content-Disposition", "attachment;filename=" + stream + "_" + callId + ".zip" ); + response.addHeader("Content-Disposition", "attachment;filename=" + stream + "_" + callId + ".zip"); } List cloudRecordItemList = cloudRecordService.getAllList(query, app, stream, startTime, endTime, mediaServers, callId, ids); if (ObjectUtils.isEmpty(cloudRecordItemList)) { @@ -354,9 +291,9 @@ public class CloudRecordController { continue; } FileInputStream fis = new FileInputStream(cloudRecordItem.getFilePath()); - byte[] buf = new byte[2*1024]; + byte[] buf = new byte[2 * 1024]; int len; - while ((len = fis.read(buf)) != -1){ + while ((len = fis.read(buf)) != -1) { zos.write(buf, 0, len); } zos.closeEntry(); @@ -364,8 +301,7 @@ public class CloudRecordController { } zos.close(); } catch (IOException e) { - log.error("[下载指定录像文件的压缩包] 失败: 查询 app->{}, stream->{}, mediaServerId->{}, startTime->{}, endTime->{}, callId->{}", - app, stream, mediaServerId, startTime, endTime, callId, e); + log.error("[下载指定录像文件的压缩包] 失败: 查询 app->{}, stream->{}, mediaServerId->{}, startTime->{}, endTime->{}, callId->{}", app, stream, mediaServerId, startTime, endTime, callId, e); } } @@ -392,22 +328,10 @@ public class CloudRecordController { @Parameter(name = "endTime", description = "结束时间(yyyy-MM-dd HH:mm:ss)", required = false) @Parameter(name = "mediaServerId", description = "流媒体ID,置空则查询全部流媒体", required = false) @Parameter(name = "callId", description = "每次录像的唯一标识,置空则查询全部流媒体", required = false) - public PageInfo getListWithUrl( - HttpServletRequest request, - @RequestParam(required = false) String query, - @RequestParam(required = false) String app, - @RequestParam(required = false) String stream, - @RequestParam int page, - @RequestParam int count, - @RequestParam(required = false) String startTime, - @RequestParam(required = false) String endTime, - @RequestParam(required = false) String mediaServerId, - @RequestParam(required = false) String callId, - @RequestParam(required = false) String remoteHost + public PageInfo getListWithUrl(HttpServletRequest request, @RequestParam(required = false) String query, @RequestParam(required = false) String app, @RequestParam(required = false) String stream, @RequestParam int page, @RequestParam int count, @RequestParam(required = false) String startTime, @RequestParam(required = false) String endTime, @RequestParam(required = false) String mediaServerId, @RequestParam(required = false) String callId, @RequestParam(required = false) String remoteHost ) { - log.info("[云端录像] 查询URL app->{}, stream->{}, mediaServerId->{}, page->{}, count->{}, startTime->{}, endTime->{}, callId->{}", - app, stream, mediaServerId, page, count, startTime, endTime, callId); + log.info("[云端录像] 查询URL app->{}, stream->{}, mediaServerId->{}, page->{}, count->{}, startTime->{}, endTime->{}, callId->{}", app, stream, mediaServerId, page, count, startTime, endTime, callId); List mediaServers; if (!ObjectUtils.isEmpty(mediaServerId)) { @@ -446,8 +370,7 @@ public class CloudRecordController { throw new ControllerException(ErrorCode.ERROR100.getCode(), "未找到流媒体节点"); } if (remoteHost == null) { - remoteHost = request.getScheme() + "://" + request.getLocalAddr() + ":" + - (request.getScheme().equals("https")? mediaServer.getHttpSSlPort() : mediaServer.getHttpPort()); + remoteHost = request.getScheme() + "://" + request.getLocalAddr() + ":" + (request.getScheme().equals("https") ? mediaServer.getHttpSSlPort() : mediaServer.getHttpPort()); } PageInfo cloudRecordItemPageInfo = cloudRecordService.getList(page, count, query, app, stream, startTime, endTime, mediaServers, callId); PageInfo cloudRecordUrlPageInfo = new PageInfo<>(); @@ -474,8 +397,7 @@ public class CloudRecordController { for (CloudRecordItem cloudRecordItem : cloudRecordItemList) { CloudRecordUrl cloudRecordUrl = new CloudRecordUrl(); cloudRecordUrl.setId(cloudRecordItem.getId()); - cloudRecordUrl.setDownloadUrl(remoteHost + "/index/api/downloadFile?file_path=" + cloudRecordItem.getFilePath() - + "&save_name=" + cloudRecordItem.getStream() + "_" + cloudRecordItem.getCallId() + "_" + DateUtil.timestampMsToUrlToyyyy_MM_dd_HH_mm_ss(cloudRecordItem.getStartTime()) ); + cloudRecordUrl.setDownloadUrl(remoteHost + "/index/api/downloadFile?file_path=" + cloudRecordItem.getFilePath() + "&save_name=" + cloudRecordItem.getStream() + "_" + cloudRecordItem.getCallId() + "_" + DateUtil.timestampMsToUrlToyyyy_MM_dd_HH_mm_ss(cloudRecordItem.getStartTime())); cloudRecordUrl.setPlayUrl(remoteHost + "/index/api/downloadFile?file_path=" + cloudRecordItem.getFilePath()); cloudRecordUrlList.add(cloudRecordUrl); }