From f2e3016a488ebe46112ca45e57283f34409011ab Mon Sep 17 00:00:00 2001 From: lin <648540858@qq.com> Date: Mon, 14 Apr 2025 12:43:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=91=E7=AB=AF=E5=BD=95?= =?UTF-8?q?=E5=83=8Fseek=E4=B8=8D=E5=87=86=E7=A1=AE=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/IMediaNodeServerService.java | 2 +- .../media/service/IMediaServerService.java | 2 +- .../service/impl/MediaServerServiceImpl.java | 2 +- .../media/zlm/ZLMMediaNodeServerService.java | 2 +- .../iot/vmp/media/zlm/ZLMRESTfulUtils.java | 2 +- .../iot/vmp/service/ICloudRecordService.java | 2 +- .../iot/vmp/service/bean/CloudRecordItem.java | 28 +++++++++---------- .../service/impl/CloudRecordServiceImpl.java | 2 +- .../cloudRecord/CloudRecordController.java | 2 +- 数据库/2.7.3/初始化-mysql-2.7.3.sql | 2 +- .../2.7.3/初始化-postgresql-kingbase-2.7.3.sql | 2 +- 数据库/2.7.3/更新-mysql-2.7.1升级到2.7.3.sql | 4 +++ 数据库/2.7.3/更新-mysql-2.7.3.sql | 5 ++++ ...更新-postgresql-kingbase-2.7.1升级到2.7.3.sql | 4 +++ .../2.7.3/更新-postgresql-kingbase-2.7.3.sql | 4 +++ 15 files changed, 41 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/media/service/IMediaNodeServerService.java b/src/main/java/com/genersoft/iot/vmp/media/service/IMediaNodeServerService.java index 20b50ae72..074e47f2c 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/service/IMediaNodeServerService.java +++ b/src/main/java/com/genersoft/iot/vmp/media/service/IMediaNodeServerService.java @@ -72,7 +72,7 @@ public interface IMediaNodeServerService { void loadMP4File(MediaServer mediaServer, String app, String stream, String datePath); - void seekRecordStamp(MediaServer mediaServer, String app, String stream, int stamp); + void seekRecordStamp(MediaServer mediaServer, String app, String stream, Double stamp); void setRecordSpeed(MediaServer mediaServer, String app, String stream, Integer speed); } diff --git a/src/main/java/com/genersoft/iot/vmp/media/service/IMediaServerService.java b/src/main/java/com/genersoft/iot/vmp/media/service/IMediaServerService.java index b4a7c590b..f87ba10c5 100755 --- a/src/main/java/com/genersoft/iot/vmp/media/service/IMediaServerService.java +++ b/src/main/java/com/genersoft/iot/vmp/media/service/IMediaServerService.java @@ -162,7 +162,7 @@ public interface IMediaServerService { StreamInfo loadMP4File(MediaServer mediaServer, String app, String stream, String datePath); - void seekRecordStamp(MediaServer mediaServer, String app, String stream, int stamp); + void seekRecordStamp(MediaServer mediaServer, String app, String stream, Double stamp); void setRecordSpeed(MediaServer mediaServer, String app, String stream, Integer speed); } diff --git a/src/main/java/com/genersoft/iot/vmp/media/service/impl/MediaServerServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/media/service/impl/MediaServerServiceImpl.java index 4a0a9fd65..3f3b00ae9 100755 --- a/src/main/java/com/genersoft/iot/vmp/media/service/impl/MediaServerServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/media/service/impl/MediaServerServiceImpl.java @@ -983,7 +983,7 @@ public class MediaServerServiceImpl implements IMediaServerService { } @Override - public void seekRecordStamp(MediaServer mediaServer, String app, String stream, int stamp) { + public void seekRecordStamp(MediaServer mediaServer, String app, String stream, Double stamp) { IMediaNodeServerService mediaNodeServerService = nodeServerServiceMap.get(mediaServer.getType()); if (mediaNodeServerService == null) { log.info("[seekRecordStamp] 失败, mediaServer的类型: {},未找到对应的实现类", mediaServer.getType()); diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java index f18520066..87179d5da 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java @@ -562,7 +562,7 @@ public class ZLMMediaNodeServerService implements IMediaNodeServerService { } @Override - public void seekRecordStamp(MediaServer mediaServer, String app, String stream, int stamp) { + public void seekRecordStamp(MediaServer mediaServer, String app, String stream, Double stamp) { JSONObject jsonObject = zlmresTfulUtils.seekRecordStamp(mediaServer, app, stream, stamp, "ts"); if (jsonObject == null) { throw new ControllerException(ErrorCode.ERROR100.getCode(), "请求失败"); diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java index 2ef605e57..89cb1938e 100755 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java @@ -438,7 +438,7 @@ public class ZLMRESTfulUtils { return sendPost(mediaServer, "setRecordSpeed",param, null); } - public JSONObject seekRecordStamp(MediaServer mediaServer, String app, String stream, long stamp, String schema) { + public JSONObject seekRecordStamp(MediaServer mediaServer, String app, String stream, Double stamp, String schema) { Map param = new HashMap<>(1); param.put("vhost", "__defaultVhost__"); param.put("app", app); 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 41ff4eed4..9486f62dc 100755 --- a/src/main/java/com/genersoft/iot/vmp/service/ICloudRecordService.java +++ b/src/main/java/com/genersoft/iot/vmp/service/ICloudRecordService.java @@ -60,7 +60,7 @@ public interface ICloudRecordService { */ void loadRecord(String app, String stream, String date, ErrorCallback callback); - void seekRecord(String mediaServerId,String app, String stream, Integer seek); + void seekRecord(String mediaServerId,String app, String stream, Double seek); void setRecordSpeed(String mediaServerId, String app, String stream, Integer speed); diff --git a/src/main/java/com/genersoft/iot/vmp/service/bean/CloudRecordItem.java b/src/main/java/com/genersoft/iot/vmp/service/bean/CloudRecordItem.java index 33fd03648..384da8789 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/bean/CloudRecordItem.java +++ b/src/main/java/com/genersoft/iot/vmp/service/bean/CloudRecordItem.java @@ -15,52 +15,52 @@ public class CloudRecordItem { * 主键 */ private int id; - + /** * 应用名 */ private String app; - + /** * 流 */ private String stream; - + /** * 健全ID */ private String callId; - + /** * 开始时间 */ private long startTime; - + /** * 结束时间 */ private long endTime; - + /** * ZLM Id */ private String mediaServerId; - + /** * 文件名称 */ private String fileName; - + /** * 文件路径 */ private String filePath; - + /** * 文件夹 */ private String folder; - + /** * 收藏,收藏的文件不移除 */ @@ -70,16 +70,16 @@ public class CloudRecordItem { * 保留,收藏的文件不移除 */ private Boolean reserve; - + /** * 文件大小 */ private long fileSize; - + /** * 文件时长 */ - private long timeLen; + private double timeLen; /** * 所属服务ID @@ -96,7 +96,7 @@ public class CloudRecordItem { cloudRecordItem.setFileSize(param.getRecordInfo().getFileSize()); cloudRecordItem.setFilePath(param.getRecordInfo().getFilePath()); cloudRecordItem.setMediaServerId(param.getMediaServer().getId()); - cloudRecordItem.setTimeLen((long) param.getRecordInfo().getTimeLen() * 1000); + cloudRecordItem.setTimeLen(param.getRecordInfo().getTimeLen() * 1000); cloudRecordItem.setEndTime((param.getRecordInfo().getStartTime() + (long)param.getRecordInfo().getTimeLen()) * 1000); Map paramsMap = MediaServerUtils.urlParamToMap(param.getRecordInfo().getParams()); if (paramsMap.get("callId") != null) { 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 095561ee5..e34e33b11 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 @@ -321,7 +321,7 @@ public class CloudRecordServiceImpl implements ICloudRecordService { } @Override - public void seekRecord(String mediaServerId,String app, String stream, Integer seek) { + public void seekRecord(String mediaServerId,String app, String stream, Double seek) { MediaServer mediaServer = mediaServerService.getOne(mediaServerId); if (mediaServer == null) { throw new ControllerException(ErrorCode.ERROR100.getCode(), "媒体节点不存在: " + mediaServerId); 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 1264d17ff..198a5a19c 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 @@ -317,7 +317,7 @@ public class CloudRecordController { @RequestParam(required = true) String mediaServerId, @RequestParam(required = true) String app, @RequestParam(required = true) String stream, - @RequestParam(required = true) Integer seek + @RequestParam(required = true) Double seek ) { cloudRecordService.seekRecord(mediaServerId, app, stream, seek); diff --git a/数据库/2.7.3/初始化-mysql-2.7.3.sql b/数据库/2.7.3/初始化-mysql-2.7.3.sql index 284c2d712..3d25e5927 100644 --- a/数据库/2.7.3/初始化-mysql-2.7.3.sql +++ b/数据库/2.7.3/初始化-mysql-2.7.3.sql @@ -365,7 +365,7 @@ create table IF NOT EXISTS wvp_cloud_record file_path character varying(500), collect bool default false, file_size bigint, - time_len bigint + time_len double precision ); drop table IF EXISTS wvp_user; diff --git a/数据库/2.7.3/初始化-postgresql-kingbase-2.7.3.sql b/数据库/2.7.3/初始化-postgresql-kingbase-2.7.3.sql index 3423d0a49..524fdbeff 100644 --- a/数据库/2.7.3/初始化-postgresql-kingbase-2.7.3.sql +++ b/数据库/2.7.3/初始化-postgresql-kingbase-2.7.3.sql @@ -366,7 +366,7 @@ create table IF NOT EXISTS wvp_cloud_record file_path character varying(500), collect bool default false, file_size int8, - time_len int8 + time_len double precision ); drop table IF EXISTS wvp_user; diff --git a/数据库/2.7.3/更新-mysql-2.7.1升级到2.7.3.sql b/数据库/2.7.3/更新-mysql-2.7.1升级到2.7.3.sql index da2d0f6e2..410914ecb 100644 --- a/数据库/2.7.3/更新-mysql-2.7.1升级到2.7.3.sql +++ b/数据库/2.7.3/更新-mysql-2.7.1升级到2.7.3.sql @@ -426,3 +426,7 @@ call wvp_20250111(); DROP PROCEDURE wvp_20250111; DELIMITER ; +/** +* 20250414 +*/ +alter table wvp_cloud_record modify time_len double precision; diff --git a/数据库/2.7.3/更新-mysql-2.7.3.sql b/数据库/2.7.3/更新-mysql-2.7.3.sql index 3bb44d951..49c79a608 100644 --- a/数据库/2.7.3/更新-mysql-2.7.3.sql +++ b/数据库/2.7.3/更新-mysql-2.7.3.sql @@ -294,5 +294,10 @@ call wvp_20250402(); DROP PROCEDURE wvp_20250402; DELIMITER ; +/** +* 20250414 +*/ +alter table wvp_cloud_record modify time_len double precision; + diff --git a/数据库/2.7.3/更新-postgresql-kingbase-2.7.1升级到2.7.3.sql b/数据库/2.7.3/更新-postgresql-kingbase-2.7.1升级到2.7.3.sql index 289990058..b0c42c6af 100644 --- a/数据库/2.7.3/更新-postgresql-kingbase-2.7.1升级到2.7.3.sql +++ b/数据库/2.7.3/更新-postgresql-kingbase-2.7.1升级到2.7.3.sql @@ -388,3 +388,7 @@ alter table wvp_cloud_record alter folder type varchar(500); alter table wvp_cloud_record alter file_path type varchar(500); update wvp_cloud_record set server_id = '你的服务ID'; +/** +* 20250414 +*/ +alter table wvp_cloud_record modify time_len double precision; diff --git a/数据库/2.7.3/更新-postgresql-kingbase-2.7.3.sql b/数据库/2.7.3/更新-postgresql-kingbase-2.7.3.sql index 50f4bbe8f..b66588215 100644 --- a/数据库/2.7.3/更新-postgresql-kingbase-2.7.3.sql +++ b/数据库/2.7.3/更新-postgresql-kingbase-2.7.3.sql @@ -112,4 +112,8 @@ update wvp_record_plan_item set start = start * 30, stop = (stop + 1) * 30 create index if not exists data_type on wvp_device_channel (data_type); create index if not exists data_device_id on wvp_device_channel (data_device_id); +/** +* 20250414 +*/ +alter table wvp_cloud_record modify time_len double precision;