diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTChannel.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTChannel.java new file mode 100644 index 000000000..ecbd151e7 --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTChannel.java @@ -0,0 +1,82 @@ +package com.genersoft.iot.vmp.jt1078.bean; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * JT 通道 + */ +@Schema(description = "jt808通道") +public class JTChannel { + + private int id; + + /** + * 名称 + */ + @Schema(description = "名称") + private String name; + + /** + * 设备的数据库ID + */ + @Schema(description = "设备的数据库ID") + private int deviceId; + + + @Schema(description = "创建时间") + private String createTime; + + @Schema(description = "更新时间") + private String updateTime; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getDeviceId() { + return deviceId; + } + + public void setDeviceId(int deviceId) { + this.deviceId = deviceId; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + @Override + public String toString() { + return "JTChannel{" + + "id=" + id + + ", name='" + name + '\'' + + ", deviceId=" + deviceId + + ", createTime='" + createTime + '\'' + + ", updateTime='" + updateTime + '\'' + + '}'; + } +} 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 612da2ee1..54c393d63 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 @@ -47,10 +47,10 @@ public class JTDevice { private String deviceModel; /** - * 终端ID + * 终端手机号 */ - @Schema(description = "终端ID") - private String terminalId; + @Schema(description = "终端手机号") + private Integer phoneNumber; /** * 设备ID @@ -154,12 +154,12 @@ public class JTDevice { this.deviceModel = deviceModel; } - public String getTerminalId() { - return terminalId; + public Integer getPhoneNumber() { + return phoneNumber; } - public void setTerminalId(String terminalId) { - this.terminalId = terminalId; + public void setPhoneNumber(Integer phoneNumber) { + this.phoneNumber = phoneNumber; } public String getDeviceId() { @@ -243,7 +243,7 @@ public class JTDevice { ", 市县域文字描述='" + cityText + '\'' + ", 制造商ID='" + makerId + '\'' + ", 终端型号='" + deviceModel + '\'' + - ", 终端ID='" + terminalId + '\'' + + ", 终端手机号='" + phoneNumber + '\'' + ", 设备ID='" + deviceId + '\'' + ", 车牌颜色=" + plateColor + ", 车牌='" + plateNo + '\'' + 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 92011283f..8b33e8768 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 @@ -53,10 +53,10 @@ public class Jt808Decoder extends ByteToMessageDecoder { header.setVersion(buf.readUnsignedByte()); String devId = ByteBufUtil.hexDump(buf.readSlice(10)); - header.setTerminalId(devId.replaceFirst("^0*", "")); + header.setTerminalPhoneNumber(devId.replaceFirst("^0*", "")); } else { - header.setTerminalId(ByteBufUtil.hexDump(buf.readSlice(6)).replaceFirst("^0*", "")); + header.setTerminalPhoneNumber(ByteBufUtil.hexDump(buf.readSlice(6)).replaceFirst("^0*", "")); } header.setSn(buf.readUnsignedShort()); if (isSubpackage) { diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/codec/decode/MultiPacketManager.java b/src/main/java/com/genersoft/iot/vmp/jt1078/codec/decode/MultiPacketManager.java index 556ba9cb1..4f51ef3b0 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/codec/decode/MultiPacketManager.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/codec/decode/MultiPacketManager.java @@ -1,7 +1,6 @@ package com.genersoft.iot.vmp.jt1078.codec.decode; import io.netty.buffer.ByteBuf; -import io.netty.buffer.ByteBufUtil; import io.netty.buffer.Unpooled; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -25,7 +24,7 @@ public enum MultiPacketManager { * 增加待合并的分包,如果分包接受完毕会返回完整的数据包 */ public ByteBuf add(MultiPacket packet) { - String key = packet.getHeader().getMsgId() + "/" + packet.getHeader().getTerminalId(); + String key = packet.getHeader().getMsgId() + "/" + packet.getHeader().getTerminalPhoneNumber(); logger.debug("分包消息: \n{}", packet); List multiPackets = packetMap.computeIfAbsent(key, k -> new ArrayList<>(packet.getCount())); multiPackets.add(packet); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/codec/encode/Jt808EncoderCmd.java b/src/main/java/com/genersoft/iot/vmp/jt1078/codec/encode/Jt808EncoderCmd.java index d4097b817..1d22632f5 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/codec/encode/Jt808EncoderCmd.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/codec/encode/Jt808EncoderCmd.java @@ -94,12 +94,12 @@ public class Jt808EncoderCmd extends MessageToByteEncoder { byteBuf.writeByte(header.getVersion()); // 终端手机号 - byteBuf.writeBytes(ByteBufUtil.decodeHexDump(Bin.strHexPaddingLeft(header.getTerminalId(), 20))); + byteBuf.writeBytes(ByteBufUtil.decodeHexDump(Bin.strHexPaddingLeft(header.getTerminalPhoneNumber(), 20))); } else { // 消息体属性 byteBuf.writeShort(encode.readableBytes()); - byteBuf.writeBytes(ByteBufUtil.decodeHexDump(Bin.strHexPaddingLeft(header.getTerminalId(), 12))); + byteBuf.writeBytes(ByteBufUtil.decodeHexDump(Bin.strHexPaddingLeft(header.getTerminalPhoneNumber(), 12))); } // 消息体流水号 diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/JT1078Controller.java b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/JT1078Controller.java index 2f594fd38..42517cd8a 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/JT1078Controller.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/JT1078Controller.java @@ -51,7 +51,7 @@ import java.util.Map; @ConditionalOnProperty(value = "jt1078.enable", havingValue = "true") @RestController -@Tag(name = "部标设备") +@Tag(name = "部标设备控制") @RequestMapping("/api/jt1078") public class JT1078Controller { @@ -71,12 +71,12 @@ public class JT1078Controller { private ThreadPoolTaskExecutor taskExecutor; @Operation(summary = "1078-开始点播", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备国标编号", required = true) + @Parameter(name = "phoneNumber", description = "设备手机号", required = true) @Parameter(name = "channelId", description = "通道国标编号, 一般为从1开始的数字", required = true) @Parameter(name = "type", description = "类型:0:音视频,1:视频,3:音频", required = true) @GetMapping("/live/start") public DeferredResult> startLive(HttpServletRequest request, - @Parameter(required = true) String deviceId, + @Parameter(required = true) String phoneNumber, @Parameter(required = true) String channelId, @Parameter(required = false) Integer type) { if (type == null || (type != 0 && type != 1 && type != 3)) { @@ -84,16 +84,16 @@ public class JT1078Controller { } DeferredResult> result = new DeferredResult<>(userSetting.getPlayTimeout().longValue()); result.onTimeout(()->{ - logger.info("[1078-点播等待超时] deviceId:{}, channelId:{}, ", deviceId, channelId); + logger.info("[1078-点播等待超时] phoneNumber:{}, channelId:{}, ", phoneNumber, channelId); // 释放rtpserver WVPResult wvpResult = new WVPResult<>(); wvpResult.setCode(ErrorCode.ERROR100.getCode()); wvpResult.setMsg("超时"); result.setResult(wvpResult); - service.stopPlay(deviceId, channelId); + service.stopPlay(phoneNumber, channelId); }); - service.play(deviceId, channelId, type, (code, msg, streamInfo) -> { + service.play(phoneNumber, channelId, type, (code, msg, streamInfo) -> { WVPResult wvpResult = new WVPResult<>(); if (code == InviteErrorCode.SUCCESS.getCode()) { wvpResult.setCode(ErrorCode.SUCCESS.getCode()); @@ -127,17 +127,17 @@ public class JT1078Controller { } @Operation(summary = "1078-结束点播", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备国标编号", required = true) + @Parameter(name = "phoneNumber", description = "设备手机号", required = true) @Parameter(name = "channelId", description = "通道国标编号, 一般为从1开始的数字", required = true) @GetMapping("/live/stop") public void stopLive(HttpServletRequest request, - @Parameter(required = true) String deviceId, + @Parameter(required = true) String phoneNumber, @Parameter(required = true) String channelId) { - service.stopPlay(deviceId, channelId); + service.stopPlay(phoneNumber, channelId); } @Operation(summary = "1078-语音对讲", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备国标编号", required = true) + @Parameter(name = "phoneNumber", description = "设备手机号", required = true) @Parameter(name = "channelId", description = "通道国标编号, 一般为从1开始的数字", required = true) @Parameter(name = "app", description = "推流应用名", required = true) @Parameter(name = "stream", description = "推流ID", required = true) @@ -145,7 +145,7 @@ public class JT1078Controller { @Parameter(name = "onlySend", description = "是否只发送", required = false) @GetMapping("/talk/start") public DeferredResult> startTalk(HttpServletRequest request, - @Parameter(required = true) String deviceId, + @Parameter(required = true) String phoneNumber, @Parameter(required = true) String channelId, @Parameter(required = true) String app, @Parameter(required = true) String stream, @@ -157,16 +157,16 @@ public class JT1078Controller { } String finalChannelId = channelId; result.onTimeout(()->{ - logger.info("[1078-语音对讲超时] deviceId:{}, channelId:{}, ", deviceId, finalChannelId); + logger.info("[1078-语音对讲超时] phoneNumber:{}, channelId:{}, ", phoneNumber, finalChannelId); // 释放rtpserver WVPResult wvpResult = new WVPResult<>(); wvpResult.setCode(ErrorCode.ERROR100.getCode()); wvpResult.setMsg("超时"); result.setResult(wvpResult); - service.stopPlay(deviceId, finalChannelId); + service.stopPlay(phoneNumber, finalChannelId); }); - service.startTalk(deviceId, channelId, app, stream, mediaServerId, onlySend, (code, msg, streamInfo) -> { + service.startTalk(phoneNumber, channelId, app, stream, mediaServerId, onlySend, (code, msg, streamInfo) -> { WVPResult wvpResult = new WVPResult<>(); if (code == InviteErrorCode.SUCCESS.getCode()) { wvpResult.setCode(ErrorCode.SUCCESS.getCode()); @@ -200,57 +200,57 @@ public class JT1078Controller { } @Operation(summary = "1078-结束对讲", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备国标编号", required = true) + @Parameter(name = "phoneNumber", description = "设备手机号", required = true) @Parameter(name = "channelId", description = "通道国标编号, 一般为从1开始的数字", required = true) @GetMapping("/talk/stop") public void stopTalk(HttpServletRequest request, - @Parameter(required = true) String deviceId, + @Parameter(required = true) String phoneNumber, @Parameter(required = true) String channelId) { - service.stopTalk(deviceId, channelId); + service.stopTalk(phoneNumber, channelId); } @Operation(summary = "1078-暂停点播", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备国标编号", required = true) + @Parameter(name = "phoneNumber", description = "设备手机号", required = true) @Parameter(name = "channelId", description = "通道国标编号, 一般为从1开始的数字", required = true) @GetMapping("/live/pause") public void pauseLive(HttpServletRequest request, - @Parameter(required = true) String deviceId, + @Parameter(required = true) String phoneNumber, @Parameter(required = true) String channelId) { - service.pausePlay(deviceId, channelId); + service.pausePlay(phoneNumber, channelId); } @Operation(summary = "1078-继续点播", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备国标编号", required = true) + @Parameter(name = "phoneNumber", description = "设备手机号", required = true) @Parameter(name = "channelId", description = "通道国标编号, 一般为从1开始的数字", required = true) @GetMapping("/live/continue") public void continueLive(HttpServletRequest request, - @Parameter(required = true) String deviceId, + @Parameter(required = true) String phoneNumber, @Parameter(required = true) String channelId) { - service.continueLivePlay(deviceId, channelId); + service.continueLivePlay(phoneNumber, channelId); } @Operation(summary = "1078-切换码流类型", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备国标编号", required = true) + @Parameter(name = "phoneNumber", description = "设备手机号", required = true) @Parameter(name = "channelId", description = "通道国标编号, 一般为从1开始的数字", required = true) @Parameter(name = "streamType", description = "0:主码流; 1:子码流", required = true) @GetMapping("/live/switch") public void changeStreamType(HttpServletRequest request, - @Parameter(required = true) String deviceId, + @Parameter(required = true) String phoneNumber, @Parameter(required = true) String channelId, @Parameter(required = true) Integer streamType) { - service.changeStreamType(deviceId, channelId, streamType); + service.changeStreamType(phoneNumber, channelId, streamType); } @Operation(summary = "1078-录像-查询资源列表", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备国标编号", required = true) + @Parameter(name = "phoneNumber", description = "设备手机号", required = true) @Parameter(name = "channelId", description = "通道国标编号, 一般为从1开始的数字", required = true) @Parameter(name = "startTime", description = "开始时间,格式: yyyy-MM-dd HH:mm:ss", required = true) @Parameter(name = "endTime", description = "结束时间,格式: yyyy-MM-dd HH:mm:ss", required = true) @GetMapping("/record/list") public WVPResult> playbackList(HttpServletRequest request, - @Parameter(required = true) String deviceId, + @Parameter(required = true) String phoneNumber, @Parameter(required = false) String channelId, @Parameter(required = true) String startTime, @Parameter(required = true) String endTime @@ -258,7 +258,7 @@ public class JT1078Controller { if (ObjectUtils.isEmpty(channelId)) { channelId = "1"; } - List recordList = service.getRecordList(deviceId, channelId, startTime, endTime); + List recordList = service.getRecordList(phoneNumber, channelId, startTime, endTime); if (recordList == null) { return WVPResult.fail(ErrorCode.ERROR100); }else { @@ -266,7 +266,7 @@ public class JT1078Controller { } } @Operation(summary = "1078-录像-开始回放", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备国标编号", required = true) + @Parameter(name = "phoneNumber", description = "设备手机号", required = true) @Parameter(name = "channelId", description = "通道国标编号, 一般为从1开始的数字", required = true) @Parameter(name = "startTime", description = "开始时间,格式: yyyy-MM-dd HH:mm:ss", required = true) @Parameter(name = "endTime", description = "结束时间,格式: yyyy-MM-dd HH:mm:ss", required = true) @@ -276,7 +276,7 @@ public class JT1078Controller { @Parameter(name = "playbackSpeed", description = "0.无效 1.1倍 2.2倍 3.4倍 4.8倍 5.16倍 (回放控制为1和2时,此字段内容有效,否则置0)", required = true) @GetMapping("/playback/start") public DeferredResult> recordLive(HttpServletRequest request, - @Parameter(required = true) String deviceId, + @Parameter(required = true) String phoneNumber, @Parameter(required = false) String channelId, @Parameter(required = true) String startTime, @Parameter(required = true) String endTime, @@ -292,16 +292,16 @@ public class JT1078Controller { } String finalChannelId = channelId; result.onTimeout(()->{ - logger.info("[1078-回放-等待超时] deviceId:{}, channelId:{}, ", deviceId, finalChannelId); + logger.info("[1078-回放-等待超时] phoneNumber:{}, channelId:{}, ", phoneNumber, finalChannelId); // 释放rtpserver WVPResult wvpResult = new WVPResult<>(); wvpResult.setCode(ErrorCode.ERROR100.getCode()); wvpResult.setMsg("回放超时"); result.setResult(wvpResult); - service.stopPlay(deviceId, finalChannelId); + service.stopPlay(phoneNumber, finalChannelId); }); - service.playback(deviceId, channelId, startTime, endTime,type, rate, playbackType, playbackSpeed, (code, msg, streamInfo) -> { + service.playback(phoneNumber, channelId, startTime, endTime,type, rate, playbackType, playbackSpeed, (code, msg, streamInfo) -> { WVPResult wvpResult = new WVPResult<>(); if (code == InviteErrorCode.SUCCESS.getCode()) { wvpResult.setCode(ErrorCode.SUCCESS.getCode()); @@ -335,37 +335,37 @@ public class JT1078Controller { } @Operation(summary = "1078-录像-回放控制", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备国标编号", required = true) + @Parameter(name = "phoneNumber", description = "设备手机号", required = true) @Parameter(name = "channelId", description = "通道国标编号, 一般为从1开始的数字", required = true) @Parameter(name = "command", description = "0:开始回放; 1:暂停回放; 2:结束回放; 3:快进回放; 4:关键帧快退回放; 5:拖动回放; 6:关键帧播放", required = true) @Parameter(name = "playbackSpeed", description = "0.无效 1.1倍 2.2倍 3.4倍 4.8倍 5.16倍 (回放控制为1和2时,此字段内容有效,否则置0)", required = true) @Parameter(name = "time", description = "拖动回放位置(时间)", required = true) @GetMapping("/playback/control") - public void recordControl(@Parameter(required = true) String deviceId, + public void recordControl(@Parameter(required = true) String phoneNumber, @Parameter(required = true) String channelId, @Parameter(required = false) Integer command, @Parameter(required = false) String time, @Parameter(required = false) Integer playbackSpeed ) { - service.playbackControl(deviceId, channelId, command, playbackSpeed,time); + service.playbackControl(phoneNumber, channelId, command, playbackSpeed,time); } @Operation(summary = "1078-录像-结束回放", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备国标编号", required = true) + @Parameter(name = "phoneNumber", description = "设备手机号", required = true) @Parameter(name = "channelId", description = "通道国标编号, 一般为从1开始的数字", required = true) @GetMapping("/playback/stop") public void stopPlayback(HttpServletRequest request, - @Parameter(required = true) String deviceId, + @Parameter(required = true) String phoneNumber, @Parameter(required = false) String channelId) { if (ObjectUtils.isEmpty(channelId)) { channelId = "1"; } - service.stopPlayback(deviceId, channelId); + service.stopPlayback(phoneNumber, channelId); } @Operation(summary = "1078-录像-下载", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备国标编号", required = true) + @Parameter(name = "phoneNumber", description = "设备手机号", required = true) @Parameter(name = "channelId", description = "通道国标编号, 一般为从1开始的数字", required = true) @Parameter(name = "startTime", description = "开始时间,格式: yyyy-MM-dd HH:mm:ss", required = true) @Parameter(name = "endTime", description = "结束时间,格式: yyyy-MM-dd HH:mm:ss", required = true) @@ -374,7 +374,7 @@ public class JT1078Controller { @GetMapping("/playback/download") public DeferredResult recordDownload(HttpServletRequest request, HttpServletResponse response, - @Parameter(required = true) String deviceId, + @Parameter(required = true) String phoneNumber, @Parameter(required = false) String channelId, @Parameter(required = true) String startTime, @Parameter(required = true) String endTime, @@ -383,16 +383,16 @@ public class JT1078Controller { ) throws IOException { logger.info("[1078-录像] 下载,设备:{}, 通道: {}, 开始时间: {}, 结束时间: {}, 音视频类型: {}, 码流类型: {}, ", - deviceId, channelId, startTime, endTime, type, rate); + phoneNumber, channelId, startTime, endTime, type, rate); if (!ftpSetting.getEnable()) { throw new ControllerException(ErrorCode.ERROR100.getCode(), "未启用ftp服务,无法下载录像"); } DeferredResult result = new DeferredResult<>(); ServletOutputStream outputStream = response.getOutputStream(); response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); - response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(deviceId + "_" + channelId + ".mp4", "UTF-8")); + response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(phoneNumber + "_" + channelId + ".mp4", "UTF-8")); response.setStatus(HttpServletResponse.SC_OK); - service.recordDownload(deviceId, channelId, startTime, endTime, type, rate, (code, msg, data) -> { + service.recordDownload(phoneNumber, channelId, startTime, endTime, type, rate, (code, msg, data) -> { String filePath = "ftp" + data; File file = new File(filePath); if (!file.exists()) { @@ -418,105 +418,66 @@ public class JT1078Controller { return result; } - - @Operation(summary = "1078-分页查询部标设备", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "page", description = "当前页", required = true) - @Parameter(name = "count", description = "每页查询数量", required = true) - @Parameter(name = "query", description = "查询内容") - @Parameter(name = "online", description = "是否在线") - @GetMapping("/device/list") - public PageInfo getDevices(int page, int count, - @RequestParam(required = false) String query, - @RequestParam(required = false) Boolean online) { - return service.getDeviceList(page, count, query, online); - } - - @Operation(summary = "更新设备", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "device", description = "设备", required = true) - @PostMapping("/device/update") - public void updateDevice(JTDevice device){ - assert device.getId() > 0; - assert device.getDeviceId() != null; - service.updateDevice(device); - } - - - - @Operation(summary = "1078-新增设备", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "device", description = "设备", required = true) - @PostMapping("/device/add") - public void addDevice(JTDevice device){ - assert device.getDeviceId() != null; - service.addDevice(device); - } - @Operation(summary = "删除设备", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备ID", required = true) - @DeleteMapping("/device/delete") - public void addDevice(String deviceId){ - assert deviceId != null; - service.deleteDeviceByDeviceId(deviceId); - } - @Operation(summary = "1078-云台控制", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备国标编号", required = true) + @Parameter(name = "phoneNumber", description = "设备手机号", required = true) @Parameter(name = "channelId", description = "通道国标编号, 一般为从1开始的数字", required = true) @Parameter(name = "command", description = "控制指令,允许值: left, right, up, down, zoomin, zoomout, irisin, irisout, focusnear, focusfar, stop", required = true) @Parameter(name = "speed", description = "速度(0-255), command,值 left, right, up, down时有效", required = true) @PostMapping("/ptz") - public void ptz(String deviceId, String channelId, String command, int speed){ + public void ptz(String phoneNumber, String channelId, String command, int speed){ if (ObjectUtils.isEmpty(channelId)) { channelId = "1"; } - logger.info("[1078-云台控制] deviceId:{}, channelId:{}, command: {}, speed: {}", deviceId, channelId, command, speed); - service.ptzControl(deviceId, channelId, command, speed); + logger.info("[1078-云台控制] phoneNumber:{}, channelId:{}, command: {}, speed: {}", phoneNumber, channelId, command, speed); + service.ptzControl(phoneNumber, channelId, command, speed); } @Operation(summary = "1078-补光灯开关", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备国标编号", required = true) + @Parameter(name = "phoneNumber", description = "设备手机号", required = true) @Parameter(name = "channelId", description = "通道国标编号, 一般为从1开始的数字", required = true) @Parameter(name = "command", description = "控制指令,允许值: on off", required = true) @PostMapping("/fill-light") - public void fillLight(String deviceId, String channelId, String command){ + public void fillLight(String phoneNumber, String channelId, String command){ if (ObjectUtils.isEmpty(channelId)) { channelId = "1"; } - logger.info("[1078-补光灯开关] deviceId:{}, channelId:{}, command: {}", deviceId, channelId, command); - service.supplementaryLight(deviceId, channelId, command); + logger.info("[1078-补光灯开关] phoneNumber:{}, channelId:{}, command: {}", phoneNumber, channelId, command); + service.supplementaryLight(phoneNumber, channelId, command); } @Operation(summary = "1078-雨刷开关", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备国标编号", required = true) + @Parameter(name = "phoneNumber", description = "设备手机号", required = true) @Parameter(name = "channelId", description = "通道国标编号, 一般为从1开始的数字", required = true) @Parameter(name = "command", description = "控制指令,允许值: on off", required = true) @PostMapping("/wiper") - public void wiper(String deviceId, String channelId, String command){ + public void wiper(String phoneNumber, String channelId, String command){ if (ObjectUtils.isEmpty(channelId)) { channelId = "1"; } - logger.info("[1078-雨刷开关] deviceId:{}, channelId:{}, command: {}", deviceId, channelId, command); - service.wiper(deviceId, channelId, command); + logger.info("[1078-雨刷开关] phoneNumber:{}, channelId:{}, command: {}", phoneNumber, channelId, command); + service.wiper(phoneNumber, channelId, command); } @Operation(summary = "1078-查询终端参数", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备国标编号", required = true) + @Parameter(name = "phoneNumber", description = "设备手机号", required = true) @GetMapping("/config") - public JTDeviceConfig config(String deviceId, String[] params){ + public JTDeviceConfig config(String phoneNumber, String[] params){ - logger.info("[1078-查询终端参数] deviceId:{}", deviceId); - return service.queryConfig(deviceId, params, null); + logger.info("[1078-查询终端参数] phoneNumber:{}", phoneNumber); + return service.queryConfig(phoneNumber, params, null); } @Operation(summary = "1078-设置终端参数", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备编号", required = true) + @Parameter(name = "phoneNumber", description = "设备编号", required = true) @Parameter(name = "config", description = "终端参数", required = true) @PostMapping("/set-config") public void setConfig(@RequestBody SetConfigParam config){ logger.info("[1078-设置终端参数] 参数: {}", config.toString()); - service.setConfig(config.getDeviceId(), config.getConfig()); + service.setConfig(config.getPhoneNumber(), config.getConfig()); } @Operation(summary = "终端控制-连接", security = @SecurityRequirement(name = JwtUtils.HEADER)) @@ -525,74 +486,74 @@ public class JT1078Controller { public void connectionControl(@RequestBody ConnectionControlParam control){ logger.info("[1078-终端控制] 参数: {}", control.toString()); - service.connectionControl(control.getDeviceId(), control.getControl()); + service.connectionControl(control.getPhoneNumber(), control.getControl()); } @Operation(summary = "1078-终端控制-复位", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备编号", required = true) + @Parameter(name = "phoneNumber", description = "设备编号", required = true) @PostMapping("/control/reset") - public void resetControl(String deviceId){ + public void resetControl(String phoneNumber){ - logger.info("[1078-复位] deviceId: {}", deviceId); - service.resetControl(deviceId); + logger.info("[1078-复位] phoneNumber: {}", phoneNumber); + service.resetControl(phoneNumber); } @Operation(summary = "1078-终端控制-恢复出厂设置", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备编号", required = true) + @Parameter(name = "phoneNumber", description = "设备编号", required = true) @PostMapping("/control/factory-reset") - public void factoryResetControl(String deviceId){ + public void factoryResetControl(String phoneNumber){ - logger.info("[1078-恢复出厂设置] deviceId: {}", deviceId); - service.factoryResetControl(deviceId); + logger.info("[1078-恢复出厂设置] phoneNumber: {}", phoneNumber); + service.factoryResetControl(phoneNumber); } @Operation(summary = "1078-查询终端属性", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备编号", required = true) + @Parameter(name = "phoneNumber", description = "设备编号", required = true) @GetMapping("/attribute") - public JTDeviceAttribute attribute(String deviceId){ + public JTDeviceAttribute attribute(String phoneNumber){ - logger.info("[1078-查询终端属性] deviceId: {}", deviceId); - return service.attribute(deviceId); + logger.info("[1078-查询终端属性] phoneNumber: {}", phoneNumber); + return service.attribute(phoneNumber); } @Operation(summary = "1078-查询位置信息", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备编号", required = true) + @Parameter(name = "phoneNumber", description = "设备编号", required = true) @GetMapping("/position-info") - public JTPositionBaseInfo queryPositionInfo(String deviceId){ + public JTPositionBaseInfo queryPositionInfo(String phoneNumber){ - logger.info("[1078-查询位置信息] deviceId: {}", deviceId); - return service.queryPositionInfo(deviceId); + logger.info("[1078-查询位置信息] phoneNumber: {}", phoneNumber); + return service.queryPositionInfo(phoneNumber); } @Operation(summary = "1078-临时位置跟踪控制", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备编号", required = true) + @Parameter(name = "phoneNumber", description = "设备编号", required = true) @Parameter(name = "timeInterval", description = "时间间隔,单位为秒,时间间隔为0 时停止跟踪,停止跟踪无需带后继字段", required = true) @Parameter(name = "validityPeriod", description = "位置跟踪有效期, 单位为秒,终端在接收到位置跟踪控制消息后,在有效期截止时间之前依据消息中的时间间隔发送位置汇报", required = true) @GetMapping("/control/temp-position-tracking") - public void tempPositionTrackingControl(String deviceId, Integer timeInterval, Long validityPeriod){ + public void tempPositionTrackingControl(String phoneNumber, Integer timeInterval, Long validityPeriod){ - logger.info("[1078-临时位置跟踪控制] deviceId: {}, 时间间隔 {}秒, 位置跟踪有效期 {}秒", deviceId, timeInterval, validityPeriod); - service.tempPositionTrackingControl(deviceId, timeInterval, validityPeriod); + logger.info("[1078-临时位置跟踪控制] phoneNumber: {}, 时间间隔 {}秒, 位置跟踪有效期 {}秒", phoneNumber, timeInterval, validityPeriod); + service.tempPositionTrackingControl(phoneNumber, timeInterval, validityPeriod); } @Operation(summary = "1078-人工确认报警消息", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备编号", required = true) + @Parameter(name = "phoneNumber", description = "设备编号", required = true) @Parameter(name = "timeInterval", description = "时间间隔,单位为秒,时间间隔为0 时停止跟踪,停止跟踪无需带后继字段", required = true) @Parameter(name = "validityPeriod", description = "位置跟踪有效期, 单位为秒,终端在接收到位置跟踪控制消息后,在有效期截止时间之前依据消息中的时间间隔发送位置汇报", required = true) @PostMapping("/confirmation-alarm-message") public void confirmationAlarmMessage(@RequestBody ConfirmationAlarmMessageParam param){ logger.info("[1078-人工确认报警消息] 参数: {}", param); - service.confirmationAlarmMessage(param.getDeviceId(), param.getAlarmPackageNo(), param.getAlarmMessageType()); + service.confirmationAlarmMessage(param.getPhoneNumber(), param.getAlarmPackageNo(), param.getAlarmMessageType()); } @Operation(summary = "1078-链路检测", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备编号", required = true) + @Parameter(name = "phoneNumber", description = "设备编号", required = true) @GetMapping("/link-detection") - public WVPResult linkDetection(String deviceId){ + public WVPResult linkDetection(String phoneNumber){ - logger.info("[1078-链路检测] deviceId: {}", deviceId); - int result = service.linkDetection(deviceId); + logger.info("[1078-链路检测] phoneNumber: {}", phoneNumber); + int result = service.linkDetection(phoneNumber); if (result == 0) { return WVPResult.success(result); }else { @@ -608,7 +569,7 @@ public class JT1078Controller { public WVPResult textMessage(@RequestBody TextMessageParam textMessageParam){ logger.info("[1078-文本信息下发] textMessageParam: {}", textMessageParam); - int result = service.textMessage(textMessageParam.getDeviceId(), textMessageParam.getSign(), textMessageParam.getTextType(), textMessageParam.getContent()); + int result = service.textMessage(textMessageParam.getPhoneNumber(), textMessageParam.getSign(), textMessageParam.getTextType(), textMessageParam.getContent()); if (result == 0) { return WVPResult.success(result); }else { @@ -619,14 +580,14 @@ public class JT1078Controller { } @Operation(summary = "1078-电话回拨", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备编号", required = true) + @Parameter(name = "phoneNumber", description = "设备编号", required = true) @Parameter(name = "sign", description = "标志: 0:普通通话,1:监听", required = true) - @Parameter(name = "phoneNumber", description = "电话号码", required = true) + @Parameter(name = "destPhoneNumber", description = "回拨电话号码", required = true) @GetMapping("/telephone-callback") - public WVPResult telephoneCallback(String deviceId, Integer sign, String phoneNumber){ + public WVPResult telephoneCallback(String phoneNumber, Integer sign, String destPhoneNumber){ - logger.info("[1078-电话回拨] deviceId: {}, sign: {}, phoneNumber: {},", deviceId, sign, phoneNumber); - int result = service.telephoneCallback(deviceId, sign, phoneNumber); + logger.info("[1078-电话回拨] phoneNumber: {}, sign: {}, phoneNumber: {},", phoneNumber, sign, phoneNumber); + int result = service.telephoneCallback(phoneNumber, sign, destPhoneNumber); if (result == 0) { return WVPResult.success(result); }else { @@ -642,7 +603,7 @@ public class JT1078Controller { public WVPResult setPhoneBook(@RequestBody SetPhoneBookParam setPhoneBookParam){ logger.info("[1078-设置电话本] setPhoneBookParam: {}", setPhoneBookParam); - int result = service.setPhoneBook(setPhoneBookParam.getDeviceId(), setPhoneBookParam.getType(), setPhoneBookParam.getPhoneBookContactList()); + int result = service.setPhoneBook(setPhoneBookParam.getPhoneNumber(), setPhoneBookParam.getType(), setPhoneBookParam.getPhoneBookContactList()); if (result == 0) { return WVPResult.success(result); }else { @@ -653,13 +614,13 @@ public class JT1078Controller { } @Operation(summary = "1078-车门控制", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备编号", required = true) + @Parameter(name = "phoneNumber", description = "设备编号", required = true) @Parameter(name = "open", description = "开启车门", required = true) @GetMapping("/control/door") - public WVPResult controlDoor(String deviceId, Boolean open){ + public WVPResult controlDoor(String phoneNumber, Boolean open){ - logger.info("[1078-车门控制] deviceId: {}, open: {},", deviceId, open); - JTPositionBaseInfo positionBaseInfo = service.controlDoor(deviceId, open); + logger.info("[1078-车门控制] phoneNumber: {}, open: {},", phoneNumber, open); + JTPositionBaseInfo positionBaseInfo = service.controlDoor(phoneNumber, open); if (open == !positionBaseInfo.getStatus().isDoorLocking()) { return WVPResult.success(null); @@ -674,7 +635,7 @@ public class JT1078Controller { public WVPResult updateAreaForCircle(@RequestBody SetAreaParam areaParam){ logger.info("[1078-更新圆形区域] areaParam: {},", areaParam); - int result = service.setAreaForCircle(0, areaParam.getDeviceId(), areaParam.getCircleAreaList()); + int result = service.setAreaForCircle(0, areaParam.getPhoneNumber(), areaParam.getCircleAreaList()); if (result == 0) { return WVPResult.success(result); }else { @@ -690,7 +651,7 @@ public class JT1078Controller { public WVPResult addAreaForCircle(@RequestBody SetAreaParam areaParam){ logger.info("[1078-追加圆形区域] areaParam: {},", areaParam); - int result = service.setAreaForCircle(1, areaParam.getDeviceId(), areaParam.getCircleAreaList()); + int result = service.setAreaForCircle(1, areaParam.getPhoneNumber(), areaParam.getCircleAreaList()); if (result == 0) { return WVPResult.success(result); }else { @@ -706,7 +667,7 @@ public class JT1078Controller { public WVPResult editAreaForCircle(@RequestBody SetAreaParam areaParam){ logger.info("[1078-修改圆形区域] areaParam: {},", areaParam); - int result = service.setAreaForCircle(2, areaParam.getDeviceId(), areaParam.getCircleAreaList()); + int result = service.setAreaForCircle(2, areaParam.getPhoneNumber(), areaParam.getCircleAreaList()); if (result == 0) { return WVPResult.success(result); }else { @@ -717,13 +678,13 @@ public class JT1078Controller { } @Operation(summary = "1078-删除圆形区域", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备编号", required = true) + @Parameter(name = "phoneNumber", description = "设备编号", required = true) @Parameter(name = "ids", description = "待删除圆形区域的id,例如1,2,3", required = true) @GetMapping("/area/circle/delete") - public WVPResult deleteAreaForCircle(String deviceId, @RequestParam(value = "ids", required = false) List ids){ + public WVPResult deleteAreaForCircle(String phoneNumber, @RequestParam(value = "ids", required = false) List ids){ - logger.info("[1078-删除圆形区域] deviceId: {}, ids:{}", deviceId, ids); - int result = service.deleteAreaForCircle(deviceId, ids); + logger.info("[1078-删除圆形区域] phoneNumber: {}, ids:{}", phoneNumber, ids); + int result = service.deleteAreaForCircle(phoneNumber, ids); if (result == 0) { return WVPResult.success(result); }else { @@ -734,12 +695,12 @@ public class JT1078Controller { } @Operation(summary = "1078-查询圆形区域", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备编号", required = true) + @Parameter(name = "phoneNumber", description = "设备编号", required = true) @GetMapping("/area/circle/query") - public WVPResult> queryAreaForCircle(String deviceId, @RequestParam(value = "ids", required = false) List ids){ + public WVPResult> queryAreaForCircle(String phoneNumber, @RequestParam(value = "ids", required = false) List ids){ - logger.info("[1078-查询圆形区域] deviceId: {}, ids:{}", deviceId, ids); - List result = service.queryAreaForCircle(deviceId, ids); + logger.info("[1078-查询圆形区域] phoneNumber: {}, ids:{}", phoneNumber, ids); + List result = service.queryAreaForCircle(phoneNumber, ids); if (result != null) { return WVPResult.success(result); }else { @@ -754,7 +715,7 @@ public class JT1078Controller { public WVPResult updateAreaForRectangle(@RequestBody SetAreaParam areaParam){ logger.info("[1078-更新矩形区域] areaParam: {},", areaParam); - int result = service.setAreaForRectangle(0, areaParam.getDeviceId(), areaParam.getRectangleAreas()); + int result = service.setAreaForRectangle(0, areaParam.getPhoneNumber(), areaParam.getRectangleAreas()); if (result == 0) { return WVPResult.success(result); }else { @@ -770,7 +731,7 @@ public class JT1078Controller { public WVPResult addAreaForRectangle(@RequestBody SetAreaParam areaParam){ logger.info("[1078-追加矩形区域] areaParam: {},", areaParam); - int result = service.setAreaForRectangle(1, areaParam.getDeviceId(), areaParam.getRectangleAreas()); + int result = service.setAreaForRectangle(1, areaParam.getPhoneNumber(), areaParam.getRectangleAreas()); if (result == 0) { return WVPResult.success(result); }else { @@ -786,7 +747,7 @@ public class JT1078Controller { public WVPResult editAreaForRectangle(@RequestBody SetAreaParam areaParam){ logger.info("[1078-修改矩形区域] areaParam: {},", areaParam); - int result = service.setAreaForRectangle(2, areaParam.getDeviceId(), areaParam.getRectangleAreas()); + int result = service.setAreaForRectangle(2, areaParam.getPhoneNumber(), areaParam.getRectangleAreas()); if (result == 0) { return WVPResult.success(result); }else { @@ -797,13 +758,13 @@ public class JT1078Controller { } @Operation(summary = "1078-删除矩形区域", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备编号", required = true) + @Parameter(name = "phoneNumber", description = "设备编号", required = true) @Parameter(name = "ids", description = "待删除圆形区域的id,例如1,2,3", required = true) @GetMapping("/area/rectangle/delete") - public WVPResult deleteAreaForRectangle(String deviceId, @RequestParam(value = "ids", required = false) List ids){ + public WVPResult deleteAreaForRectangle(String phoneNumber, @RequestParam(value = "ids", required = false) List ids){ - logger.info("[1078-删除矩形区域] deviceId: {}, ids:{}", deviceId, ids); - int result = service.deleteAreaForRectangle(deviceId, ids); + logger.info("[1078-删除矩形区域] phoneNumber: {}, ids:{}", phoneNumber, ids); + int result = service.deleteAreaForRectangle(phoneNumber, ids); if (result == 0) { return WVPResult.success(result); }else { @@ -814,12 +775,12 @@ public class JT1078Controller { } @Operation(summary = "1078-查询矩形区域", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备编号", required = true) + @Parameter(name = "phoneNumber", description = "设备编号", required = true) @GetMapping("/area/rectangle/query") - public WVPResult> queryAreaForRectangle(String deviceId, @RequestParam(value = "ids", required = false) List ids){ + public WVPResult> queryAreaForRectangle(String phoneNumber, @RequestParam(value = "ids", required = false) List ids){ - logger.info("[1078-查询矩形区域] deviceId: {}, ids:{}", deviceId, ids); - List result = service.queryAreaForRectangle(deviceId, ids); + logger.info("[1078-查询矩形区域] phoneNumber: {}, ids:{}", phoneNumber, ids); + List result = service.queryAreaForRectangle(phoneNumber, ids); if (result != null) { return WVPResult.success(result); }else { @@ -833,7 +794,7 @@ public class JT1078Controller { public WVPResult setAreaForPolygon(@RequestBody SetAreaParam areaParam){ logger.info("[1078-设置多边形区域] areaParam: {},", areaParam); - int result = service.setAreaForPolygon(areaParam.getDeviceId(), areaParam.getPolygonArea()); + int result = service.setAreaForPolygon(areaParam.getPhoneNumber(), areaParam.getPolygonArea()); if (result == 0) { return WVPResult.success(result); }else { @@ -844,13 +805,13 @@ public class JT1078Controller { } @Operation(summary = "1078-删除多边形区域", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备编号", required = true) + @Parameter(name = "phoneNumber", description = "设备编号", required = true) @Parameter(name = "ids", description = "待删除圆形区域的id,例如1,2,3", required = true) @GetMapping("/area/polygon/delete") - public WVPResult deleteAreaForPolygon(String deviceId, @RequestParam(value = "ids", required = false) List ids){ + public WVPResult deleteAreaForPolygon(String phoneNumber, @RequestParam(value = "ids", required = false) List ids){ - logger.info("[1078-删除多边形区域] deviceId: {}, ids:{}", deviceId, ids); - int result = service.deleteAreaForPolygon(deviceId, ids); + logger.info("[1078-删除多边形区域] phoneNumber: {}, ids:{}", phoneNumber, ids); + int result = service.deleteAreaForPolygon(phoneNumber, ids); if (result == 0) { return WVPResult.success(result); }else { @@ -861,12 +822,12 @@ public class JT1078Controller { } @Operation(summary = "1078-查询多边形区域", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备编号", required = true) + @Parameter(name = "phoneNumber", description = "设备编号", required = true) @GetMapping("/area/polygon/query") - public WVPResult> queryAreaForPolygon(String deviceId, @RequestParam(value = "ids", required = false) List ids){ + public WVPResult> queryAreaForPolygon(String phoneNumber, @RequestParam(value = "ids", required = false) List ids){ - logger.info("[1078-查询多边形区域] deviceId: {}, ids:{}", deviceId, ids); - List result = service.queryAreaForPolygon(deviceId, ids); + logger.info("[1078-查询多边形区域] phoneNumber: {}, ids:{}", phoneNumber, ids); + List result = service.queryAreaForPolygon(phoneNumber, ids); if (result != null) { return WVPResult.success(result); }else { @@ -880,7 +841,7 @@ public class JT1078Controller { public WVPResult setRoute(@RequestBody SetAreaParam areaParam){ logger.info("[1078-设置路线] areaParam: {},", areaParam); - int result = service.setRoute(areaParam.getDeviceId(), areaParam.getRoute()); + int result = service.setRoute(areaParam.getPhoneNumber(), areaParam.getRoute()); if (result == 0) { return WVPResult.success(result); }else { @@ -891,13 +852,13 @@ public class JT1078Controller { } @Operation(summary = "1078-删除路线", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备编号", required = true) + @Parameter(name = "phoneNumber", description = "设备编号", required = true) @Parameter(name = "ids", description = "待删除圆形区域的id,例如1,2,3", required = true) @GetMapping("/route/delete") - public WVPResult deleteRoute(String deviceId, @RequestParam(value = "ids", required = false) List ids){ + public WVPResult deleteRoute(String phoneNumber, @RequestParam(value = "ids", required = false) List ids){ - logger.info("[1078-删除路线] deviceId: {}, ids:{}", deviceId, ids); - int result = service.deleteRoute(deviceId, ids); + logger.info("[1078-删除路线] phoneNumber: {}, ids:{}", phoneNumber, ids); + int result = service.deleteRoute(phoneNumber, ids); if (result == 0) { return WVPResult.success(result); }else { @@ -908,12 +869,12 @@ public class JT1078Controller { } @Operation(summary = "1078-查询路线", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备编号", required = true) + @Parameter(name = "phoneNumber", description = "设备编号", required = true) @GetMapping("/route/query") - public WVPResult> queryRoute(String deviceId, @RequestParam(value = "ids", required = false) List ids){ + public WVPResult> queryRoute(String phoneNumber, @RequestParam(value = "ids", required = false) List ids){ - logger.info("[1078-查询路线] deviceId: {}, ids:{}", deviceId, ids); - List result = service.queryRoute(deviceId, ids); + logger.info("[1078-查询路线] phoneNumber: {}, ids:{}", phoneNumber, ids); + List result = service.queryRoute(phoneNumber, ids); if (result != null) { return WVPResult.success(result); }else { @@ -924,12 +885,12 @@ public class JT1078Controller { // TODO 待实现 行驶记录数据采集命令 行驶记录数据上传 行驶记录参数下传命令 电子运单上报 CAN总线数据上传 @Operation(summary = "1078-上报驾驶员身份信息请求", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备编号", required = true) + @Parameter(name = "phoneNumber", description = "设备编号", required = true) @GetMapping("/driver-information") - public WVPResult queryDriverInformation(String deviceId){ + public WVPResult queryDriverInformation(String phoneNumber){ - logger.info("[1078-上报驾驶员身份信息请求] deviceId: {}", deviceId); - JTDriverInformation jtDriverInformation = service.queryDriverInformation(deviceId); + logger.info("[1078-上报驾驶员身份信息请求] phoneNumber: {}", phoneNumber); + JTDriverInformation jtDriverInformation = service.queryDriverInformation(phoneNumber); if (jtDriverInformation != null) { return WVPResult.success(jtDriverInformation); }else { @@ -938,12 +899,12 @@ public class JT1078Controller { } @Operation(summary = "1078-摄像头立即拍摄命令", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备编号", required = true) + @Parameter(name = "phoneNumber", description = "设备编号", required = true) @PostMapping("/shooting") public WVPResult> shooting(@RequestBody ShootingParam param){ logger.info("[1078-摄像头立即拍摄命令] param: {}", param ); - List ids = service.shooting(param.getDeviceId(), param.getShootingCommand()); + List ids = service.shooting(param.getPhoneNumber(), param.getShootingCommand()); if (ids != null) { return WVPResult.success(ids); }else { @@ -957,7 +918,7 @@ public class JT1078Controller { public WVPResult> queryMediaData(@RequestBody QueryMediaDataParam param){ logger.info("[1078-存储多媒体数据检索] param: {}", param ); - List ids = service.queryMediaData(param.getDeviceId(), param.getQueryMediaDataCommand()); + List ids = service.queryMediaData(param.getPhoneNumber(), param.getQueryMediaDataCommand()); if (ids != null) { return WVPResult.success(ids); }else { @@ -988,7 +949,7 @@ public class JT1078Controller { mediaDataInfo.setId(param.getMediaId()); ids.add(mediaDataInfo); }else { - ids = service.queryMediaData(param.getDeviceId(), param.getQueryMediaDataCommand()); + ids = service.queryMediaData(param.getPhoneNumber(), param.getQueryMediaDataCommand()); } if (ids.isEmpty()) { deferredResult.setResult(WVPResult.fail(ErrorCode.ERROR100)); @@ -1022,9 +983,9 @@ public class JT1078Controller { } taskExecutor.execute(()->{ if (param.getMediaId() != null) { - service.uploadMediaDataForSingle(param.getDeviceId(), param.getMediaId(), param.getDelete()); + service.uploadMediaDataForSingle(param.getPhoneNumber(), param.getMediaId(), param.getDelete()); }else { - service.uploadMediaData(param.getDeviceId(), param.getQueryMediaDataCommand()); + service.uploadMediaData(param.getPhoneNumber(), param.getQueryMediaDataCommand()); } }); @@ -1032,13 +993,13 @@ public class JT1078Controller { } @Operation(summary = "1078-开始录音", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备国标编号", required = true) + @Parameter(name = "phoneNumber", description = "设备手机号", required = true) @Parameter(name = "time", description = "录音时间,单位为秒(s) ,0 表示一直录音", required = false) @Parameter(name = "save", description = "0:实时上传;1:保存", required = false) @Parameter(name = "samplingRate", description = "音频采样率, 0:8K;1:11K;2:23K;3:32K", required = false) @GetMapping("/record/start") public void startRecord(HttpServletRequest request, - @Parameter(required = true) String deviceId, + @Parameter(required = true) String phoneNumber, @Parameter(required = false) Integer time, @Parameter(required = false) Integer save, @Parameter(required = false) Integer samplingRate @@ -1052,17 +1013,17 @@ public class JT1078Controller { if (ObjectUtils.isEmpty(samplingRate)) { samplingRate = 0; } - service.record(deviceId, 1, time, save, samplingRate); + service.record(phoneNumber, 1, time, save, samplingRate); } @Operation(summary = "1078-停止录音", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备国标编号", required = true) + @Parameter(name = "phoneNumber", description = "设备手机号", required = true) @Parameter(name = "time", description = "录音时间,单位为秒(s) ,0 表示一直录音", required = false) @Parameter(name = "save", description = "0:实时上传;1:保存", required = false) @Parameter(name = "samplingRate", description = "音频采样率, 0:8K;1:11K;2:23K;3:32K", required = false) @GetMapping("/record/stop") public void stopRecord(HttpServletRequest request, - @Parameter(required = true) String deviceId, + @Parameter(required = true) String phoneNumber, @Parameter(required = false) Integer time, @Parameter(required = false) Integer save, @Parameter(required = false) Integer samplingRate @@ -1076,16 +1037,16 @@ public class JT1078Controller { if (ObjectUtils.isEmpty(samplingRate)) { samplingRate = 0; } - service.record(deviceId, 0, time, save, samplingRate); + service.record(phoneNumber, 0, time, save, samplingRate); } @Operation(summary = "1078-查询终端音视频属性", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "deviceId", description = "设备国标编号", required = true) + @Parameter(name = "phoneNumber", description = "设备手机号", required = true) @GetMapping("/media/attribute") public JTMediaAttribute queryMediaAttribute(HttpServletRequest request, - @Parameter(required = true) String deviceId + @Parameter(required = true) String phoneNumber ) { - return service.queryMediaAttribute(deviceId); + return service.queryMediaAttribute(phoneNumber); } // TODO 视频报警上报 diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/JT1078DeviceController.java b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/JT1078DeviceController.java new file mode 100644 index 000000000..f451fcaf5 --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/JT1078DeviceController.java @@ -0,0 +1,83 @@ +package com.genersoft.iot.vmp.jt1078.controller; + +import com.genersoft.iot.vmp.conf.UserSetting; +import com.genersoft.iot.vmp.conf.security.JwtUtils; +import com.genersoft.iot.vmp.jt1078.bean.*; +import com.genersoft.iot.vmp.jt1078.service.Ijt1078Service; +import com.github.pagehelper.PageInfo; +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; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + + +@ConditionalOnProperty(value = "jt1078.enable", havingValue = "true") +@RestController +@Tag(name = "部标设备管理") +@RequestMapping("/api/jt1078/device") +public class JT1078DeviceController { + + private final static Logger logger = LoggerFactory.getLogger(JT1078DeviceController.class); + + @Resource + Ijt1078Service service; + + @Autowired + UserSetting userSetting; + + @Operation(summary = "1078-分页查询部标设备", security = @SecurityRequirement(name = JwtUtils.HEADER)) + @Parameter(name = "page", description = "当前页", required = true) + @Parameter(name = "count", description = "每页查询数量", required = true) + @Parameter(name = "query", description = "查询内容") + @Parameter(name = "online", description = "是否在线") + @GetMapping("/list") + public PageInfo getDevices(int page, int count, + @RequestParam(required = false) String query, + @RequestParam(required = false) Boolean online) { + return service.getDeviceList(page, count, query, online); + } + + @Operation(summary = "更新设备", security = @SecurityRequirement(name = JwtUtils.HEADER)) + @Parameter(name = "device", description = "设备", required = true) + @PostMapping("/update") + public void updateDevice(JTDevice device){ + assert device.getId() > 0; + assert device.getPhoneNumber() != null; + service.updateDevice(device); + } + + @Operation(summary = "1078-新增设备", security = @SecurityRequirement(name = JwtUtils.HEADER)) + @Parameter(name = "device", description = "设备", required = true) + @PostMapping("/add") + public void addDevice(JTDevice device){ + assert device.getPhoneNumber() != null; + service.addDevice(device); + } + @Operation(summary = "删除设备", security = @SecurityRequirement(name = JwtUtils.HEADER)) + @Parameter(name = "phoneNumber", description = "设备手机号", required = true) + @DeleteMapping("/delete") + public void addDevice(Integer phoneNumber){ + assert phoneNumber != null; + service.deleteDeviceByPhoneNumber(phoneNumber); + } + + + @Operation(summary = "1078-查询部标通道", security = @SecurityRequirement(name = JwtUtils.HEADER)) + @Parameter(name = "phoneNumber", description = "设备手机号", required = true) + @Parameter(name = "query", description = "查询内容") + @GetMapping("/channel/list") + public List getChannels(@RequestParam(required = true) Integer phoneNumber, + @RequestParam(required = false) String query) { + assert phoneNumber != null; + return service.getChannelList(phoneNumber, query); + } +} + diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/SetConfigParam.java b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/SetConfigParam.java index d92424d3a..1f9914e70 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/SetConfigParam.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/SetConfigParam.java @@ -4,15 +4,15 @@ import com.genersoft.iot.vmp.jt1078.bean.JTDeviceConfig; public class SetConfigParam { - private String deviceId; + private String phoneNumber; private JTDeviceConfig config; - public String getDeviceId() { - return deviceId; + public String getPhoneNumber() { + return phoneNumber; } - public void setDeviceId(String deviceId) { - this.deviceId = deviceId; + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; } public JTDeviceConfig getConfig() { @@ -26,7 +26,7 @@ public class SetConfigParam { @Override public String toString() { return "SetConfigParam{" + - "deviceId='" + deviceId + '\'' + + "phoneNumber='" + phoneNumber + '\'' + ", config=" + config + '}'; } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/ConfirmationAlarmMessageParam.java b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/ConfirmationAlarmMessageParam.java index 3d470a8e1..454c34251 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/ConfirmationAlarmMessageParam.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/ConfirmationAlarmMessageParam.java @@ -10,18 +10,18 @@ import io.swagger.v3.oas.annotations.media.Schema; public class ConfirmationAlarmMessageParam { @Schema(description = "设备") - private String deviceId; + private String phoneNumber; @Schema(description = "报警消息流水号") private int alarmPackageNo; @Schema(description = "人工确认报警类型") private JTConfirmationAlarmMessageType alarmMessageType; - public String getDeviceId() { - return deviceId; + public String getPhoneNumber() { + return phoneNumber; } - public void setDeviceId(String deviceId) { - this.deviceId = deviceId; + public void setPhoneNumber(String PhoneNumber) { + this.phoneNumber = PhoneNumber; } public JTConfirmationAlarmMessageType getAlarmMessageType() { @@ -43,7 +43,7 @@ public class ConfirmationAlarmMessageParam { @Override public String toString() { return "ConfirmationAlarmMessageParam{" + - "deviceId='" + deviceId + '\'' + + "PhoneNumber='" + phoneNumber + '\'' + ", alarmPackageNo=" + alarmPackageNo + ", alarmMessageType=" + alarmMessageType + '}'; diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/ConnectionControlParam.java b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/ConnectionControlParam.java index 3fc5d105c..7af23d38f 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/ConnectionControlParam.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/ConnectionControlParam.java @@ -4,15 +4,15 @@ import com.genersoft.iot.vmp.jt1078.bean.JTDeviceConnectionControl; public class ConnectionControlParam { - private String deviceId; + private String phoneNumber; private JTDeviceConnectionControl control; - public String getDeviceId() { - return deviceId; + public String getPhoneNumber() { + return phoneNumber; } - public void setDeviceId(String deviceId) { - this.deviceId = deviceId; + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; } public JTDeviceConnectionControl getControl() { @@ -26,7 +26,7 @@ public class ConnectionControlParam { @Override public String toString() { return "ConnectionControlParam{" + - "deviceId='" + deviceId + '\'' + + "deviceId='" + phoneNumber + '\'' + ", control=" + control + '}'; } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/QueryMediaDataParam.java b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/QueryMediaDataParam.java index 996dd32a4..8a37053c8 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/QueryMediaDataParam.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/QueryMediaDataParam.java @@ -8,7 +8,7 @@ import io.swagger.v3.oas.annotations.media.Schema; public class QueryMediaDataParam { @Schema(description = "设备") - private String deviceId; + private String phoneNumber; @Schema(description = "多媒体 ID, 单条存储多媒体数据检索上传时有效") private Long mediaId; @@ -19,12 +19,12 @@ public class QueryMediaDataParam { @Schema(description = "存储多媒体数据参数") private JTQueryMediaDataCommand queryMediaDataCommand; - public String getDeviceId() { - return deviceId; + public String getPhoneNumber() { + return phoneNumber; } - public void setDeviceId(String deviceId) { - this.deviceId = deviceId; + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; } public JTQueryMediaDataCommand getQueryMediaDataCommand() { @@ -54,7 +54,7 @@ public class QueryMediaDataParam { @Override public String toString() { return "QueryMediaDataParam{" + - "deviceId='" + deviceId + '\'' + + "设备手机号='" + phoneNumber + '\'' + ", mediaId=" + mediaId + ", queryMediaDataCommand=" + queryMediaDataCommand + '}'; diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/SetAreaParam.java b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/SetAreaParam.java index 565ee5c88..d56a62cb1 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/SetAreaParam.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/SetAreaParam.java @@ -9,7 +9,7 @@ import java.util.List; public class SetAreaParam { @Schema(description = "设备") - private String deviceId; + private String phoneNumber; @Schema(description = "圆形区域项") private List circleAreaList; @@ -24,12 +24,12 @@ public class SetAreaParam { private JTRoute route; - public String getDeviceId() { - return deviceId; + public String getPhoneNumber() { + return phoneNumber; } - public void setDeviceId(String deviceId) { - this.deviceId = deviceId; + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; } public List getCircleAreaList() { @@ -67,7 +67,7 @@ public class SetAreaParam { @Override public String toString() { return "SetAreaParam{" + - "deviceId='" + deviceId + '\'' + + "设备手机号='" + phoneNumber + '\'' + ", circleAreaList=" + circleAreaList + ", rectangleAreas=" + rectangleAreas + ", polygonArea=" + polygonArea + diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/SetPhoneBookParam.java b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/SetPhoneBookParam.java index 3ededc0c5..08773c7a5 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/SetPhoneBookParam.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/SetPhoneBookParam.java @@ -9,8 +9,8 @@ import java.util.List; @Schema(description = "设置电话本") public class SetPhoneBookParam { - @Schema(description = "设备") - private String deviceId; + @Schema(description = "设备手机号") + private String phoneNumber; @Schema(description = "设置类型:\n" + "0: 删除终端上所有存储的联系人,\n" + @@ -22,12 +22,12 @@ public class SetPhoneBookParam { @Schema(description = "联系人") private List phoneBookContactList; - public String getDeviceId() { - return deviceId; + public String getPhoneNumber() { + return phoneNumber; } - public void setDeviceId(String deviceId) { - this.deviceId = deviceId; + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; } public int getType() { @@ -49,7 +49,7 @@ public class SetPhoneBookParam { @Override public String toString() { return "SetPhoneBookParam{" + - "deviceId='" + deviceId + '\'' + + "设备手机号='" + phoneNumber + '\'' + ", type=" + type + ", phoneBookContactList=" + phoneBookContactList + '}'; diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/ShootingParam.java b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/ShootingParam.java index 803997c60..11990f46c 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/ShootingParam.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/ShootingParam.java @@ -6,17 +6,17 @@ import io.swagger.v3.oas.annotations.media.Schema; public class ShootingParam { @Schema(description = "设备") - private String deviceId; + private String phoneNumber; @Schema(description = "拍摄命令参数") private JTShootingCommand shootingCommand; - public String getDeviceId() { - return deviceId; + public String getPhoneNumber() { + return phoneNumber; } - public void setDeviceId(String deviceId) { - this.deviceId = deviceId; + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; } public JTShootingCommand getShootingCommand() { @@ -30,7 +30,7 @@ public class ShootingParam { @Override public String toString() { return "ShootingParam{" + - "deviceId='" + deviceId + '\'' + + "设备手机号='" + phoneNumber + '\'' + ", shootingCommand=" + shootingCommand + '}'; } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/TextMessageParam.java b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/TextMessageParam.java index f48c6efe9..5888bc77b 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/TextMessageParam.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/TextMessageParam.java @@ -9,8 +9,8 @@ import io.swagger.v3.oas.annotations.media.Schema; @Schema(description = "人工确认报警消息参数") public class TextMessageParam { - @Schema(description = "设备") - private String deviceId; + @Schema(description = "设备手机号") + private String phoneNumber; @Schema(description = "标志") private JTTextSign sign; @Schema(description = "文本类型,1 = 通知 ,2 = 服务") @@ -18,12 +18,12 @@ public class TextMessageParam { @Schema(description = "消息内容,最长为1024字节") private String content; - public String getDeviceId() { - return deviceId; + public String getPhoneNumber() { + return phoneNumber; } - public void setDeviceId(String deviceId) { - this.deviceId = deviceId; + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; } public int getTextType() { @@ -53,7 +53,7 @@ public class TextMessageParam { @Override public String toString() { return "TextMessageParam{" + - "deviceId='" + deviceId + '\'' + + "phoneNumber='" + phoneNumber + '\'' + ", sign=" + sign + ", textType=" + textType + ", content='" + content + '\'' + diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/dao/JTChannelMapper.java b/src/main/java/com/genersoft/iot/vmp/jt1078/dao/JTChannelMapper.java new file mode 100644 index 000000000..5d490f057 --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/dao/JTChannelMapper.java @@ -0,0 +1,109 @@ +package com.genersoft.iot.vmp.jt1078.dao; + +import com.genersoft.iot.vmp.jt1078.bean.JTChannel; +import com.genersoft.iot.vmp.jt1078.bean.JTDevice; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +@Mapper +public interface JTChannelMapper { + + @Select(value = {" "}) + List getAll(@Param("deviceId") int deviceId, @Param("query") String query); + + @Update(value = {" "}) + void updateDevice(JTDevice device); + @Select(value = {" "}) + List getDeviceList(@Param("query") String query, @Param("online") Boolean online); + + @Insert("INSERT INTO wvp_jt_device (" + + "terminal_id,"+ + "province_id,"+ + "province_text,"+ + "city_id,"+ + "city_text,"+ + "maker_id,"+ + "device_id,"+ + "device_model,"+ + "plate_color,"+ + "plate_no,"+ + "authentication_code,"+ + "longitude,"+ + "latitude,"+ + "create_time,"+ + "update_time"+ + ") VALUES (" + + "#{terminalId}," + + "#{provinceId}," + + "#{provinceText}," + + "#{cityId}," + + "#{cityText}," + + "#{makerId}," + + "#{deviceId}," + + "#{deviceModel}," + + "#{plateColor}," + + "#{plateNo}," + + "#{authenticationCode}," + + "#{longitude}," + + "#{latitude}," + + "#{createTime}," + + "#{updateTime}" + + ")") + void addDevice(JTDevice device); + + @Delete("delete from wvp_jt_device where terminal_id = #{terminalId}") + void deleteDeviceByTerminalId(@Param("terminalId") String terminalId); + + @Update(value = {" "}) + void updateDeviceStatus(@Param("connected") boolean connected, @Param("terminalId") String terminalId); +} diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/dao/JTDeviceMapper.java b/src/main/java/com/genersoft/iot/vmp/jt1078/dao/JTDeviceMapper.java index ee5276953..3f5d70d5f 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/dao/JTDeviceMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/dao/JTDeviceMapper.java @@ -9,7 +9,7 @@ import java.util.List; public interface JTDeviceMapper { @Select("SELECT * FROM wvp_jt_device where terminal_id=#{terminalId}") - JTDevice getDevice(@Param("terminalId") String terminalId); + JTDevice getDevice(@Param("terminalId") Integer terminalId); @Update(value = {" "}) - void updateDeviceStatus(@Param("connected") boolean connected, @Param("terminalId") String terminalId); + void updateDeviceStatus(@Param("connected") boolean connected, @Param("terminalId") Integer terminalId); } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/Header.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/Header.java index 86eb7af72..dc53fddde 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/Header.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/Header.java @@ -15,7 +15,7 @@ public class Header { Integer msgPro; // 终端手机号 - String terminalId; + String terminalPhoneNumber; // 消息体流水号 Integer sn; @@ -41,12 +41,12 @@ public class Header { this.msgPro = msgPro; } - public String getTerminalId() { - return terminalId; + public String getTerminalPhoneNumber() { + return terminalPhoneNumber; } - public void setTerminalId(String terminalId) { - this.terminalId = terminalId; + public void setTerminalPhoneNumber(String terminalPhoneNumber) { + this.terminalPhoneNumber = terminalPhoneNumber; } public Integer getSn() { @@ -79,7 +79,7 @@ public class Header { return "Header{" + "消息ID='" + msgId + '\'' + ", 消息体属性=" + msgPro + - ", 终端手机号='" + terminalId + '\'' + + ", 终端手机号='" + terminalPhoneNumber + '\'' + ", 消息体流水号=" + sn + ", 协议版本号=" + version + '}'; diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0001.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0001.java index 2036c444c..12a5e73ec 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0001.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0001.java @@ -1,6 +1,5 @@ package com.genersoft.iot.vmp.jt1078.proc.request; -import com.alibaba.fastjson2.JSON; import com.genersoft.iot.vmp.jt1078.annotation.MsgId; import com.genersoft.iot.vmp.jt1078.proc.Header; import com.genersoft.iot.vmp.jt1078.proc.response.Rs; @@ -37,7 +36,7 @@ public class J0001 extends Re { @Override protected Rs handler(Header header, Session session, Ijt1078Service service) { - SessionManager.INSTANCE.response(header.getTerminalId(), "0001", (long) respNo, result); + SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0001", (long) respNo, result); return null; } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0003.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0003.java index 53a10155e..aa1c80309 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0003.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0003.java @@ -1,6 +1,5 @@ package com.genersoft.iot.vmp.jt1078.proc.request; -import com.alibaba.fastjson2.JSON; import com.genersoft.iot.vmp.jt1078.annotation.MsgId; import com.genersoft.iot.vmp.jt1078.proc.Header; import com.genersoft.iot.vmp.jt1078.proc.response.Rs; @@ -29,13 +28,13 @@ public class J0003 extends Re { respNo = buf.readUnsignedShort(); respId = ByteBufUtil.hexDump(buf.readSlice(2)); result = buf.readUnsignedByte(); - log.info("[JT-注销] 设备: {}", header.getTerminalId()); + log.info("[JT-注销] 设备: {}", header.getTerminalPhoneNumber()); return null; } @Override protected Rs handler(Header header, Session session, Ijt1078Service service) { - SessionManager.INSTANCE.response(header.getTerminalId(), "0001", (long) respNo, result); + SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0001", (long) respNo, result); return null; } 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 35c54ba2d..6303d0ee5 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 @@ -3,7 +3,6 @@ package com.genersoft.iot.vmp.jt1078.proc.request; import com.genersoft.iot.vmp.common.CivilCodePo; import com.genersoft.iot.vmp.jt1078.annotation.MsgId; import com.genersoft.iot.vmp.jt1078.bean.JTDevice; -import com.genersoft.iot.vmp.jt1078.codec.netty.Jt808Handler; import com.genersoft.iot.vmp.jt1078.event.RegisterEvent; import com.genersoft.iot.vmp.jt1078.proc.Header; import com.genersoft.iot.vmp.jt1078.proc.response.J8100; @@ -86,7 +85,7 @@ public class J0100 extends Re { J8100 j8100 = new J8100(); j8100.setRespNo(header.getSn()); // 从数据库判断这个设备是否合法 - JTDevice deviceInDb = service.getDevice(header.getTerminalId()); + JTDevice deviceInDb = service.getDevice(header.getTerminalPhoneNumber()); if (deviceInDb != null) { j8100.setResult(J8100.SUCCESS); String authenticationCode = UUID.randomUUID().toString(); @@ -113,7 +112,7 @@ public class J0100 extends Re { service.updateDevice(deviceInDb); log.info("[JT-注册成功] 设备: {}", deviceInDb); }else { - log.info("[JT-注册失败] 未授权设备: {}", header.getTerminalId()); + log.info("[JT-注册失败] 未授权设备: {}", header.getTerminalPhoneNumber()); j8100.setResult(J8100.FAIL); // 断开连接,清理资源 if (session.isRegistered()) { 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 df09635bb..7c5625210 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 @@ -8,7 +8,6 @@ import com.genersoft.iot.vmp.jt1078.proc.response.Rs; import com.genersoft.iot.vmp.jt1078.service.Ijt1078Service; import com.genersoft.iot.vmp.jt1078.session.Session; import io.netty.buffer.ByteBuf; -import io.netty.util.CharsetUtil; import org.springframework.context.ApplicationEvent; import java.nio.charset.Charset; @@ -38,7 +37,7 @@ public class J0102 extends Re { @Override protected Rs handler(Header header, Session session, Ijt1078Service service) { - JTDevice device = service.getDevice(header.getTerminalId()); + JTDevice device = service.getDevice(header.getTerminalPhoneNumber()); J8001 j8001 = new J8001(); j8001.setRespNo(header.getSn()); j8001.setRespId(header.getMsgId()); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0104.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0104.java index 7c12adda5..2c738d457 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0104.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0104.java @@ -164,7 +164,7 @@ public class J0104 extends Re { throw new RuntimeException(e); } } - SessionManager.INSTANCE.response(header.getTerminalId(), "0104", (long) respNo, deviceConfig); + SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0104", (long) respNo, deviceConfig); return null; } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0107.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0107.java index 9c14ccb14..a08fb6baf 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0107.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0107.java @@ -60,7 +60,7 @@ public class J0107 extends Re { deviceAttribute.setGnssAttribute(JTGnssAttribute.getInstance(buf.readUnsignedByte())); deviceAttribute.setCommunicationModuleAttribute(JTCommunicationModuleAttribute.getInstance(buf.readUnsignedByte())); - SessionManager.INSTANCE.response(header.getTerminalId(), "0107", null, deviceAttribute); + SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0107", null, deviceAttribute); return null; } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0200.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0200.java index b35d7d54c..ac31f01ef 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0200.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0200.java @@ -7,16 +7,11 @@ import com.genersoft.iot.vmp.jt1078.proc.response.J8001; import com.genersoft.iot.vmp.jt1078.proc.response.Rs; import com.genersoft.iot.vmp.jt1078.service.Ijt1078Service; import com.genersoft.iot.vmp.jt1078.session.Session; -import com.genersoft.iot.vmp.jt1078.util.BCDUtil; import io.netty.buffer.ByteBuf; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.ApplicationEvent; -import java.text.DecimalFormat; -import java.util.HashMap; -import java.util.Map; - /** * 位置信息汇报 * @@ -94,7 +89,7 @@ public class J0200 extends Re { @Override protected Rs handler(Header header, Session session, Ijt1078Service service) { - JTDevice deviceInDb = service.getDevice(header.getTerminalId()); + JTDevice deviceInDb = service.getDevice(header.getTerminalPhoneNumber()); J8001 j8001 = new J8001(); j8001.setRespNo(header.getSn()); j8001.setRespId(header.getMsgId()); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0201.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0201.java index e4c05d385..49eaa8c07 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0201.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0201.java @@ -8,7 +8,6 @@ import com.genersoft.iot.vmp.jt1078.proc.response.Rs; import com.genersoft.iot.vmp.jt1078.service.Ijt1078Service; import com.genersoft.iot.vmp.jt1078.session.Session; import com.genersoft.iot.vmp.jt1078.session.SessionManager; -import com.genersoft.iot.vmp.jt1078.util.BCDUtil; import io.netty.buffer.ByteBuf; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -34,13 +33,13 @@ public class J0201 extends Re { positionInfo = JTPositionBaseInfo.decode(buf); log.info("[JT-位置信息查询应答]: {}", positionInfo.toString()); - SessionManager.INSTANCE.response(header.getTerminalId(), "0201", (long) respNo, positionInfo); + SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0201", (long) respNo, positionInfo); return null; } @Override protected Rs handler(Header header, Session session, Ijt1078Service service) { - JTDevice deviceInDb = service.getDevice(header.getTerminalId()); + JTDevice deviceInDb = service.getDevice(header.getTerminalPhoneNumber()); J8001 j8001 = new J8001(); j8001.setRespNo(header.getSn()); j8001.setRespId(header.getMsgId()); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0500.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0500.java index c419adbad..a4c6b39fd 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0500.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0500.java @@ -8,7 +8,6 @@ import com.genersoft.iot.vmp.jt1078.proc.response.Rs; import com.genersoft.iot.vmp.jt1078.service.Ijt1078Service; import com.genersoft.iot.vmp.jt1078.session.Session; import com.genersoft.iot.vmp.jt1078.session.SessionManager; -import com.genersoft.iot.vmp.jt1078.util.BCDUtil; import io.netty.buffer.ByteBuf; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -29,13 +28,13 @@ public class J0500 extends Re { int respNo = buf.readUnsignedShort(); positionInfo = JTPositionBaseInfo.decode(buf); log.info("[JT-车辆控制应答]: {}", positionInfo.toString()); - SessionManager.INSTANCE.response(header.getTerminalId(), "0500", (long) respNo, positionInfo); + SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0500", (long) respNo, positionInfo); return null; } @Override protected Rs handler(Header header, Session session, Ijt1078Service service) { - JTDevice deviceInDb = service.getDevice(header.getTerminalId()); + JTDevice deviceInDb = service.getDevice(header.getTerminalPhoneNumber()); J8001 j8001 = new J8001(); j8001.setRespNo(header.getSn()); j8001.setRespId(header.getMsgId()); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0608.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0608.java index 953a0cfb9..1abf3a57b 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0608.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0608.java @@ -33,7 +33,7 @@ public class J0608 extends Re { log.info("[JT-查询区域或线路数据应答]: 类型: {}, 数量: {}", type, dataLength); List areaOrRoutes = new ArrayList<>(); if (dataLength == 0) { - SessionManager.INSTANCE.response(header.getTerminalId(), "0608", null, areaOrRoutes); + SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0608", null, areaOrRoutes); return null; } switch (type) { @@ -46,7 +46,7 @@ public class J0608 extends Re { JTCircleArea jtCircleArea = JTCircleArea.decode(buf); jtCircleAreas.add(jtCircleArea); } - SessionManager.INSTANCE.response(header.getTerminalId(), "0608", null, jtCircleAreas); + SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0608", null, jtCircleAreas); break; case 2: buf.readUnsignedByte(); @@ -58,7 +58,7 @@ public class J0608 extends Re { JTRectangleArea jtRectangleArea = JTRectangleArea.decode(buf); jtRectangleAreas.add(jtRectangleArea); } - SessionManager.INSTANCE.response(header.getTerminalId(), "0608", null, jtRectangleAreas); + SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0608", null, jtRectangleAreas); break; case 3: // 查询多 边形区域数据 @@ -68,7 +68,7 @@ public class J0608 extends Re { JTPolygonArea jtRectangleArea = JTPolygonArea.decode(buf); jtPolygonAreas.add(jtRectangleArea); } - SessionManager.INSTANCE.response(header.getTerminalId(), "0608", null, jtPolygonAreas); + SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0608", null, jtPolygonAreas); break; case 4: // 查询线路数据 @@ -78,7 +78,7 @@ public class J0608 extends Re { JTRoute jtRoute = JTRoute.decode(buf); jtRoutes.add(jtRoute); } - SessionManager.INSTANCE.response(header.getTerminalId(), "0608", null, jtRoutes); + SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0608", null, jtRoutes); break; default: break; diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0702.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0702.java index 01ff36e0c..ffea2f483 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0702.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0702.java @@ -1,9 +1,7 @@ package com.genersoft.iot.vmp.jt1078.proc.request; import com.genersoft.iot.vmp.jt1078.annotation.MsgId; -import com.genersoft.iot.vmp.jt1078.bean.JTDevice; import com.genersoft.iot.vmp.jt1078.bean.JTDriverInformation; -import com.genersoft.iot.vmp.jt1078.bean.JTPositionBaseInfo; import com.genersoft.iot.vmp.jt1078.proc.Header; import com.genersoft.iot.vmp.jt1078.proc.response.J8001; import com.genersoft.iot.vmp.jt1078.proc.response.Rs; @@ -29,7 +27,7 @@ public class J0702 extends Re { protected Rs decode0(ByteBuf buf, Header header, Session session) { driverInformation = JTDriverInformation.decode(buf); log.info("[JT-驾驶员身份信息采集上报]: {}", driverInformation.toString()); - SessionManager.INSTANCE.response(header.getTerminalId(), "0702", null, driverInformation); + SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0702", null, driverInformation); return null; } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0801.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0801.java index 62ed28292..1bcee974a 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0801.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0801.java @@ -15,7 +15,6 @@ import org.slf4j.LoggerFactory; import org.springframework.context.ApplicationEvent; import java.io.File; -import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; @@ -71,7 +70,7 @@ public class J0801 extends Re { log.info("[JT-多媒体数据上传] 写入文件失败", e); } log.info("[JT-多媒体数据上传]: {}", mediaEventInfo); - SessionManager.INSTANCE.response(header.getTerminalId(), "0801", null, mediaEventInfo); + SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0801", null, mediaEventInfo); return null; } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0802.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0802.java index eb0650f59..cf9aa4d47 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0802.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0802.java @@ -2,8 +2,6 @@ package com.genersoft.iot.vmp.jt1078.proc.request; import com.genersoft.iot.vmp.jt1078.annotation.MsgId; import com.genersoft.iot.vmp.jt1078.bean.JTMediaDataInfo; -import com.genersoft.iot.vmp.jt1078.bean.JTMediaEventInfo; -import com.genersoft.iot.vmp.jt1078.bean.JTPositionBaseInfo; import com.genersoft.iot.vmp.jt1078.proc.Header; import com.genersoft.iot.vmp.jt1078.proc.response.J8001; import com.genersoft.iot.vmp.jt1078.proc.response.Rs; @@ -15,8 +13,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.ApplicationEvent; -import java.io.FileOutputStream; -import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -38,7 +34,7 @@ public class J0802 extends Re { int length = buf.readUnsignedShort(); if (length == 0) { log.info("[JT-存储多媒体数据检索应答]: {}", length); - SessionManager.INSTANCE.response(header.getTerminalId(), "0802", (long) respNo, new ArrayList<>()); + SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0802", (long) respNo, new ArrayList<>()); return null; } mediaDataInfoList = new ArrayList<>(length); @@ -46,7 +42,7 @@ public class J0802 extends Re { mediaDataInfoList.add(JTMediaDataInfo.decode(buf)); } log.info("[JT-存储多媒体数据检索应答]: {}", mediaDataInfoList.size()); - SessionManager.INSTANCE.response(header.getTerminalId(), "0802", (long) respNo, mediaDataInfoList); + SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0802", (long) respNo, mediaDataInfoList); return null; } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0805.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0805.java index 9424ce0e5..db20fcb50 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0805.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0805.java @@ -7,7 +7,6 @@ import com.genersoft.iot.vmp.jt1078.service.Ijt1078Service; import com.genersoft.iot.vmp.jt1078.session.Session; import com.genersoft.iot.vmp.jt1078.session.SessionManager; import io.netty.buffer.ByteBuf; -import io.netty.buffer.ByteBufUtil; import org.springframework.context.ApplicationEvent; import java.util.ArrayList; @@ -40,13 +39,13 @@ public class J0805 extends Re { ids.add(buf.readUnsignedInt()); } } - SessionManager.INSTANCE.response(header.getTerminalId(), "0805", null, ids); + SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0805", null, ids); return null; } @Override protected Rs handler(Header header, Session session, Ijt1078Service service) { - SessionManager.INSTANCE.response(header.getTerminalId(), "0001", (long) respNo, result); + SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0001", (long) respNo, result); return null; } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J1003.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J1003.java index 681b4e390..f44af2782 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J1003.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J1003.java @@ -23,7 +23,7 @@ public class J1003 extends Re { @Override protected Rs decode0(ByteBuf buf, Header header, Session session) { mediaAttribute = JTMediaAttribute.decode(buf); - SessionManager.INSTANCE.response(header.getTerminalId(), "1003", null, mediaAttribute); + SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "1003", null, mediaAttribute); return null; } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J1205.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J1205.java index 87fcdd682..fb893e9dd 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J1205.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J1205.java @@ -1,6 +1,5 @@ package com.genersoft.iot.vmp.jt1078.proc.request; -import com.alibaba.fastjson2.JSON; import com.genersoft.iot.vmp.jt1078.annotation.MsgId; import com.genersoft.iot.vmp.jt1078.proc.Header; import com.genersoft.iot.vmp.jt1078.proc.response.J8001; @@ -50,7 +49,7 @@ public class J1205 extends Re { @Override protected Rs handler(Header header, Session session, Ijt1078Service service) { - SessionManager.INSTANCE.response(header.getTerminalId(), "1205", (long) respNo, recordList); + SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "1205", (long) respNo, recordList); J8001 j8001 = new J8001(); j8001.setRespNo(header.getSn()); j8001.setRespId(header.getMsgId()); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/Re.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/Re.java index bf4d1feaa..fdb36cd93 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/Re.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/Re.java @@ -24,7 +24,7 @@ public abstract class Re { public Rs decode(ByteBuf buf, Header header, Session session, Ijt1078Service service) { if (session != null && !StringUtils.hasLength(session.getDevId())) { - session.register(header.getTerminalId(), (int) header.getVersion(), header); + session.register(header.getTerminalPhoneNumber(), (int) header.getVersion(), header); } Rs rs = decode0(buf, header, session); Rs rsHand = handler(header, session, service); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/service/Ijt1078Service.java b/src/main/java/com/genersoft/iot/vmp/jt1078/service/Ijt1078Service.java index e393a5a33..87bc72607 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/service/Ijt1078Service.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/service/Ijt1078Service.java @@ -6,11 +6,10 @@ import com.genersoft.iot.vmp.jt1078.bean.*; import com.genersoft.iot.vmp.jt1078.proc.request.J1205; import com.github.pagehelper.PageInfo; -import javax.servlet.ServletOutputStream; import java.util.List; public interface Ijt1078Service { - JTDevice getDevice(String terminalId); + JTDevice getDevice(Integer terminalId); void updateDevice(JTDevice deviceInDb); @@ -18,104 +17,106 @@ public interface Ijt1078Service { void addDevice(JTDevice device); - void deleteDeviceByDeviceId(String deviceId); + void deleteDeviceByPhoneNumber(Integer phoneNumber); - void updateDeviceStatus(boolean connected, String terminalId); + void updateDeviceStatus(boolean connected, Integer terminalId); - void play(String deviceId, String channelId, int type, GeneralCallback callback); + void play(String phoneNumber, String channelId, int type, GeneralCallback callback); - void playback(String deviceId, String channelId, String startTime, String endTime, Integer type, + void playback(String phoneNumber, String channelId, String startTime, String endTime, Integer type, Integer rate, Integer playbackType, Integer playbackSpeed, GeneralCallback callback); - void stopPlay(String deviceId, String channelId); + void stopPlay(String phoneNumber, String channelId); - void pausePlay(String deviceId, String channelId); + void pausePlay(String phoneNumber, String channelId); - void continueLivePlay(String deviceId, String channelId); + void continueLivePlay(String phoneNumber, String channelId); - List getRecordList(String deviceId, String channelId, String startTime, String endTime); + List getRecordList(String phoneNumber, String channelId, String startTime, String endTime); - void stopPlayback(String deviceId, String channelId); + void stopPlayback(String phoneNumber, String channelId); - void ptzControl(String deviceId, String channelId, String command, int speed); + void ptzControl(String phoneNumber, String channelId, String command, int speed); - void supplementaryLight(String deviceId, String channelId, String command); + void supplementaryLight(String phoneNumber, String channelId, String command); - void wiper(String deviceId, String channelId, String command); + void wiper(String phoneNumber, String channelId, String command); - JTDeviceConfig queryConfig(String deviceId, String[] params, GeneralCallback callback); + JTDeviceConfig queryConfig(String phoneNumber, String[] params, GeneralCallback callback); - void setConfig(String deviceId, JTDeviceConfig config); + void setConfig(String phoneNumber, JTDeviceConfig config); - void connectionControl(String deviceId, JTDeviceConnectionControl control); + void connectionControl(String phoneNumber, JTDeviceConnectionControl control); - void resetControl(String deviceId); + void resetControl(String phoneNumber); - void factoryResetControl(String deviceId); + void factoryResetControl(String phoneNumber); - JTDeviceAttribute attribute(String deviceId); + JTDeviceAttribute attribute(String phoneNumber); - JTPositionBaseInfo queryPositionInfo(String deviceId); + JTPositionBaseInfo queryPositionInfo(String phoneNumber); - void tempPositionTrackingControl(String deviceId, Integer timeInterval, Long validityPeriod); + void tempPositionTrackingControl(String phoneNumber, Integer timeInterval, Long validityPeriod); - void confirmationAlarmMessage(String deviceId, int alarmPackageNo, JTConfirmationAlarmMessageType alarmMessageType); + void confirmationAlarmMessage(String phoneNumber, int alarmPackageNo, JTConfirmationAlarmMessageType alarmMessageType); - int linkDetection(String deviceId); + int linkDetection(String phoneNumber); - int textMessage(String deviceId,JTTextSign sign, int textType, String content); + int textMessage(String phoneNumber,JTTextSign sign, int textType, String content); - int telephoneCallback(String deviceId, Integer sign, String phoneNumber); + int telephoneCallback(String phoneNumber, Integer sign, String destPhoneNumber); - int setPhoneBook(String deviceId, int type, List phoneBookContactList); + int setPhoneBook(String phoneNumber, int type, List phoneBookContactList); - JTPositionBaseInfo controlDoor(String deviceId, Boolean open); + JTPositionBaseInfo controlDoor(String phoneNumber, Boolean open); - int setAreaForCircle(int attribute, String deviceId, List circleAreaList); + int setAreaForCircle(int attribute, String phoneNumber, List circleAreaList); - int deleteAreaForCircle(String deviceId, List ids); + int deleteAreaForCircle(String phoneNumber, List ids); - List queryAreaForCircle(String deviceId, List ids); + List queryAreaForCircle(String phoneNumber, List ids); - int setAreaForRectangle(int i, String deviceId, List rectangleAreas); + int setAreaForRectangle(int i, String phoneNumber, List rectangleAreas); - int deleteAreaForRectangle(String deviceId, List ids); + int deleteAreaForRectangle(String phoneNumber, List ids); - List queryAreaForRectangle(String deviceId, List ids); + List queryAreaForRectangle(String phoneNumber, List ids); - int setAreaForPolygon(String deviceId, JTPolygonArea polygonArea); + int setAreaForPolygon(String phoneNumber, JTPolygonArea polygonArea); - int deleteAreaForPolygon(String deviceId, List ids); + int deleteAreaForPolygon(String phoneNumber, List ids); - List queryAreaForPolygon(String deviceId, List ids); + List queryAreaForPolygon(String phoneNumber, List ids); - int setRoute(String deviceId, JTRoute route); + int setRoute(String phoneNumber, JTRoute route); - int deleteRoute(String deviceId, List ids); + int deleteRoute(String phoneNumber, List ids); - List queryRoute(String deviceId, List ids); + List queryRoute(String phoneNumber, List ids); - JTDriverInformation queryDriverInformation(String deviceId); + JTDriverInformation queryDriverInformation(String phoneNumber); - List shooting(String deviceId, JTShootingCommand shootingCommand); + List shooting(String phoneNumber, JTShootingCommand shootingCommand); - List queryMediaData(String deviceId, JTQueryMediaDataCommand queryMediaDataCommand); + List queryMediaData(String phoneNumber, JTQueryMediaDataCommand queryMediaDataCommand); - void uploadMediaData(String deviceId, JTQueryMediaDataCommand queryMediaDataCommand); + void uploadMediaData(String phoneNumber, JTQueryMediaDataCommand queryMediaDataCommand); - void record(String deviceId, int command, Integer time, Integer save, Integer samplingRate); + void record(String phoneNumber, int command, Integer time, Integer save, Integer samplingRate); - void uploadMediaDataForSingle(String deviceId, Long mediaId, Integer delete); + void uploadMediaDataForSingle(String phoneNumber, Long mediaId, Integer delete); - JTMediaAttribute queryMediaAttribute(String deviceId); + JTMediaAttribute queryMediaAttribute(String phoneNumber); - void startTalk(String deviceId, String channelId, String app, String stream, String mediaServerId, Boolean onlySend, GeneralCallback callback); + void startTalk(String phoneNumber, String channelId, String app, String stream, String mediaServerId, Boolean onlySend, GeneralCallback callback); - void stopTalk(String deviceId, String channelId); + void stopTalk(String phoneNumber, String channelId); - void changeStreamType(String deviceId, String channelId, Integer streamType); + void changeStreamType(String phoneNumber, String channelId, Integer streamType); - void playbackControl(String deviceId, String channelId, Integer command, Integer playbackSpeed, String time); + void playbackControl(String phoneNumber, String channelId, Integer command, Integer playbackSpeed, String time); - void recordDownload(String deviceId, String channelId, String startTime, String endTime, Integer type, Integer rate, GeneralCallback fileCallback); + void recordDownload(String phoneNumber, String channelId, String startTime, String endTime, Integer type, Integer rate, GeneralCallback fileCallback); + + List getChannelList(int phoneNumber, String query); } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/jt1078ServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/jt1078ServiceImpl.java index 99a16c516..e1a45a786 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/jt1078ServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/jt1078ServiceImpl.java @@ -12,6 +12,7 @@ import com.genersoft.iot.vmp.gb28181.bean.SendRtpItem; import com.genersoft.iot.vmp.jt1078.bean.*; import com.genersoft.iot.vmp.jt1078.bean.common.ConfigAttribute; import com.genersoft.iot.vmp.jt1078.cmd.JT1078Template; +import com.genersoft.iot.vmp.jt1078.dao.JTChannelMapper; import com.genersoft.iot.vmp.jt1078.dao.JTDeviceMapper; import com.genersoft.iot.vmp.jt1078.event.CallbackManager; import com.genersoft.iot.vmp.jt1078.event.FtpUploadEvent; @@ -59,6 +60,9 @@ public class jt1078ServiceImpl implements Ijt1078Service { @Autowired private JTDeviceMapper jtDeviceMapper; + @Autowired + private JTChannelMapper jtChannelMapper; + @Autowired private JT1078Template jt1078Template; @@ -94,7 +98,7 @@ public class jt1078ServiceImpl implements Ijt1078Service { @Override - public JTDevice getDevice(String terminalId) { + public JTDevice getDevice(Integer terminalId) { return jtDeviceMapper.getDevice(terminalId); } @@ -119,22 +123,22 @@ public class jt1078ServiceImpl implements Ijt1078Service { } @Override - public void deleteDeviceByDeviceId(String deviceId) { - jtDeviceMapper.deleteDeviceByTerminalId(deviceId); + public void deleteDeviceByPhoneNumber(Integer phoneNumber) { + jtDeviceMapper.deleteDeviceByTerminalId(phoneNumber); } @Override - public void updateDeviceStatus(boolean connected, String terminalId) { + public void updateDeviceStatus(boolean connected, Integer terminalId) { jtDeviceMapper.updateDeviceStatus(connected, terminalId); } private final Map>> inviteErrorCallbackMap = new ConcurrentHashMap<>(); @Override - public void play(String deviceId, String channelId, int type, GeneralCallback callback) { + public void play(String phoneNumber, String channelId, int type, GeneralCallback callback) { // 检查流是否已经存在,存在则返回 - String playKey = VideoManagerConstants.INVITE_INFO_1078_PLAY + deviceId + ":" + channelId; + String playKey = VideoManagerConstants.INVITE_INFO_1078_PLAY + phoneNumber + ":" + channelId; List> errorCallbacks = inviteErrorCallbackMap.computeIfAbsent(playKey, k -> new ArrayList<>()); errorCallbacks.add(callback); StreamInfo streamInfo = (StreamInfo) redisTemplate.opsForValue().get(playKey); @@ -147,7 +151,7 @@ public class jt1078ServiceImpl implements Ijt1078Service { if (mediaInfo != null && mediaInfo.getInteger("code") == 0) { Boolean online = mediaInfo.getBoolean("online"); if (online != null && online) { - logger.info("[1078-点播] 点播已经存在,直接返回, deviceId: {}, channelId: {}", deviceId, channelId); + logger.info("[1078-点播] 点播已经存在,直接返回, phoneNumber: {}, channelId: {}", phoneNumber, channelId); for (GeneralCallback errorCallback : errorCallbacks) { errorCallback.run(InviteErrorCode.SUCCESS.getCode(), InviteErrorCode.SUCCESS.getMsg(), streamInfo); } @@ -158,7 +162,7 @@ public class jt1078ServiceImpl implements Ijt1078Service { // 清理数据 redisTemplate.delete(playKey); } - String stream = deviceId + "_" + channelId; + String stream = phoneNumber + "_" + channelId; MediaServer mediaServer = mediaServerService.getMediaServerForMinimumLoad(null); if (mediaServer == null) { for (GeneralCallback errorCallback : errorCallbacks) { @@ -170,9 +174,9 @@ public class jt1078ServiceImpl implements Ijt1078Service { Hook hook = Hook.getInstance(HookType.on_media_arrival, "rtp", stream, mediaServer.getId()); subscribe.addSubscribe(hook, (hookData) -> { dynamicTask.stop(playKey); - logger.info("[1078-点播] 点播成功, deviceId: {}, channelId: {}", deviceId, channelId); + logger.info("[1078-点播] 点播成功, phoneNumber: {}, channelId: {}", phoneNumber, channelId); // TODO 发送9105 实时音视频传输状态通知, 通知丢包率 - StreamInfo info = onPublishHandler(mediaServer, hookData, deviceId, channelId); + StreamInfo info = onPublishHandler(mediaServer, hookData, phoneNumber, channelId); for (GeneralCallback errorCallback : errorCallbacks) { errorCallback.run(InviteErrorCode.SUCCESS.getCode(), InviteErrorCode.SUCCESS.getMsg(), info); @@ -182,7 +186,7 @@ public class jt1078ServiceImpl implements Ijt1078Service { }); // 设置超时监听 dynamicTask.startDelay(playKey, () -> { - logger.info("[1078-点播] 超时, deviceId: {}, channelId: {}", deviceId, channelId); + logger.info("[1078-点播] 超时, phoneNumber: {}, channelId: {}", phoneNumber, channelId); for (GeneralCallback errorCallback : errorCallbacks) { errorCallback.run(InviteErrorCode.ERROR_FOR_SIGNALLING_TIMEOUT.getCode(), InviteErrorCode.ERROR_FOR_SIGNALLING_TIMEOUT.getMsg(), null); @@ -192,7 +196,7 @@ public class jt1078ServiceImpl implements Ijt1078Service { // 开启收流端口 SSRCInfo ssrcInfo = mediaServerService.openRTPServer(mediaServer, stream, null, false, false, 0, false, false, false, 1); - logger.info("[1078-点播] deviceId: {}, channelId: {}, 端口: {}", deviceId, channelId, ssrcInfo.getPort()); + logger.info("[1078-点播] phoneNumber: {}, channelId: {}, 端口: {}", phoneNumber, channelId, ssrcInfo.getPort()); J9101 j9101 = new J9101(); j9101.setChannel(Integer.valueOf(channelId)); j9101.setIp(mediaServer.getSdpIp()); @@ -200,21 +204,21 @@ public class jt1078ServiceImpl implements Ijt1078Service { j9101.setTcpPort(ssrcInfo.getPort()); j9101.setUdpPort(ssrcInfo.getPort()); j9101.setType(type); - Object s = jt1078Template.startLive(deviceId, j9101, 6); + Object s = jt1078Template.startLive(phoneNumber, j9101, 6); System.out.println("ssss=== " + s); } - public StreamInfo onPublishHandler(MediaServer mediaServerItem, HookData hookData, String deviceId, String channelId) { + public StreamInfo onPublishHandler(MediaServer mediaServerItem, HookData hookData, String phoneNumber, String channelId) { StreamInfo streamInfo = mediaServerService.getStreamInfoByAppAndStream(mediaServerItem, "rtp", hookData.getStream(), hookData.getMediaInfo(), null); - streamInfo.setDeviceID(deviceId); + streamInfo.setDeviceID(phoneNumber); streamInfo.setChannelId(channelId); return streamInfo; } @Override - public void stopPlay(String deviceId, String channelId) { - String playKey = VideoManagerConstants.INVITE_INFO_1078_PLAY + deviceId + ":" + channelId; + public void stopPlay(String phoneNumber, String channelId) { + String playKey = VideoManagerConstants.INVITE_INFO_1078_PLAY + phoneNumber + ":" + channelId; dynamicTask.stop(playKey); StreamInfo streamInfo = (StreamInfo) redisTemplate.opsForValue().get(playKey); // 发送停止命令 @@ -223,8 +227,8 @@ public class jt1078ServiceImpl implements Ijt1078Service { j9102.setCommand(0); j9102.setCloseType(0); j9102.setStreamType(1); - jt1078Template.stopLive(deviceId, j9102, 6); - logger.info("[1078-停止点播] deviceId: {}, channelId: {}", deviceId, channelId); + jt1078Template.stopLive(phoneNumber, j9102, 6); + logger.info("[1078-停止点播] phoneNumber: {}, channelId: {}", phoneNumber, channelId); // 删除缓存数据 if (streamInfo != null) { // 关闭rtpServer @@ -240,45 +244,45 @@ public class jt1078ServiceImpl implements Ijt1078Service { } @Override - public void pausePlay(String deviceId, String channelId) { - String playKey = VideoManagerConstants.INVITE_INFO_1078_PLAY + deviceId + ":" + channelId; + public void pausePlay(String phoneNumber, String channelId) { + String playKey = VideoManagerConstants.INVITE_INFO_1078_PLAY + phoneNumber + ":" + channelId; dynamicTask.stop(playKey); StreamInfo streamInfo = (StreamInfo) redisTemplate.opsForValue().get(playKey); if (streamInfo == null) { - logger.info("[1078-暂停点播] 未找到点播信息 deviceId: {}, channelId: {}", deviceId, channelId); + logger.info("[1078-暂停点播] 未找到点播信息 phoneNumber: {}, channelId: {}", phoneNumber, channelId); } - logger.info("[1078-暂停点播] deviceId: {}, channelId: {}", deviceId, channelId); + logger.info("[1078-暂停点播] phoneNumber: {}, channelId: {}", phoneNumber, channelId); // 发送暂停命令 J9102 j9102 = new J9102(); j9102.setChannel(Integer.valueOf(channelId)); j9102.setCommand(2); j9102.setCloseType(0); j9102.setStreamType(1); - jt1078Template.stopLive(deviceId, j9102, 6); + jt1078Template.stopLive(phoneNumber, j9102, 6); } @Override - public void continueLivePlay(String deviceId, String channelId) { - String playKey = VideoManagerConstants.INVITE_INFO_1078_PLAY + deviceId + ":" + channelId; + public void continueLivePlay(String phoneNumber, String channelId) { + String playKey = VideoManagerConstants.INVITE_INFO_1078_PLAY + phoneNumber + ":" + channelId; dynamicTask.stop(playKey); StreamInfo streamInfo = (StreamInfo) redisTemplate.opsForValue().get(playKey); if (streamInfo == null) { - logger.info("[1078-继续点播] 未找到点播信息 deviceId: {}, channelId: {}", deviceId, channelId); + logger.info("[1078-继续点播] 未找到点播信息 phoneNumber: {}, channelId: {}", phoneNumber, channelId); } - logger.info("[1078-继续点播] deviceId: {}, channelId: {}", deviceId, channelId); + logger.info("[1078-继续点播] phoneNumber: {}, channelId: {}", phoneNumber, channelId); // 发送暂停命令 J9102 j9102 = new J9102(); j9102.setChannel(Integer.valueOf(channelId)); j9102.setCommand(2); j9102.setCloseType(0); j9102.setStreamType(1); - jt1078Template.stopLive(deviceId, j9102, 6); + jt1078Template.stopLive(phoneNumber, j9102, 6); } @Override - public List getRecordList(String deviceId, String channelId, String startTime, String endTime) { - logger.info("[1078-查询录像列表] deviceId: {}, channelId: {}, startTime: {}, endTime: {}" - , deviceId, channelId, startTime, endTime); + public List getRecordList(String phoneNumber, String channelId, String startTime, String endTime) { + logger.info("[1078-查询录像列表] phoneNumber: {}, channelId: {}, startTime: {}, endTime: {}" + , phoneNumber, channelId, startTime, endTime); // 发送请求录像列表命令 J9205 j9205 = new J9205(); j9205.setChannelId(Integer.parseInt(channelId)); @@ -287,25 +291,25 @@ public class jt1078ServiceImpl implements Ijt1078Service { j9205.setMediaType(0); j9205.setStreamType(0); j9205.setStorageType(0); - List JRecordItemList = (List) jt1078Template.queryBackTime(deviceId, j9205, 20); + List JRecordItemList = (List) jt1078Template.queryBackTime(phoneNumber, j9205, 20); if (JRecordItemList == null || JRecordItemList.isEmpty()) { return null; } - logger.info("[1078-查询录像列表] deviceId: {}, channelId: {}, startTime: {}, endTime: {}, 结果: {}条" - , deviceId, channelId, startTime, endTime, JRecordItemList.size()); + logger.info("[1078-查询录像列表] phoneNumber: {}, channelId: {}, startTime: {}, endTime: {}, 结果: {}条" + , phoneNumber, channelId, startTime, endTime, JRecordItemList.size()); return JRecordItemList; } @Override - public void playback(String deviceId, String channelId, String startTime, String endTime, Integer type, + public void playback(String phoneNumber, String channelId, String startTime, String endTime, Integer type, Integer rate, Integer playbackType, Integer playbackSpeed, GeneralCallback callback) { logger.info("[1078-回放] 回放,设备:{}, 通道: {}, 开始时间: {}, 结束时间: {}, 音视频类型: {}, 码流类型: {}, " + - "回放方式: {}, 快进或快退倍数: {}", deviceId, channelId, startTime, endTime, type, rate, playbackType, playbackSpeed); + "回放方式: {}, 快进或快退倍数: {}", phoneNumber, channelId, startTime, endTime, type, rate, playbackType, playbackSpeed); // 检查流是否已经存在,存在则返回 - String playbackKey = VideoManagerConstants.INVITE_INFO_1078_PLAYBACK + deviceId + ":" + channelId; + String playbackKey = VideoManagerConstants.INVITE_INFO_1078_PLAYBACK + phoneNumber + ":" + channelId; List> errorCallbacks = inviteErrorCallbackMap.computeIfAbsent(playbackKey, k -> new ArrayList<>()); errorCallbacks.add(callback); - String logInfo = String.format("deviceId:%s, channelId:%s, startTime:%s, endTime:%s", deviceId, channelId, startTime, endTime); + String logInfo = String.format("phoneNumber:%s, channelId:%s, startTime:%s, endTime:%s", phoneNumber, channelId, startTime, endTime); StreamInfo streamInfo = (StreamInfo) redisTemplate.opsForValue().get(playbackKey); if (streamInfo != null) { String mediaServerId = streamInfo.getMediaServerId(); @@ -329,7 +333,7 @@ public class jt1078ServiceImpl implements Ijt1078Service { } String startTimeParam = DateUtil.yyyy_MM_dd_HH_mm_ssTo1078(startTime); String endTimeParam = DateUtil.yyyy_MM_dd_HH_mm_ssTo1078(endTime); - String stream = deviceId + "_" + channelId + "_" + startTimeParam + "_" + endTimeParam; + String stream = phoneNumber + "_" + channelId + "_" + startTimeParam + "_" + endTimeParam; MediaServer mediaServer = mediaServerService.getMediaServerForMinimumLoad(null); if (mediaServer == null) { for (GeneralCallback errorCallback : errorCallbacks) { @@ -342,7 +346,7 @@ public class jt1078ServiceImpl implements Ijt1078Service { subscribe.addSubscribe(hookSubscribe, (hookData) -> { dynamicTask.stop(playbackKey); logger.info("[1078-回放] 回放成功, logInfo: {}", logInfo); - StreamInfo info = onPublishHandler(mediaServer, hookData, deviceId, channelId); + StreamInfo info = onPublishHandler(mediaServer, hookData, phoneNumber, channelId); for (GeneralCallback errorCallback : errorCallbacks) { errorCallback.run(InviteErrorCode.SUCCESS.getCode(), InviteErrorCode.SUCCESS.getMsg(), info); @@ -381,15 +385,15 @@ public class jt1078ServiceImpl implements Ijt1078Service { j9201.setType(type); j9201.setStartTime(DateUtil.yyyy_MM_dd_HH_mm_ssTo1078(startTime)); j9201.setEndTime(DateUtil.yyyy_MM_dd_HH_mm_ssTo1078(endTime)); - jt1078Template.startBackLive(deviceId, j9201, 20); + jt1078Template.startBackLive(phoneNumber, j9201, 20); } @Override - public void playbackControl(String deviceId, String channelId, Integer command, Integer playbackSpeed, String time) { - logger.info("[1078-回放控制] deviceId: {}, channelId: {}, command: {}, playbackSpeed: {}, time: {}", - deviceId, channelId, command, playbackSpeed, time); - String playKey = VideoManagerConstants.INVITE_INFO_1078_PLAYBACK + deviceId + ":" + channelId; + public void playbackControl(String phoneNumber, String channelId, Integer command, Integer playbackSpeed, String time) { + logger.info("[1078-回放控制] phoneNumber: {}, channelId: {}, command: {}, playbackSpeed: {}, time: {}", + phoneNumber, channelId, command, playbackSpeed, time); + String playKey = VideoManagerConstants.INVITE_INFO_1078_PLAYBACK + phoneNumber + ":" + channelId; dynamicTask.stop(playKey); if (command == 2) { // 结束回放 @@ -417,12 +421,12 @@ public class jt1078ServiceImpl implements Ijt1078Service { if (!ObjectUtils.isEmpty(time)) { j9202.setPlaybackTime(DateUtil.yyyy_MM_dd_HH_mm_ssTo1078(time)); } - jt1078Template.controlBackLive(deviceId, j9202, 6); + jt1078Template.controlBackLive(phoneNumber, j9202, 6); } @Override - public void stopPlayback(String deviceId, String channelId) { - playbackControl(deviceId, channelId, 2, null, String.valueOf(0)); + public void stopPlayback(String phoneNumber, String channelId) { + playbackControl(phoneNumber, channelId, 2, null, String.valueOf(0)); } private Map> fileUploadMap = new ConcurrentHashMap<>(); @@ -445,14 +449,14 @@ public class jt1078ServiceImpl implements Ijt1078Service { } @Override - public void recordDownload(String deviceId, String channelId, String startTime, String endTime, Integer type, Integer rate, GeneralCallback fileCallback) { + public void recordDownload(String phoneNumber, String channelId, String startTime, String endTime, Integer type, Integer rate, GeneralCallback fileCallback) { String filePath = UUID.randomUUID().toString(); fileUploadMap.put(filePath, fileCallback); dynamicTask.startDelay(filePath, ()->{ fileUploadMap.remove(filePath); }, 2*60*60*1000); logger.info("[1078-录像] 下载,设备:{}, 通道: {}, 开始时间: {}, 结束时间: {},等待上传文件路径: {} ", - deviceId, channelId, startTime, endTime, filePath); + phoneNumber, channelId, startTime, endTime, filePath); // 发送停止命令 J9206 j92026 = new J9206(); j92026.setChannelId(Integer.parseInt(channelId)); @@ -470,11 +474,11 @@ public class jt1078ServiceImpl implements Ijt1078Service { if (rate != null) { j92026.setStreamType(rate); } - jt1078Template.fileUpload(deviceId, j92026, 7200); + jt1078Template.fileUpload(phoneNumber, j92026, 7200); } @Override - public void ptzControl(String deviceId, String channelId, String command, int speed) { + public void ptzControl(String phoneNumber, String channelId, String command, int speed) { // 发送停止命令 switch (command) { @@ -507,7 +511,7 @@ public class jt1078ServiceImpl implements Ijt1078Service { j9301.setSpeed(0); break; } - jt1078Template.ptzRotate(deviceId, j9301, 6); + jt1078Template.ptzRotate(phoneNumber, j9301, 6); break; case "zoomin": @@ -519,7 +523,7 @@ public class jt1078ServiceImpl implements Ijt1078Service { } else { j9306.setZoom(1); } - jt1078Template.ptzZoom(deviceId, j9306, 6); + jt1078Template.ptzZoom(phoneNumber, j9306, 6); break; case "irisin": case "irisout": @@ -530,7 +534,7 @@ public class jt1078ServiceImpl implements Ijt1078Service { } else { j9303.setIris(1); } - jt1078Template.ptzIris(deviceId, j9303, 6); + jt1078Template.ptzIris(phoneNumber, j9303, 6); break; case "focusnear": case "focusfar": @@ -541,14 +545,14 @@ public class jt1078ServiceImpl implements Ijt1078Service { } else { j9302.setFocalDirection(1); } - jt1078Template.ptzFocal(deviceId, j9302, 6); + jt1078Template.ptzFocal(phoneNumber, j9302, 6); break; } } @Override - public void supplementaryLight(String deviceId, String channelId, String command) { + public void supplementaryLight(String phoneNumber, String channelId, String command) { J9305 j9305 = new J9305(); j9305.setChannel(Integer.parseInt(channelId)); if (command.equalsIgnoreCase("on")) { @@ -556,11 +560,11 @@ public class jt1078ServiceImpl implements Ijt1078Service { } else { j9305.setOn(0); } - jt1078Template.ptzSupplementaryLight(deviceId, j9305, 6); + jt1078Template.ptzSupplementaryLight(phoneNumber, j9305, 6); } @Override - public void wiper(String deviceId, String channelId, String command) { + public void wiper(String phoneNumber, String channelId, String command) { J9304 j9304 = new J9304(); j9304.setChannel(Integer.parseInt(channelId)); if (command.equalsIgnoreCase("on")) { @@ -568,17 +572,17 @@ public class jt1078ServiceImpl implements Ijt1078Service { } else { j9304.setOn(0); } - jt1078Template.ptzWiper(deviceId, j9304, 6); + jt1078Template.ptzWiper(phoneNumber, j9304, 6); } @Override - public JTDeviceConfig queryConfig(String deviceId, String[] params, GeneralCallback callback) { - if (deviceId == null) { + public JTDeviceConfig queryConfig(String phoneNumber, String[] params, GeneralCallback callback) { + if (phoneNumber == null) { return null; } if (params == null || params.length == 0) { J8104 j8104 = new J8104(); - return (JTDeviceConfig) jt1078Template.getDeviceConfig(deviceId, j8104, 20); + return (JTDeviceConfig) jt1078Template.getDeviceConfig(phoneNumber, j8104, 20); } else { long[] paramBytes = new long[params.length]; for (int i = 0; i < params.length; i++) { @@ -597,247 +601,247 @@ public class jt1078ServiceImpl implements Ijt1078Service { } J8106 j8106 = new J8106(); j8106.setParams(paramBytes); - return (JTDeviceConfig) jt1078Template.getDeviceSpecifyConfig(deviceId, j8106, 20); + return (JTDeviceConfig) jt1078Template.getDeviceSpecifyConfig(phoneNumber, j8106, 20); } } @Override - public void setConfig(String deviceId, JTDeviceConfig config) { + public void setConfig(String phoneNumber, JTDeviceConfig config) { J8103 j8103 = new J8103(); j8103.setConfig(config); - jt1078Template.setDeviceSpecifyConfig(deviceId, j8103, 6); + jt1078Template.setDeviceSpecifyConfig(phoneNumber, j8103, 6); } @Override - public void connectionControl(String deviceId, JTDeviceConnectionControl control) { + public void connectionControl(String phoneNumber, JTDeviceConnectionControl control) { J8105 j8105 = new J8105(); j8105.setConnectionControl(control); - jt1078Template.deviceControl(deviceId, j8105, 6); + jt1078Template.deviceControl(phoneNumber, j8105, 6); } @Override - public void resetControl(String deviceId) { + public void resetControl(String phoneNumber) { J8105 j8105 = new J8105(); j8105.setReset(true); - jt1078Template.deviceControl(deviceId, j8105, 6); + jt1078Template.deviceControl(phoneNumber, j8105, 6); } @Override - public void factoryResetControl(String deviceId) { + public void factoryResetControl(String phoneNumber) { J8105 j8105 = new J8105(); j8105.setFactoryReset(true); - jt1078Template.deviceControl(deviceId, j8105, 6); + jt1078Template.deviceControl(phoneNumber, j8105, 6); } @Override - public JTDeviceAttribute attribute(String deviceId) { + public JTDeviceAttribute attribute(String phoneNumber) { J8107 j8107 = new J8107(); - return (JTDeviceAttribute) jt1078Template.deviceAttribute(deviceId, j8107, 20); + return (JTDeviceAttribute) jt1078Template.deviceAttribute(phoneNumber, j8107, 20); } @Override - public JTPositionBaseInfo queryPositionInfo(String deviceId) { + public JTPositionBaseInfo queryPositionInfo(String phoneNumber) { J8201 j8201 = new J8201(); - return (JTPositionBaseInfo) jt1078Template.queryPositionInfo(deviceId, j8201, 20); + return (JTPositionBaseInfo) jt1078Template.queryPositionInfo(phoneNumber, j8201, 20); } @Override - public void tempPositionTrackingControl(String deviceId, Integer timeInterval, Long validityPeriod) { + public void tempPositionTrackingControl(String phoneNumber, Integer timeInterval, Long validityPeriod) { J8202 j8202 = new J8202(); j8202.setTimeInterval(timeInterval); j8202.setValidityPeriod(validityPeriod); - jt1078Template.tempPositionTrackingControl(deviceId, j8202, 20); + jt1078Template.tempPositionTrackingControl(phoneNumber, j8202, 20); } @Override - public void confirmationAlarmMessage(String deviceId, int alarmPackageNo, JTConfirmationAlarmMessageType alarmMessageType) { + public void confirmationAlarmMessage(String phoneNumber, int alarmPackageNo, JTConfirmationAlarmMessageType alarmMessageType) { J8203 j8203 = new J8203(); j8203.setAlarmMessageType(alarmMessageType); j8203.setAlarmPackageNo(alarmPackageNo); - jt1078Template.confirmationAlarmMessage(deviceId, j8203, 6); + jt1078Template.confirmationAlarmMessage(phoneNumber, j8203, 6); } @Override - public int linkDetection(String deviceId) { + public int linkDetection(String phoneNumber) { J8204 j8204 = new J8204(); - return (int) jt1078Template.linkDetection(deviceId, j8204, 6); + return (int) jt1078Template.linkDetection(phoneNumber, j8204, 6); } @Override - public int textMessage(String deviceId, JTTextSign sign, int textType, String content) { + public int textMessage(String phoneNumber, JTTextSign sign, int textType, String content) { J8300 j8300 = new J8300(); j8300.setSign(sign); j8300.setTextType(textType); j8300.setContent(content); - return (int) jt1078Template.textMessage(deviceId, j8300, 6); + return (int) jt1078Template.textMessage(phoneNumber, j8300, 6); } @Override - public int telephoneCallback(String deviceId, Integer sign, String phoneNumber) { + public int telephoneCallback(String phoneNumber, Integer sign, String destPhoneNumber) { J8400 j8400 = new J8400(); j8400.setSign(sign); - j8400.setPhoneNumber(phoneNumber); - return (int) jt1078Template.telephoneCallback(deviceId, j8400, 6); + j8400.setPhoneNumber(destPhoneNumber); + return (int) jt1078Template.telephoneCallback(phoneNumber, j8400, 6); } @Override - public int setPhoneBook(String deviceId, int type, List phoneBookContactList) { + public int setPhoneBook(String phoneNumber, int type, List phoneBookContactList) { J8401 j8401 = new J8401(); j8401.setType(type); if (phoneBookContactList != null) { j8401.setPhoneBookContactList(phoneBookContactList); } - return (int) jt1078Template.setPhoneBook(deviceId, j8401, 6); + return (int) jt1078Template.setPhoneBook(phoneNumber, j8401, 6); } @Override - public JTPositionBaseInfo controlDoor(String deviceId, Boolean open) { + public JTPositionBaseInfo controlDoor(String phoneNumber, Boolean open) { J8500 j8500 = new J8500(); JTVehicleControl jtVehicleControl = new JTVehicleControl(); jtVehicleControl.setControlCarDoor(open ? 1 : 0); j8500.setVehicleControl(jtVehicleControl); - return (JTPositionBaseInfo) jt1078Template.vehicleControl(deviceId, j8500, 20); + return (JTPositionBaseInfo) jt1078Template.vehicleControl(phoneNumber, j8500, 20); } @Override - public int setAreaForCircle(int attribute, String deviceId, List circleAreaList) { + public int setAreaForCircle(int attribute, String phoneNumber, List circleAreaList) { J8600 j8600 = new J8600(); j8600.setAttribute(attribute); j8600.setCircleAreaList(circleAreaList); - return (int) jt1078Template.setAreaForCircle(deviceId, j8600, 20); + return (int) jt1078Template.setAreaForCircle(phoneNumber, j8600, 20); } @Override - public int deleteAreaForCircle(String deviceId, List ids) { + public int deleteAreaForCircle(String phoneNumber, List ids) { J8601 j8601 = new J8601(); j8601.setIdList(ids); - return (int) jt1078Template.deleteAreaForCircle(deviceId, j8601, 20); + return (int) jt1078Template.deleteAreaForCircle(phoneNumber, j8601, 20); } @Override - public List queryAreaForCircle(String deviceId, List ids) { + public List queryAreaForCircle(String phoneNumber, List ids) { J8608 j8608 = new J8608(); j8608.setType(1); j8608.setIdList(ids); - return (List) jt1078Template.queryAreaOrRoute(deviceId, j8608, 20); + return (List) jt1078Template.queryAreaOrRoute(phoneNumber, j8608, 20); } @Override - public int setAreaForRectangle(int attribute, String deviceId, List rectangleAreas) { + public int setAreaForRectangle(int attribute, String phoneNumber, List rectangleAreas) { J8602 j8602 = new J8602(); j8602.setAttribute(attribute); j8602.setRectangleAreas(rectangleAreas); - return (int) jt1078Template.setAreaForRectangle(deviceId, j8602, 20); + return (int) jt1078Template.setAreaForRectangle(phoneNumber, j8602, 20); } @Override - public int deleteAreaForRectangle(String deviceId, List ids) { + public int deleteAreaForRectangle(String phoneNumber, List ids) { J8603 j8603 = new J8603(); j8603.setIdList(ids); - return (int) jt1078Template.deleteAreaForRectangle(deviceId, j8603, 20); + return (int) jt1078Template.deleteAreaForRectangle(phoneNumber, j8603, 20); } @Override - public List queryAreaForRectangle(String deviceId, List ids) { + public List queryAreaForRectangle(String phoneNumber, List ids) { J8608 j8608 = new J8608(); j8608.setType(2); j8608.setIdList(ids); - return (List) jt1078Template.queryAreaOrRoute(deviceId, j8608, 20); + return (List) jt1078Template.queryAreaOrRoute(phoneNumber, j8608, 20); } @Override - public int setAreaForPolygon(String deviceId, JTPolygonArea polygonArea) { + public int setAreaForPolygon(String phoneNumber, JTPolygonArea polygonArea) { J8604 j8604 = new J8604(); j8604.setPolygonArea(polygonArea); - return (int) jt1078Template.setAreaForPolygon(deviceId, j8604, 20); + return (int) jt1078Template.setAreaForPolygon(phoneNumber, j8604, 20); } @Override - public int deleteAreaForPolygon(String deviceId, List ids) { + public int deleteAreaForPolygon(String phoneNumber, List ids) { J8605 j8605 = new J8605(); j8605.setIdList(ids); - return (int) jt1078Template.deleteAreaForPolygon(deviceId, j8605, 20); + return (int) jt1078Template.deleteAreaForPolygon(phoneNumber, j8605, 20); } @Override - public List queryAreaForPolygon(String deviceId, List ids) { + public List queryAreaForPolygon(String phoneNumber, List ids) { J8608 j8608 = new J8608(); j8608.setType(3); j8608.setIdList(ids); - return (List) jt1078Template.queryAreaOrRoute(deviceId, j8608, 20); + return (List) jt1078Template.queryAreaOrRoute(phoneNumber, j8608, 20); } @Override - public int setRoute(String deviceId, JTRoute route) { + public int setRoute(String phoneNumber, JTRoute route) { J8606 j8606 = new J8606(); j8606.setRoute(route); - return (int) jt1078Template.setRoute(deviceId, j8606, 20); + return (int) jt1078Template.setRoute(phoneNumber, j8606, 20); } @Override - public int deleteRoute(String deviceId, List ids) { + public int deleteRoute(String phoneNumber, List ids) { J8607 j8607 = new J8607(); j8607.setIdList(ids); - return (int) jt1078Template.deleteRoute(deviceId, j8607, 20); + return (int) jt1078Template.deleteRoute(phoneNumber, j8607, 20); } @Override - public List queryRoute(String deviceId, List ids) { + public List queryRoute(String phoneNumber, List ids) { J8608 j8608 = new J8608(); j8608.setType(4); j8608.setIdList(ids); - return (List) jt1078Template.queryAreaOrRoute(deviceId, j8608, 20); + return (List) jt1078Template.queryAreaOrRoute(phoneNumber, j8608, 20); } @Override - public JTDriverInformation queryDriverInformation(String deviceId) { + public JTDriverInformation queryDriverInformation(String phoneNumber) { J8702 j8702 = new J8702(); - return (JTDriverInformation) jt1078Template.queryDriverInformation(deviceId, j8702, 20); + return (JTDriverInformation) jt1078Template.queryDriverInformation(phoneNumber, j8702, 20); } @Override - public List shooting(String deviceId, JTShootingCommand shootingCommand) { + public List shooting(String phoneNumber, JTShootingCommand shootingCommand) { J8801 j8801 = new J8801(); j8801.setCommand(shootingCommand); - return (List) jt1078Template.shooting(deviceId, j8801, 300); + return (List) jt1078Template.shooting(phoneNumber, j8801, 300); } @Override - public List queryMediaData(String deviceId, JTQueryMediaDataCommand queryMediaDataCommand) { + public List queryMediaData(String phoneNumber, JTQueryMediaDataCommand queryMediaDataCommand) { J8802 j8802 = new J8802(); j8802.setCommand(queryMediaDataCommand); - return (List) jt1078Template.queryMediaData(deviceId, j8802, 300); + return (List) jt1078Template.queryMediaData(phoneNumber, j8802, 300); } @Override - public void uploadMediaData(String deviceId, JTQueryMediaDataCommand queryMediaDataCommand) { + public void uploadMediaData(String phoneNumber, JTQueryMediaDataCommand queryMediaDataCommand) { J8803 j8803 = new J8803(); j8803.setCommand(queryMediaDataCommand); - jt1078Template.uploadMediaData(deviceId, j8803, 10); + jt1078Template.uploadMediaData(phoneNumber, j8803, 10); } @Override - public void record(String deviceId, int command, Integer time, Integer save, Integer samplingRate) { + public void record(String phoneNumber, int command, Integer time, Integer save, Integer samplingRate) { J8804 j8804 = new J8804(); j8804.setCommond(command); j8804.setDuration(time); j8804.setSave(save); j8804.setSamplingRate(samplingRate); - jt1078Template.record(deviceId, j8804, 10); + jt1078Template.record(phoneNumber, j8804, 10); } @Override - public void uploadMediaDataForSingle(String deviceId, Long mediaId, Integer delete) { + public void uploadMediaDataForSingle(String phoneNumber, Long mediaId, Integer delete) { J8805 j8805 = new J8805(); j8805.setMediaId(mediaId); j8805.setDelete(delete); - jt1078Template.uploadMediaDataForSingle(deviceId, j8805, 10); + jt1078Template.uploadMediaDataForSingle(phoneNumber, j8805, 10); } @Override - public JTMediaAttribute queryMediaAttribute(String deviceId) { + public JTMediaAttribute queryMediaAttribute(String phoneNumber) { J9003 j9003 = new J9003(); - return (JTMediaAttribute) jt1078Template.queryMediaAttribute(deviceId, j9003, 300); + return (JTMediaAttribute) jt1078Template.queryMediaAttribute(phoneNumber, j9003, 300); } /** @@ -862,10 +866,10 @@ public class jt1078ServiceImpl implements Ijt1078Service { } @Override - public void startTalk(String deviceId, String channelId, String app, String stream, String mediaServerId, Boolean onlySend, + public void startTalk(String phoneNumber, String channelId, String app, String stream, String mediaServerId, Boolean onlySend, GeneralCallback callback) { // 检查流是否已经存在,存在则返回 - String playKey = VideoManagerConstants.INVITE_INFO_1078_TALK + deviceId + ":" + channelId; + String playKey = VideoManagerConstants.INVITE_INFO_1078_TALK + phoneNumber + ":" + channelId; List> errorCallbacks = inviteErrorCallbackMap.computeIfAbsent(playKey, k -> new ArrayList<>()); errorCallbacks.add(callback); StreamInfo streamInfo = (StreamInfo) redisTemplate.opsForValue().get(playKey); @@ -873,7 +877,7 @@ public class jt1078ServiceImpl implements Ijt1078Service { throw new ControllerException(ErrorCode.ERROR100.getCode(), "对讲进行中"); } - String receiveStream = "1078" + "_" + deviceId + "_" + channelId; + String receiveStream = "1078" + "_" + phoneNumber + "_" + channelId; MediaServer mediaServer = mediaServerService.getOne(mediaServerId); if (mediaServer == null) { for (GeneralCallback errorCallback : errorCallbacks) { @@ -887,12 +891,12 @@ public class jt1078ServiceImpl implements Ijt1078Service { throw new ControllerException(ErrorCode.ERROR100.getCode(), app + "/" + stream + "流不存在"); } // 开启收流端口, zlm发送1078的rtp流需要将ssrc字段设置为 imei_channel格式 - String ssrc = deviceId + "_" + channelId; + String ssrc = phoneNumber + "_" + channelId; SendRtpItem sendRtpItem = new SendRtpItem(); sendRtpItem.setMediaServerId(mediaServerId); sendRtpItem.setPort(0); sendRtpItem.setSsrc(ssrc); - sendRtpItem.setDeviceId(deviceId); + sendRtpItem.setDeviceId(phoneNumber); sendRtpItem.setChannelId(channelId); sendRtpItem.setRtcp(false); sendRtpItem.setApp(app); @@ -904,14 +908,14 @@ public class jt1078ServiceImpl implements Ijt1078Service { if (onlySend == null || !onlySend) { sendRtpItem.setReceiveStream(receiveStream); } - sendRtpItem.setPlatformId(deviceId); + sendRtpItem.setPlatformId(phoneNumber); if (onlySend == null || !onlySend) { // 设置hook监听 Hook hook = Hook.getInstance(HookType.on_media_arrival, "rtp", receiveStream, mediaServer.getId()); subscribe.addSubscribe(hook, (hookData) -> { dynamicTask.stop(playKey); - logger.info("[1078-对讲] 对讲成功, deviceId: {}, channelId: {}", deviceId, channelId); - StreamInfo info = onPublishHandler(mediaServer, hookData, deviceId, channelId); + logger.info("[1078-对讲] 对讲成功, phoneNumber: {}, channelId: {}", phoneNumber, channelId); + StreamInfo info = onPublishHandler(mediaServer, hookData, phoneNumber, channelId); for (GeneralCallback errorCallback : errorCallbacks) { errorCallback.run(InviteErrorCode.SUCCESS.getCode(), InviteErrorCode.SUCCESS.getMsg(), info); @@ -923,12 +927,12 @@ public class jt1078ServiceImpl implements Ijt1078Service { }); Hook hookForDeparture = Hook.getInstance(HookType.on_media_departure, "rtp", receiveStream, mediaServer.getId()); subscribe.addSubscribe(hookForDeparture, (hookData) -> { - logger.info("[1078-对讲] 对讲时源流注销, app: {}. stream: {}, deviceId: {}, channelId: {}", app, stream, deviceId, channelId); - stopTalk(deviceId, channelId); + logger.info("[1078-对讲] 对讲时源流注销, app: {}. stream: {}, phoneNumber: {}, channelId: {}", app, stream, phoneNumber, channelId); + stopTalk(phoneNumber, channelId); }); // 设置超时监听 dynamicTask.startDelay(playKey, () -> { - logger.info("[1078-对讲] 超时, deviceId: {}, channelId: {}", deviceId, channelId); + logger.info("[1078-对讲] 超时, phoneNumber: {}, channelId: {}", phoneNumber, channelId); for (GeneralCallback errorCallback : errorCallbacks) { errorCallback.run(InviteErrorCode.ERROR_FOR_SIGNALLING_TIMEOUT.getCode(), InviteErrorCode.ERROR_FOR_SIGNALLING_TIMEOUT.getMsg(), null); @@ -939,8 +943,8 @@ public class jt1078ServiceImpl implements Ijt1078Service { Integer localPort = mediaServerService.startSendRtpPassive(mediaServer, sendRtpItem, 15000); - logger.info("[1078-对讲] deviceId: {}, channelId: {}, 收发端口: {}, app: {}, stream: {}", - deviceId, channelId, localPort, app, stream); + logger.info("[1078-对讲] phoneNumber: {}, channelId: {}, 收发端口: {}, app: {}, stream: {}", + phoneNumber, channelId, localPort, app, stream); J9101 j9101 = new J9101(); j9101.setChannel(Integer.valueOf(channelId)); j9101.setIp(mediaServer.getSdpIp()); @@ -948,9 +952,9 @@ public class jt1078ServiceImpl implements Ijt1078Service { j9101.setTcpPort(localPort); j9101.setUdpPort(localPort); j9101.setType(2); - jt1078Template.startLive(deviceId, j9101, 6); + jt1078Template.startLive(phoneNumber, j9101, 6); if (onlySend != null && onlySend) { - logger.info("[1078-对讲] 对讲成功, deviceId: {}, channelId: {}", deviceId, channelId); + logger.info("[1078-对讲] 对讲成功, phoneNumber: {}, channelId: {}", phoneNumber, channelId); for (GeneralCallback errorCallback : errorCallbacks) { errorCallback.run(InviteErrorCode.SUCCESS.getCode(), InviteErrorCode.SUCCESS.getMsg(), null); } @@ -960,8 +964,8 @@ public class jt1078ServiceImpl implements Ijt1078Service { } @Override - public void stopTalk(String deviceId, String channelId) { - String playKey = VideoManagerConstants.INVITE_INFO_1078_TALK + deviceId + ":" + channelId; + public void stopTalk(String phoneNumber, String channelId) { + String playKey = VideoManagerConstants.INVITE_INFO_1078_TALK + phoneNumber + ":" + channelId; dynamicTask.stop(playKey); StreamInfo streamInfo = (StreamInfo) redisTemplate.opsForValue().get(playKey); // 发送停止命令 @@ -970,8 +974,8 @@ public class jt1078ServiceImpl implements Ijt1078Service { j9102.setCommand(4); j9102.setCloseType(0); j9102.setStreamType(1); - jt1078Template.stopLive(deviceId, j9102, 6); - logger.info("[1078-停止对讲] deviceId: {}, channelId: {}", deviceId, channelId); + jt1078Template.stopLive(phoneNumber, j9102, 6); + logger.info("[1078-停止对讲] phoneNumber: {}, channelId: {}", phoneNumber, channelId); // 删除缓存数据 if (streamInfo != null) { redisTemplate.delete(playKey); @@ -988,20 +992,25 @@ public class jt1078ServiceImpl implements Ijt1078Service { } @Override - public void changeStreamType(String deviceId, String channelId, Integer streamType) { - String playKey = VideoManagerConstants.INVITE_INFO_1078_PLAY + deviceId + ":" + channelId; + public void changeStreamType(String phoneNumber, String channelId, Integer streamType) { + String playKey = VideoManagerConstants.INVITE_INFO_1078_PLAY + phoneNumber + ":" + channelId; dynamicTask.stop(playKey); StreamInfo streamInfo = (StreamInfo) redisTemplate.opsForValue().get(playKey); if (streamInfo == null) { - logger.info("[1078-切换码流类型] 未找到点播信息 deviceId: {}, channelId: {}, streamType: {}", deviceId, channelId, streamType); + logger.info("[1078-切换码流类型] 未找到点播信息 phoneNumber: {}, channelId: {}, streamType: {}", phoneNumber, channelId, streamType); } - logger.info("[1078-切换码流类型] deviceId: {}, channelId: {}, streamType: {}", deviceId, channelId, streamType); + logger.info("[1078-切换码流类型] phoneNumber: {}, channelId: {}, streamType: {}", phoneNumber, channelId, streamType); // 发送暂停命令 J9102 j9102 = new J9102(); j9102.setChannel(Integer.valueOf(channelId)); j9102.setCommand(1); j9102.setCloseType(0); j9102.setStreamType(streamType); - jt1078Template.stopLive(deviceId, j9102, 6); + jt1078Template.stopLive(phoneNumber, j9102, 6); + } + + @Override + public List getChannelList(int deviceId, String query) { + return jtChannelMapper.getAll(deviceId, query); } } diff --git a/数据库/JT1078-2.7.0/初始化-mysql-2.7.0.sql b/数据库/JT1078-2.7.0/初始化-mysql-2.7.0.sql index f70b30fd2..524408fa6 100644 --- a/数据库/JT1078-2.7.0/初始化-mysql-2.7.0.sql +++ b/数据库/JT1078-2.7.0/初始化-mysql-2.7.0.sql @@ -318,7 +318,7 @@ create table wvp_resources_tree ( create table wvp_jt_device ( id serial primary key, device_id character varying(50), - terminal_id character varying(50) not null, + phone_number character varying(50) not null, province_id character varying(50), province_text character varying(100), city_id character varying(50), @@ -331,10 +331,20 @@ create table wvp_jt_device ( longitude double precision, latitude double precision, status bool default false, + register_time character varying(50) not null, update_time character varying(50) not null, create_time character varying(50) not null, constraint uk_jt_device_id_device_id unique (id, terminal_id) ); +create table wvp_jt_channel ( + id serial primary key, + channel_id integer, + device_id integer, + name character varying(255), + update_time character varying(50) not null, + create_time character varying(50) not null, + constraint uk_jt_device_id_device_id unique (id, terminal_id) +); /*初始数据*/ INSERT INTO wvp_user VALUES (1, 'admin','21232f297a57a5a743894a0e4a801fc3',1,'2021-04-13 14:14:57','2021-04-13 14:14:57','3e80d1762a324d5b0ff636e0bd16f1e3'); diff --git a/数据库/JT1078-2.7.0/初始化-postgresql-kingbase-2.7.0.sql b/数据库/JT1078-2.7.0/初始化-postgresql-kingbase-2.7.0.sql index 4a6cd3dd1..258f64890 100644 --- a/数据库/JT1078-2.7.0/初始化-postgresql-kingbase-2.7.0.sql +++ b/数据库/JT1078-2.7.0/初始化-postgresql-kingbase-2.7.0.sql @@ -318,7 +318,7 @@ create table wvp_resources_tree ( create table wvp_jt_device ( id serial primary key, device_id character varying(50), - terminal_id character varying(50) not null, + phone_number character varying(50) not null, province_id character varying(50), province_text character varying(100), city_id character varying(50), @@ -331,10 +331,20 @@ create table wvp_jt_device ( longitude double precision, latitude double precision, status bool default false, + register_time character varying(50) not null, update_time character varying(50) not null, create_time character varying(50) not null, constraint uk_jt_device_id_device_id unique (id, terminal_id) ); +create table wvp_jt_channel ( + id serial primary key, + channel_id integer, + device_id integer, + name character varying(255), + update_time character varying(50) not null, + create_time character varying(50) not null, + constraint uk_jt_device_id_device_id unique (id, terminal_id) +); /*初始数据*/ INSERT INTO wvp_user VALUES (1, 'admin','21232f297a57a5a743894a0e4a801fc3',1,'2021-04-13 14:14:57','2021-04-13 14:14:57','3e80d1762a324d5b0ff636e0bd16f1e3'); diff --git a/数据库/JT1078-2.7.0/更新-mysql-2.7.0.sql b/数据库/JT1078-2.7.0/更新-mysql-2.7.0.sql index 963c61455..58c88a335 100644 --- a/数据库/JT1078-2.7.0/更新-mysql-2.7.0.sql +++ b/数据库/JT1078-2.7.0/更新-mysql-2.7.0.sql @@ -1,7 +1,7 @@ create table wvp_jt_device ( id serial primary key, device_id character varying(50), - terminal_id character varying(50) not null, + phone_number integer, province_id character varying(50), province_text character varying(100), city_id character varying(50), @@ -14,7 +14,18 @@ create table wvp_jt_device ( longitude double precision, latitude double precision, status bool default false, + register_time character varying(50) not null, update_time character varying(50) not null, create_time character varying(50) not null, constraint uk_jt_device_id_device_id unique (id, terminal_id) -); \ No newline at end of file +); + +create table wvp_jt_channel ( + id serial primary key, + device_id integer, + channel_id integer, + name character varying(255), + update_time character varying(50) not null, + create_time character varying(50) not null +); + diff --git a/数据库/JT1078-2.7.0/更新-postgresql-kingbase-2.7.0.sql b/数据库/JT1078-2.7.0/更新-postgresql-kingbase-2.7.0.sql index c86c1bac8..16860915f 100644 --- a/数据库/JT1078-2.7.0/更新-postgresql-kingbase-2.7.0.sql +++ b/数据库/JT1078-2.7.0/更新-postgresql-kingbase-2.7.0.sql @@ -1,7 +1,7 @@ create table wvp_jt_device ( id serial primary key, device_id character varying(50), - terminal_id character varying(50) not null, + phone_number character varying(50) not null, province_id character varying(50), province_text character varying(100), city_id character varying(50), @@ -14,7 +14,17 @@ create table wvp_jt_device ( longitude double precision, latitude double precision, status bool default false, + register_time character varying(50) not null, update_time character varying(50) not null, create_time character varying(50) not null, constraint uk_jt_device_id_device_id unique (id, terminal_id) +); +create table wvp_jt_channel ( + id serial primary key, + channel_id integer, + device_id integer, + name character varying(255), + update_time character varying(50) not null, + create_time character varying(50) not null, + constraint uk_jt_device_id_device_id unique (id, terminal_id) ); \ No newline at end of file