From 186b00e9b308937397bd652e2b149cb799b087bd Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: Wed, 8 May 2024 11:18:47 +0800
Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E4=B8=8B=E8=BD=BD=E5=A4=9A?=
=?UTF-8?q?=E4=B8=AA=E4=BA=91=E7=AB=AF=E5=BD=95=E5=83=8F=E7=9A=84zip?=
=?UTF-8?q?=E5=8E=8B=E7=BC=A9=E5=8C=85?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 2 +-
.../cmd/SIPRequestHeaderProvider.java | 1 +
.../iot/vmp/service/ICloudRecordService.java | 4 +-
.../service/impl/CloudRecordServiceImpl.java | 31 ++-
.../dao/CloudRecordServiceMapper.java | 7 +-
.../com/genersoft/iot/vmp/utils/DateUtil.java | 8 +
.../cloudRecord/CloudRecordController.java | 229 +++++++++++++++++-
.../cloudRecord/bean/CloudRecordUrl.java | 32 +++
8 files changed, 302 insertions(+), 12 deletions(-)
create mode 100644 src/main/java/com/genersoft/iot/vmp/vmanager/cloudRecord/bean/CloudRecordUrl.java
diff --git a/pom.xml b/pom.xml
index 7ec73b81..df841d52 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,7 @@
com.genersoft
wvp-pro
- 2.7.0
+ 2.7.1
web video platform
国标28181视频平台
${project.packaging}
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java
index 3a9f5fb3..dd30fea5 100755
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java
@@ -168,6 +168,7 @@ public class SIPRequestHeaderProvider {
// via
ArrayList viaHeaders = new ArrayList();
ViaHeader viaHeader = SipFactory.getInstance().createHeaderFactory().createViaHeader(sipLayer.getLocalIp(device.getLocalIp()), sipConfig.getPort(), device.getTransport(), SipUtils.getNewViaTag());
+// viaHeader.setRPort();
viaHeaders.add(viaHeader);
//from
SipURI fromSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(sipConfig.getId(),sipConfig.getDomain());
diff --git a/src/main/java/com/genersoft/iot/vmp/service/ICloudRecordService.java b/src/main/java/com/genersoft/iot/vmp/service/ICloudRecordService.java
index c10313e8..a6da6156 100755
--- a/src/main/java/com/genersoft/iot/vmp/service/ICloudRecordService.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/ICloudRecordService.java
@@ -18,7 +18,7 @@ public interface ICloudRecordService {
/**
* 分页回去云端录像列表
*/
- PageInfo getList(int page, int count, String query, String app, String stream, String startTime, String endTime, List mediaServerItems);
+ PageInfo getList(int page, int count, String query, String app, String stream, String startTime, String endTime, List mediaServerItems, String callId);
/**
* 根据hook消息增加一条记录
@@ -56,4 +56,6 @@ public interface ICloudRecordService {
* 获取播放地址
*/
DownloadFileInfo getPlayUrlPath(Integer recordId);
+
+ List getAllList(String query, String app, String stream, String startTime, String endTime, List mediaServerItems, String callId, List ids);
}
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/CloudRecordServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/CloudRecordServiceImpl.java
index a23252f6..6e501e28 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/CloudRecordServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/CloudRecordServiceImpl.java
@@ -51,7 +51,7 @@ public class CloudRecordServiceImpl implements ICloudRecordService {
private VideoStreamSessionManager streamSession;
@Override
- public PageInfo getList(int page, int count, String query, String app, String stream, String startTime, String endTime, List mediaServerItems) {
+ public PageInfo getList(int page, int count, String query, String app, String stream, String startTime, String endTime, List mediaServerItems, String callId) {
// 开始时间和结束时间在数据库中都是以秒为单位的
Long startTimeStamp = null;
Long endTimeStamp = null;
@@ -71,7 +71,7 @@ public class CloudRecordServiceImpl implements ICloudRecordService {
}
PageHelper.startPage(page, count);
List all = cloudRecordServiceMapper.getList(query, app, stream, startTimeStamp, endTimeStamp,
- null, mediaServerItems);
+ callId, mediaServerItems, null);
return new PageInfo<>(all);
}
@@ -87,7 +87,7 @@ public class CloudRecordServiceImpl implements ICloudRecordService {
long startTimeStamp = startDate.atStartOfDay().toInstant(ZoneOffset.ofHours(8)).getEpochSecond();
long endTimeStamp = endDate.atStartOfDay().toInstant(ZoneOffset.ofHours(8)).getEpochSecond();
List cloudRecordItemList = cloudRecordServiceMapper.getList(null, app, stream, startTimeStamp,
- endTimeStamp, null, mediaServerItems);
+ endTimeStamp, null, mediaServerItems, null);
if (cloudRecordItemList.isEmpty()) {
return new ArrayList<>();
}
@@ -196,7 +196,7 @@ public class CloudRecordServiceImpl implements ICloudRecordService {
}
List all = cloudRecordServiceMapper.getList(null, app, stream, startTimeStamp, endTimeStamp,
- callId, mediaServerItems);
+ callId, mediaServerItems, null);
if (all.isEmpty()) {
throw new ControllerException(ErrorCode.ERROR100.getCode(), "未找到待收藏的视频");
}
@@ -232,4 +232,27 @@ public class CloudRecordServiceImpl implements ICloudRecordService {
MediaServerItem mediaServerItem = mediaServerService.getOne(recordItem.getMediaServerId());
return CloudRecordUtils.getDownloadFilePath(mediaServerItem, filePath);
}
+
+ @Override
+ public List getAllList(String query, String app, String stream, String startTime, String endTime, List mediaServerItems, String callId, List ids) {
+ // 开始时间和结束时间在数据库中都是以秒为单位的
+ Long startTimeStamp = null;
+ Long endTimeStamp = null;
+ if (startTime != null ) {
+ if (!DateUtil.verification(startTime, DateUtil.formatter)) {
+ throw new ControllerException(ErrorCode.ERROR100.getCode(), "开始时间格式错误,正确格式为: " + DateUtil.formatter);
+ }
+ startTimeStamp = DateUtil.yyyy_MM_dd_HH_mm_ssToTimestampMs(startTime);
+
+ }
+ if (endTime != null ) {
+ if (!DateUtil.verification(endTime, DateUtil.formatter)) {
+ throw new ControllerException(ErrorCode.ERROR100.getCode(), "结束时间格式错误,正确格式为: " + DateUtil.formatter);
+ }
+ endTimeStamp = DateUtil.yyyy_MM_dd_HH_mm_ssToTimestampMs(endTime);
+
+ }
+ return cloudRecordServiceMapper.getList(query, app, stream, startTimeStamp, endTimeStamp,
+ callId, mediaServerItems, ids);
+ }
}
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/CloudRecordServiceMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/CloudRecordServiceMapper.java
index 08f67ba9..b446148a 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/CloudRecordServiceMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/CloudRecordServiceMapper.java
@@ -50,12 +50,15 @@ public interface CloudRecordServiceMapper {
" and media_server_id in " +
" #{item.id}" +
" " +
+ " and id in " +
+ " #{item}" +
+ " " +
" order by start_time DESC" +
-
" ")
List getList(@Param("query") String query, @Param("app") String app, @Param("stream") String stream,
@Param("startTimeStamp")Long startTimeStamp, @Param("endTimeStamp")Long endTimeStamp,
- @Param("callId")String callId, List mediaServerItemList);
+ @Param("callId")String callId, List mediaServerItemList,
+ List ids);
@Select("