From 1da487f02ae1113bc1265ce1ee12c7a7722954d7 Mon Sep 17 00:00:00 2001 From: lin <648540858@qq.com> Date: Wed, 6 Aug 2025 15:17:44 +0800 Subject: [PATCH] =?UTF-8?q?[1078]=20=E4=BC=98=E5=8C=96=E9=89=B4=E6=9D=83?= =?UTF-8?q?=E7=A0=81=E4=BD=8D=E7=BD=AE=EF=BC=8C=E6=94=AF=E6=8C=811078?= =?UTF-8?q?=E5=9B=BD=E6=A0=87=E7=BA=A7=E8=81=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vmp/gb28181/bean/CommonRecordInfo.java | 3 + .../iot/vmp/gb28181/bean/RecordInfo.java | 73 +-- .../iot/vmp/gb28181/bean/RecordItem.java | 2 +- .../impl/SourcePlaybackServiceForGbImpl.java | 1 + .../cmd/RecordInfoQueryMessageHandler.java | 147 ++++-- .../iot/vmp/jt1078/bean/JTDevice.java | 1 - .../vmp/jt1078/codec/decode/Jt808Decoder.java | 2 - .../iot/vmp/jt1078/proc/request/J0100.java | 2 +- .../iot/vmp/jt1078/proc/request/J0102.java | 7 +- .../impl/SourceDownloadServiceForJTImpl.java | 28 - .../impl/SourcePlaybackServiceForJTImpl.java | 5 +- .../iot/vmp/jt1078/session/Session.java | 6 + .../zlm/ZLMMediaServerStatusManager.java | 1 - web/src/store/modules/commonChanel.js | 2 +- web/src/views/jtDevice/channel/record.vue | 7 +- web/src/views/jtDevice/channel/record2.vue | 485 ------------------ 数据库/2.7.4/初始化-mysql-2.7.4.sql | 1 - .../2.7.4/初始化-postgresql-kingbase-2.7.4.sql | 1 - 数据库/2.7.4/更新-mysql-2.7.4.sql | 1 - .../2.7.4/更新-postgresql-kingbase-2.7.4.sql | 1 - 20 files changed, 129 insertions(+), 647 deletions(-) delete mode 100644 src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/SourceDownloadServiceForJTImpl.java delete mode 100755 web/src/views/jtDevice/channel/record2.vue diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/CommonRecordInfo.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/CommonRecordInfo.java index 9f2efa913..90d8306aa 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/CommonRecordInfo.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/CommonRecordInfo.java @@ -11,4 +11,7 @@ public class CommonRecordInfo { // 结束时间 private String endTime; + // 文件大小 单位byte + private String fileSize; + } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordInfo.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordInfo.java index 5b524cf67..130b768c5 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordInfo.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordInfo.java @@ -2,15 +2,19 @@ package com.genersoft.iot.vmp.gb28181.bean; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; import java.time.Instant; import java.util.List; -/** - * @description:设备录像信息bean +/** + * @description:设备录像信息bean * @author: swwheihei - * @date: 2020年5月8日 下午2:05:56 + * @date: 2020年5月8日 下午2:05:56 */ +@Setter +@Getter @Schema(description = "设备录像查询结果信息") public class RecordInfo { @@ -36,67 +40,4 @@ public class RecordInfo { @Schema(description = "") private List recordList; - public String getDeviceId() { - return deviceId; - } - - public void setDeviceId(String deviceId) { - this.deviceId = deviceId; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getSumNum() { - return sumNum; - } - - public void setSumNum(int sumNum) { - this.sumNum = sumNum; - } - - public List getRecordList() { - return recordList; - } - - public void setRecordList(List recordList) { - this.recordList = recordList; - } - - public String getChannelId() { - return channelId; - } - - public void setChannelId(String channelId) { - this.channelId = channelId; - } - - public String getSn() { - return sn; - } - - public void setSn(String sn) { - this.sn = sn; - } - - public Instant getLastTime() { - return lastTime; - } - - public void setLastTime(Instant lastTime) { - this.lastTime = lastTime; - } - - public int getCount() { - return count; - } - - public void setCount(int count) { - this.count = count; - } } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordItem.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordItem.java index c6853330f..bc7630b34 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordItem.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/RecordItem.java @@ -44,7 +44,7 @@ public class RecordItem implements Comparable{ @Schema(description = "保密属性(必选)缺省为0;0:不涉密,1:涉密") private int secrecy; - @Schema(description = "录像产生类型(可选)time或alarm 或 manua") + @Schema(description = "录像产生类型(可选)time或alarm 或 manual") private String type; @Schema(description = "录像触发者ID(可选)") diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/SourcePlaybackServiceForGbImpl.java b/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/SourcePlaybackServiceForGbImpl.java index f72bcec8d..859cda261 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/SourcePlaybackServiceForGbImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/SourcePlaybackServiceForGbImpl.java @@ -101,6 +101,7 @@ public class SourcePlaybackServiceForGbImpl implements ISourcePlaybackService { CommonRecordInfo recordInfo = new CommonRecordInfo(); recordInfo.setStartTime(recordItem.getStartTime()); recordInfo.setEndTime(recordItem.getEndTime()); + recordInfo.setFileSize(recordItem.getFileSize()); recordInfoList.add(recordInfo); } callback.run(ErrorCode.SUCCESS.getCode(), ErrorCode.SUCCESS.getMsg(), recordInfoList); diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/RecordInfoQueryMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/RecordInfoQueryMessageHandler.java index f555520ad..b0b82ef6b 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/RecordInfoQueryMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/RecordInfoQueryMessageHandler.java @@ -1,13 +1,11 @@ package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.query.cmd; import com.genersoft.iot.vmp.common.enums.ChannelDataType; -import com.genersoft.iot.vmp.gb28181.bean.CommonGBChannel; -import com.genersoft.iot.vmp.gb28181.bean.Device; -import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; -import com.genersoft.iot.vmp.gb28181.bean.Platform; +import com.genersoft.iot.vmp.gb28181.bean.*; import com.genersoft.iot.vmp.gb28181.event.record.RecordInfoEventListener; import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService; import com.genersoft.iot.vmp.gb28181.service.IDeviceService; +import com.genersoft.iot.vmp.gb28181.service.IGbChannelPlayService; import com.genersoft.iot.vmp.gb28181.service.IGbChannelService; import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander; import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommanderForPlatform; @@ -27,6 +25,8 @@ import javax.sip.RequestEvent; import javax.sip.SipException; import javax.sip.message.Response; import java.text.ParseException; +import java.util.ArrayList; +import java.util.List; @Slf4j @Component @@ -40,6 +40,9 @@ public class RecordInfoQueryMessageHandler extends SIPRequestProcessorParent imp @Autowired private IGbChannelService channelService; + @Autowired + private IGbChannelPlayService playService; + @Autowired private IDeviceService deviceService; @@ -105,55 +108,105 @@ public class RecordInfoQueryMessageHandler extends SIPRequestProcessorParent imp } return; } - if (channel.getDataType() != ChannelDataType.GB28181) { - log.info("[平台查询录像记录] 只支持查询国标28181的录像数据 {}/{}", platform.getName(), channelId ); - try { - responseAck(request, Response.NOT_IMPLEMENTED); // 回复未实现 - } catch (SipException | InvalidArgumentException | ParseException e) { - log.error("[命令发送失败] 平台查询录像记录: {}", e.getMessage()); + if (channel.getDataType() == ChannelDataType.GB28181) { + Device device = deviceService.getDevice(channel.getDataDeviceId()); + if (device == null) { + log.warn("[平台查询录像记录] 未找到通道对应的设备 {}/{}", platform.getName(), channelId ); + try { + responseAck(request, Response.BAD_REQUEST); + } catch (SipException | InvalidArgumentException | ParseException e) { + log.error("[命令发送失败] [平台查询录像记录] 未找到通道对应的设备: {}", e.getMessage()); + } + return; } - return; - } - Device device = deviceService.getDevice(channel.getDataDeviceId()); - if (device == null) { - log.warn("[平台查询录像记录] 未找到通道对应的设备 {}/{}", platform.getName(), channelId ); + // 获取通道的原始信息 + DeviceChannel deviceChannel = deviceChannelService.getOneForSourceById(channel.getGbId()); + // 接收录像数据 + recordInfoEventListener.addEndEventHandler(device.getDeviceId(), deviceChannel.getDeviceId(), (recordInfo)->{ + try { + log.info("[国标级联] 录像查询收到数据, 通道: {},准备转发===", channelId); + cmderFroPlatform.recordInfo(channel, platform, request.getFromTag(), recordInfo); + } catch (SipException | InvalidArgumentException | ParseException e) { + log.error("[命令发送失败] 国标级联 回复录像数据: {}", e.getMessage()); + } + }); try { - responseAck(request, Response.BAD_REQUEST); - } catch (SipException | InvalidArgumentException | ParseException e) { - log.error("[命令发送失败] [平台查询录像记录] 未找到通道对应的设备: {}", e.getMessage()); + commander.recordInfoQuery(device, deviceChannel.getDeviceId(), DateUtil.ISO8601Toyyyy_MM_dd_HH_mm_ss(startTime), + DateUtil.ISO8601Toyyyy_MM_dd_HH_mm_ss(endTime), sn, secrecy, type, (eventResult -> { + // 回复200 OK + try { + responseAck(request, Response.OK); + } catch (SipException | InvalidArgumentException | ParseException e) { + log.error("[命令发送失败] 录像查询回复: {}", e.getMessage()); + } + }),(eventResult -> { + // 查询失败 + try { + responseAck(request, eventResult.statusCode, eventResult.msg); + } catch (SipException | InvalidArgumentException | ParseException e) { + log.error("[命令发送失败] 录像查询回复: {}", e.getMessage()); + } + })); + } catch (InvalidArgumentException | ParseException | SipException e) { + log.error("[命令发送失败] 录像查询: {}", e.getMessage()); } - return; - } - // 获取通道的原始信息 - DeviceChannel deviceChannel = deviceChannelService.getOneForSourceById(channel.getGbId()); - // 接收录像数据 - recordInfoEventListener.addEndEventHandler(device.getDeviceId(), deviceChannel.getDeviceId(), (recordInfo)->{ + }else { + // 回复200 OK try { - log.info("[国标级联] 录像查询收到数据, 通道: {},准备转发===", channelId); - cmderFroPlatform.recordInfo(channel, platform, request.getFromTag(), recordInfo); + responseAck(request, Response.OK); } catch (SipException | InvalidArgumentException | ParseException e) { - log.error("[命令发送失败] 国标级联 回复录像数据: {}", e.getMessage()); + log.error("[命令发送失败] 录像查询回复: {}", e.getMessage()); } - }); - try { - commander.recordInfoQuery(device, deviceChannel.getDeviceId(), DateUtil.ISO8601Toyyyy_MM_dd_HH_mm_ss(startTime), - DateUtil.ISO8601Toyyyy_MM_dd_HH_mm_ss(endTime), sn, secrecy, type, (eventResult -> { - // 回复200 OK - try { - responseAck(request, Response.OK); - } catch (SipException | InvalidArgumentException | ParseException e) { - log.error("[命令发送失败] 录像查询回复: {}", e.getMessage()); - } - }),(eventResult -> { - // 查询失败 - try { - responseAck(request, eventResult.statusCode, eventResult.msg); - } catch (SipException | InvalidArgumentException | ParseException e) { - log.error("[命令发送失败] 录像查询回复: {}", e.getMessage()); - } - })); - } catch (InvalidArgumentException | ParseException | SipException e) { - log.error("[命令发送失败] 录像查询: {}", e.getMessage()); + + playService.queryRecord(channel, DateUtil.ISO8601Toyyyy_MM_dd_HH_mm_ss(startTime), + DateUtil.ISO8601Toyyyy_MM_dd_HH_mm_ss(endTime), + (code, msg, commonRecordInfoList) -> { + RecordInfo recordInfo = new RecordInfo(); + recordInfo.setSumNum(commonRecordInfoList.size()); + recordInfo.setChannelId(channelId); + recordInfo.setSn(sn + ""); + List recordList = new ArrayList<>(commonRecordInfoList.size()); + for (int i = 0; i < commonRecordInfoList.size(); i++) { + CommonRecordInfo commonRecordInfo = commonRecordInfoList.get(i); + RecordItem recordItem = new RecordItem(); + recordItem.setDeviceId(channelId); + recordItem.setName(commonRecordInfo.getStartTime()); + recordItem.setFilePath("/" + commonRecordInfo.getStartTime()); + recordItem.setAddress("/" + commonRecordInfo.getStartTime()); + recordItem.setStartTime(commonRecordInfo.getStartTime()); + recordItem.setEndTime(commonRecordInfo.getEndTime()); + recordItem.setSecrecy(0); + recordItem.setRecorderId(""); + recordItem.setType(""); + recordItem.setFileSize(commonRecordInfo.getFileSize()); + recordList.add(recordItem); + } + recordInfo.setRecordList(recordList); + + try { + log.info("[国标级联] 录像查询收到数据, 通道: {},准备转发===", channelId); + cmderFroPlatform.recordInfo(channel, platform, request.getFromTag(), recordInfo); + } catch (SipException | InvalidArgumentException | ParseException e) { + log.error("[命令发送失败] 国标级联 回复录像数据: {}", e.getMessage()); + } + }); } +// +// +// +// +// +// +// +// if (channel.getDataType() != ChannelDataType.GB28181) { +// log.info("[平台查询录像记录] 只支持查询国标28181的录像数据 {}/{}", platform.getName(), channelId ); +// try { +// responseAck(request, Response.NOT_IMPLEMENTED); // 回复未实现 +// } catch (SipException | InvalidArgumentException | ParseException e) { +// log.error("[命令发送失败] 平台查询录像记录: {}", e.getMessage()); +// } +// return; +// } + } } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTDevice.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTDevice.java index c19923f31..06a087d0e 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTDevice.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTDevice.java @@ -86,7 +86,6 @@ public class JTDevice { ", 车牌颜色=" + plateColor + ", 车牌='" + plateNo + '\'' + ", 注册时间='" + registerTime + '\'' + - ", 鉴权码='" + authenticationCode + '\'' + ", status=" + status + '}'; } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/codec/decode/Jt808Decoder.java b/src/main/java/com/genersoft/iot/vmp/jt1078/codec/decode/Jt808Decoder.java index 101e5d63a..3bfcfcf5b 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/codec/decode/Jt808Decoder.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/codec/decode/Jt808Decoder.java @@ -42,7 +42,6 @@ public class Jt808Decoder extends ByteToMessageDecoder { @Override protected void decode(ChannelHandlerContext ctx, ByteBuf in, List out) throws Exception { - in.retain(); Session session = ctx.channel().attr(Session.KEY).get(); log.info("> {} hex: 7e{}7e", session, ByteBufUtil.hexDump(in)); try { @@ -76,7 +75,6 @@ public class Jt808Decoder extends ByteToMessageDecoder { Re handler = CodecFactory.getHandler(header.getMsgId()); if (handler == null) { log.error("get msgId is null {}", header.getMsgId()); - in.skipBytes(in.readableBytes()); buf.release(); return; } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0100.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0100.java index 3320321b4..8be3abc4a 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0100.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0100.java @@ -91,7 +91,7 @@ public class J0100 extends Re { j8100.setResult(J8100.SUCCESS); String authenticationCode = UUID.randomUUID().toString(); j8100.setCode(authenticationCode); - deviceForUpdate.setAuthenticationCode(authenticationCode); + session.setAuthenticationCode(authenticationCode); deviceForUpdate.setStatus(true); deviceForUpdate.setProvinceId(device.getProvinceId()); deviceForUpdate.setRegisterTime(DateUtil.getNow()); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0102.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0102.java index c286cf0d1..8d3e2a77b 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0102.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0102.java @@ -42,15 +42,16 @@ public class J0102 extends Re { @Override protected Rs handler(Header header, Session session, Ijt1078Service service) { - JTDevice device = service.getDevice(header.getPhoneNumber()); J8001 j8001 = new J8001(); j8001.setRespNo(header.getSn()); j8001.setRespId(header.getMsgId()); - if (device == null || !device.getAuthenticationCode().equals(authenticationCode)) { + if (session.getAuthenticationCode() == null || + !session.getAuthenticationCode().equals(authenticationCode)) { j8001.setResult(J8001.FAIL); }else { j8001.setResult(J8001.SUCCESS); - if (!device.isStatus()) { + JTDevice device = service.getDevice(header.getPhoneNumber()); + if (device != null && !device.isStatus()) { deviceForUpdate = device; deviceForUpdate.setStatus(true); service.updateDevice(device); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/SourceDownloadServiceForJTImpl.java b/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/SourceDownloadServiceForJTImpl.java deleted file mode 100644 index 7b7418505..000000000 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/SourceDownloadServiceForJTImpl.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.genersoft.iot.vmp.jt1078.service.impl; - -import com.genersoft.iot.vmp.common.InviteSessionType; -import com.genersoft.iot.vmp.common.StreamInfo; -import com.genersoft.iot.vmp.common.enums.ChannelDataType; -import com.genersoft.iot.vmp.gb28181.bean.CommonGBChannel; -import com.genersoft.iot.vmp.gb28181.service.IPlayService; -import com.genersoft.iot.vmp.gb28181.service.ISourceDownloadService; -import com.genersoft.iot.vmp.service.bean.ErrorCallback; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -@Slf4j -@Service(ChannelDataType.DOWNLOAD_SERVICE + ChannelDataType.JT_1078) -public class SourceDownloadServiceForJTImpl implements ISourceDownloadService { - - - @Override - public void download(CommonGBChannel channel, Long startTime, Long stopTime, Integer downloadSpeed, ErrorCallback callback) { - - } - - @Override - public void stopDownload(CommonGBChannel channel, String stream) { - - } -} diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/SourcePlaybackServiceForJTImpl.java b/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/SourcePlaybackServiceForJTImpl.java index 61fb46774..13881ce2c 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/SourcePlaybackServiceForJTImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/SourcePlaybackServiceForJTImpl.java @@ -49,8 +49,8 @@ public class SourcePlaybackServiceForJTImpl implements ISourcePlaybackService { Assert.notNull(device, "设备不存在"); jt1078Template.checkTerminalStatus(device.getPhoneNumber()); - playService.playback(device.getPhoneNumber(), jtChannel.getChannelId(), DateUtil.timestampMsTo_yyyy_MM_dd_HH_mm_ss(startTime), - DateUtil.timestampMsTo_yyyy_MM_dd_HH_mm_ss(stopTime), 0, 0, 0, 0, result -> { + playService.playback(device.getPhoneNumber(), jtChannel.getChannelId(), DateUtil.timestampTo_yyyy_MM_dd_HH_mm_ss(startTime), + DateUtil.timestampTo_yyyy_MM_dd_HH_mm_ss(stopTime), 0, 0, 0, 0, result -> { callback.run(result.getCode(), result.getMsg(), result.getData()); }); } @@ -123,6 +123,7 @@ public class SourcePlaybackServiceForJTImpl implements ISourcePlaybackService { CommonRecordInfo commonRecordInfo = new CommonRecordInfo(); commonRecordInfo.setStartTime(jRecordItem.getStartTime()); commonRecordInfo.setEndTime(jRecordItem.getEndTime()); + commonRecordInfo.setFileSize(jRecordItem.getSize() + ""); recordInfoList.add(commonRecordInfo); } callback.run(ErrorCode.SUCCESS.getCode(), ErrorCode.SUCCESS.getMsg(), recordInfoList); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/session/Session.java b/src/main/java/com/genersoft/iot/vmp/jt1078/session/Session.java index 63f698080..9c3d13ac1 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/session/Session.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/session/Session.java @@ -5,6 +5,7 @@ import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; import io.netty.util.AttributeKey; import lombok.Getter; +import lombok.Setter; import lombok.extern.slf4j.Slf4j; import java.net.InetSocketAddress; @@ -35,6 +36,11 @@ public class Session { @Getter private String phoneNumber; + // 设备手机号 + @Setter + @Getter + private String authenticationCode; + // 创建时间 @Getter private final long creationTime; diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaServerStatusManager.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaServerStatusManager.java index 37e6e846d..649c3e5c8 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaServerStatusManager.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaServerStatusManager.java @@ -257,7 +257,6 @@ public class ZLMMediaServerStatusManager { String hookPrefix = String.format("%s://%s:%s%s/index/hook", protocol, mediaServerItem.getHookIp(), serverPort, (serverServletContextPath == null || "/".equals(serverServletContextPath)) ? "" : serverServletContextPath); Map param = new HashMap<>(); - param.put("api.secret",mediaServerItem.getSecret()); // -profile:v Baseline if (mediaServerItem.getRtspPort() != 0) { param.put("ffmpeg.snap", "%s -rtsp_transport tcp -i %s -y -f mjpeg -frames:v 1 %s"); } diff --git a/web/src/store/modules/commonChanel.js b/web/src/store/modules/commonChanel.js index 344983782..e1a84442b 100644 --- a/web/src/store/modules/commonChanel.js +++ b/web/src/store/modules/commonChanel.js @@ -544,7 +544,7 @@ const actions = { }, seekPlayback({ commit }, params) { return new Promise((resolve, reject) => { - resumePlayback(params).then(response => { + seekPlayback(params).then(response => { const { data } = response resolve(data) }).catch(error => { diff --git a/web/src/views/jtDevice/channel/record.vue b/web/src/views/jtDevice/channel/record.vue index 6dbb1bc71..968aeecb0 100755 --- a/web/src/views/jtDevice/channel/record.vue +++ b/web/src/views/jtDevice/channel/record.vue @@ -461,12 +461,9 @@ export default { } } if (this.streamInfo !== null) { - this.stopPlayRecord(() => { - this.downloadFile(row) - }) - } else { - this.downloadRecord(row) + this.stopPlayRecord() } + this.downloadRecord(row) }, downloadRecord: function(row) { const loading = this.$loading({ diff --git a/web/src/views/jtDevice/channel/record2.vue b/web/src/views/jtDevice/channel/record2.vue deleted file mode 100755 index 4fd01863c..000000000 --- a/web/src/views/jtDevice/channel/record2.vue +++ /dev/null @@ -1,485 +0,0 @@ - - - - - diff --git a/数据库/2.7.4/初始化-mysql-2.7.4.sql b/数据库/2.7.4/初始化-mysql-2.7.4.sql index f8e3d625b..0b3959f29 100644 --- a/数据库/2.7.4/初始化-mysql-2.7.4.sql +++ b/数据库/2.7.4/初始化-mysql-2.7.4.sql @@ -477,7 +477,6 @@ create table IF NOT EXISTS wvp_jt_terminal ( model character varying(50), plate_color character varying(50), plate_no character varying(50), - authentication_code character varying(255), longitude double precision, latitude double precision, status bool default false, diff --git a/数据库/2.7.4/初始化-postgresql-kingbase-2.7.4.sql b/数据库/2.7.4/初始化-postgresql-kingbase-2.7.4.sql index b3e245e5f..51ab09806 100644 --- a/数据库/2.7.4/初始化-postgresql-kingbase-2.7.4.sql +++ b/数据库/2.7.4/初始化-postgresql-kingbase-2.7.4.sql @@ -478,7 +478,6 @@ create table IF NOT EXISTS wvp_jt_terminal ( model character varying(50), plate_color character varying(50), plate_no character varying(50), - authentication_code character varying(255), longitude double precision, latitude double precision, status bool default false, diff --git a/数据库/2.7.4/更新-mysql-2.7.4.sql b/数据库/2.7.4/更新-mysql-2.7.4.sql index a14db8183..3bee62d10 100644 --- a/数据库/2.7.4/更新-mysql-2.7.4.sql +++ b/数据库/2.7.4/更新-mysql-2.7.4.sql @@ -11,7 +11,6 @@ create table IF NOT EXISTS wvp_jt_terminal ( model character varying(50), plate_color character varying(50), plate_no character varying(50), - authentication_code character varying(255), longitude double precision, latitude double precision, status bool default false, diff --git a/数据库/2.7.4/更新-postgresql-kingbase-2.7.4.sql b/数据库/2.7.4/更新-postgresql-kingbase-2.7.4.sql index af7accf6a..395aa813e 100644 --- a/数据库/2.7.4/更新-postgresql-kingbase-2.7.4.sql +++ b/数据库/2.7.4/更新-postgresql-kingbase-2.7.4.sql @@ -11,7 +11,6 @@ create table IF NOT EXISTS wvp_jt_terminal ( model character varying(50), plate_color character varying(50), plate_no character varying(50), - authentication_code character varying(255), longitude double precision, latitude double precision, status bool default false,