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 index ecbd151e7..43bf87f8c 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTChannel.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTChannel.java @@ -22,6 +22,12 @@ public class JTChannel { @Schema(description = "设备的数据库ID") private int deviceId; + /** + * 通道ID + */ + @Schema(description = "通道ID") + private Integer channelId; + @Schema(description = "创建时间") private String createTime; @@ -69,12 +75,21 @@ public class JTChannel { this.updateTime = updateTime; } + public Integer getChannelId() { + return channelId; + } + + public void setChannelId(Integer channelId) { + this.channelId = channelId; + } + @Override public String toString() { return "JTChannel{" + "id=" + id + ", name='" + name + '\'' + ", deviceId=" + deviceId + + ", channelId=" + channelId + ", 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 54c393d63..e752ea1c9 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 @@ -50,13 +50,13 @@ public class JTDevice { * 终端手机号 */ @Schema(description = "终端手机号") - private Integer phoneNumber; + private String phoneNumber; /** - * 设备ID + * 终端ID */ - @Schema(description = "设备ID") - private String deviceId; + @Schema(description = "终端ID") + private String terminalId; /** * 车牌颜色 @@ -154,20 +154,20 @@ public class JTDevice { this.deviceModel = deviceModel; } - public Integer getPhoneNumber() { + public String getPhoneNumber() { return phoneNumber; } - public void setPhoneNumber(Integer phoneNumber) { + public void setPhoneNumber(String phoneNumber) { this.phoneNumber = phoneNumber; } - public String getDeviceId() { - return deviceId; + public String getTerminalId() { + return terminalId; } - public void setDeviceId(String deviceId) { - this.deviceId = deviceId; + public void setTerminalId(String deviceId) { + this.terminalId = deviceId; } public int getPlateColor() { @@ -244,7 +244,7 @@ public class JTDevice { ", 制造商ID='" + makerId + '\'' + ", 终端型号='" + deviceModel + '\'' + ", 终端手机号='" + phoneNumber + '\'' + - ", 设备ID='" + deviceId + '\'' + + ", 设备ID='" + terminalId + '\'' + ", 车牌颜色=" + plateColor + ", 车牌='" + plateNo + '\'' + ", 鉴权码='" + authenticationCode + '\'' + 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 8b33e8768..a72fea578 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.setTerminalPhoneNumber(devId.replaceFirst("^0*", "")); + header.setPhoneNumber(devId.replaceFirst("^0*", "")); } else { - header.setTerminalPhoneNumber(ByteBufUtil.hexDump(buf.readSlice(6)).replaceFirst("^0*", "")); + header.setPhoneNumber(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 4f51ef3b0..7a3778714 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 @@ -24,7 +24,7 @@ public enum MultiPacketManager { * 增加待合并的分包,如果分包接受完毕会返回完整的数据包 */ public ByteBuf add(MultiPacket packet) { - String key = packet.getHeader().getMsgId() + "/" + packet.getHeader().getTerminalPhoneNumber(); + String key = packet.getHeader().getMsgId() + "/" + packet.getHeader().getPhoneNumber(); 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 1d22632f5..f4c760e3a 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.getTerminalPhoneNumber(), 20))); + byteBuf.writeBytes(ByteBufUtil.decodeHexDump(Bin.strHexPaddingLeft(header.getPhoneNumber(), 20))); } else { // 消息体属性 byteBuf.writeShort(encode.readableBytes()); - byteBuf.writeBytes(ByteBufUtil.decodeHexDump(Bin.strHexPaddingLeft(header.getTerminalPhoneNumber(), 12))); + byteBuf.writeBytes(ByteBufUtil.decodeHexDump(Bin.strHexPaddingLeft(header.getPhoneNumber(), 12))); } // 消息体流水号 diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/codec/netty/Jt808Handler.java b/src/main/java/com/genersoft/iot/vmp/jt1078/codec/netty/Jt808Handler.java index 59d77d706..c0fe3c2d4 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/codec/netty/Jt808Handler.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/codec/netty/Jt808Handler.java @@ -49,7 +49,7 @@ public class Jt808Handler extends ChannelInboundHandlerAdapter { } ConnectChangeEvent event = new ConnectChangeEvent(this); event.setConnected(true); - event.setTerminalId(session.getDevId()); + event.setPhoneNumber(session.getDevId()); applicationEventPublisher.publishEvent(event); } @@ -63,7 +63,7 @@ public class Jt808Handler extends ChannelInboundHandlerAdapter { } ConnectChangeEvent event = new ConnectChangeEvent(this); event.setConnected(false); - event.setTerminalId(session.getDevId()); + event.setPhoneNumber(session.getDevId()); applicationEventPublisher.publishEvent(event); } 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 index f451fcaf5..642fb01cc 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/JT1078DeviceController.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/JT1078DeviceController.java @@ -64,20 +64,43 @@ public class JT1078DeviceController { @Operation(summary = "删除设备", security = @SecurityRequirement(name = JwtUtils.HEADER)) @Parameter(name = "phoneNumber", description = "设备手机号", required = true) @DeleteMapping("/delete") - public void addDevice(Integer phoneNumber){ + public void addDevice(String phoneNumber){ assert phoneNumber != null; service.deleteDeviceByPhoneNumber(phoneNumber); } @Operation(summary = "1078-查询部标通道", security = @SecurityRequirement(name = JwtUtils.HEADER)) - @Parameter(name = "phoneNumber", description = "设备手机号", required = true) + @Parameter(name = "deviceId", description = "设备ID", required = true) @Parameter(name = "query", description = "查询内容") @GetMapping("/channel/list") - public List getChannels(@RequestParam(required = true) Integer phoneNumber, + public List getChannels(@RequestParam(required = true) Integer deviceId, @RequestParam(required = false) String query) { - assert phoneNumber != null; - return service.getChannelList(phoneNumber, query); + assert deviceId != null; + return service.getChannelList(deviceId, query); + } + + @Operation(summary = "1078-更新通道", security = @SecurityRequirement(name = JwtUtils.HEADER)) + @Parameter(name = "channel", description = "通道", required = true) + @PostMapping("/update") + public void updateChannel(JTChannel channel){ + assert channel.getId() > 0; + assert channel.getChannelId() != null; + service.updateChannel(channel); + } + + @Operation(summary = "1078-新增通道", security = @SecurityRequirement(name = JwtUtils.HEADER)) + @Parameter(name = "channel", description = "通道", required = true) + @PostMapping("/add") + public void addChannel(JTChannel channel){ + assert channel.getChannelId() != null; + service.addChannel(channel); + } + @Operation(summary = "1078-删除通道", security = @SecurityRequirement(name = JwtUtils.HEADER)) + @Parameter(name = "id", description = "通道的数据库ID", required = true) + @DeleteMapping("/delete") + public void deleteChannel(Integer id){ + service.deleteChannelById(id); } } 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 index 5d490f057..8595172bc 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/dao/JTChannelMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/dao/JTChannelMapper.java @@ -23,87 +23,31 @@ public interface JTChannelMapper { 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); + void update(JTChannel channel); - @Insert("INSERT INTO wvp_jt_device (" + - "terminal_id,"+ - "province_id,"+ - "province_text,"+ - "city_id,"+ - "city_text,"+ - "maker_id,"+ + @Insert("INSERT INTO wvp_jt_channel (" + "device_id,"+ - "device_model,"+ - "plate_color,"+ - "plate_no,"+ - "authentication_code,"+ - "longitude,"+ - "latitude,"+ + "channel_id,"+ + "name,"+ "create_time,"+ "update_time"+ ") VALUES (" + - "#{terminalId}," + - "#{provinceId}," + - "#{provinceText}," + - "#{cityId}," + - "#{cityText}," + - "#{makerId}," + "#{deviceId}," + - "#{deviceModel}," + - "#{plateColor}," + - "#{plateNo}," + - "#{authenticationCode}," + - "#{longitude}," + - "#{latitude}," + + "#{channelId}," + + "#{name}," + "#{createTime}," + "#{updateTime}" + ")") - void addDevice(JTDevice device); + void add(JTChannel channel); - @Delete("delete from wvp_jt_device where terminal_id = #{terminalId}") - void deleteDeviceByTerminalId(@Param("terminalId") String terminalId); + @Delete("delete from wvp_jt_channel where id = #{id}") + void delete(@Param("id") int id); - @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/JTTerminalMapper.java similarity index 77% rename from src/main/java/com/genersoft/iot/vmp/jt1078/dao/JTDeviceMapper.java rename to src/main/java/com/genersoft/iot/vmp/jt1078/dao/JTTerminalMapper.java index 3f5d70d5f..41fddf192 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/dao/JTDeviceMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/dao/JTTerminalMapper.java @@ -6,15 +6,15 @@ import org.apache.ibatis.annotations.*; import java.util.List; @Mapper -public interface JTDeviceMapper { +public interface JTTerminalMapper { - @Select("SELECT * FROM wvp_jt_device where terminal_id=#{terminalId}") - JTDevice getDevice(@Param("terminalId") Integer terminalId); + @Select("SELECT * FROM wvp_jt_terminal where phone_number=#{phoneNumber}") + JTDevice getDevice(@Param("phoneNumber") String phoneNumber); @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,"+ + @Insert("INSERT INTO wvp_jt_terminal (" + + "phone_number,"+ "province_id,"+ "province_text,"+ "city_id,"+ "city_text,"+ "maker_id,"+ - "device_id,"+ + "terminal_id,"+ "device_model,"+ "plate_color,"+ "plate_no,"+ @@ -68,13 +68,13 @@ public interface JTDeviceMapper { "create_time,"+ "update_time"+ ") VALUES (" + - "#{terminalId}," + + "#{phoneNumber}," + "#{provinceId}," + "#{provinceText}," + "#{cityId}," + "#{cityText}," + "#{makerId}," + - "#{deviceId}," + + "#{terminalId}," + "#{deviceModel}," + "#{plateColor}," + "#{plateNo}," + @@ -86,13 +86,13 @@ public interface JTDeviceMapper { ")") void addDevice(JTDevice device); - @Delete("delete from wvp_jt_device where terminal_id = #{terminalId}") - void deleteDeviceByTerminalId(@Param("terminalId") Integer terminalId); + @Delete("delete from wvp_jt_terminal where phone_number = #{phoneNumber}") + void deleteDeviceByPhoneNumber(@Param("phoneNumber") String phoneNumber); @Update(value = {" "}) - void updateDeviceStatus(@Param("connected") boolean connected, @Param("terminalId") Integer terminalId); + void updateDeviceStatus(@Param("connected") boolean connected, @Param("phoneNumber") String phoneNumber); } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/event/ConnectChangeEvent.java b/src/main/java/com/genersoft/iot/vmp/jt1078/event/ConnectChangeEvent.java index bdd916db8..df52e5067 100755 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/event/ConnectChangeEvent.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/event/ConnectChangeEvent.java @@ -22,7 +22,7 @@ public class ConnectChangeEvent extends ApplicationEvent { private boolean connected; - private String terminalId; + private String phoneNumber; public boolean isConnected() { return connected; @@ -32,11 +32,11 @@ public class ConnectChangeEvent extends ApplicationEvent { this.connected = connected; } - public String getTerminalId() { - return terminalId; + public String getPhoneNumber() { + return phoneNumber; } - public void setTerminalId(String terminalId) { - this.terminalId = terminalId; + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; } } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/event/eventListener/ConnectChangeEventListener.java b/src/main/java/com/genersoft/iot/vmp/jt1078/event/eventListener/ConnectChangeEventListener.java index 0f142fe6e..88d569713 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/event/eventListener/ConnectChangeEventListener.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/event/eventListener/ConnectChangeEventListener.java @@ -22,13 +22,13 @@ public class ConnectChangeEventListener implements ApplicationListener @Override public void onApplicationEvent(RegisterEvent event) { - System.out.println("收到设备注册: "+ event.getDevice().getDeviceId()); + System.out.println("收到设备注册: "+ event.getDevice().getTerminalId()); } } 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 dc53fddde..6cf751a2d 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 terminalPhoneNumber; + String phoneNumber; // 消息体流水号 Integer sn; @@ -41,12 +41,12 @@ public class Header { this.msgPro = msgPro; } - public String getTerminalPhoneNumber() { - return terminalPhoneNumber; + public String getPhoneNumber() { + return phoneNumber; } - public void setTerminalPhoneNumber(String terminalPhoneNumber) { - this.terminalPhoneNumber = terminalPhoneNumber; + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; } public Integer getSn() { @@ -79,7 +79,7 @@ public class Header { return "Header{" + "消息ID='" + msgId + '\'' + ", 消息体属性=" + msgPro + - ", 终端手机号='" + terminalPhoneNumber + '\'' + + ", 终端手机号='" + phoneNumber + '\'' + ", 消息体流水号=" + 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 12a5e73ec..c00356aff 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 @@ -36,7 +36,7 @@ public class J0001 extends Re { @Override protected Rs handler(Header header, Session session, Ijt1078Service service) { - SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0001", (long) respNo, result); + SessionManager.INSTANCE.response(header.getPhoneNumber(), "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 aa1c80309..5de6fefc8 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 @@ -28,13 +28,13 @@ public class J0003 extends Re { respNo = buf.readUnsignedShort(); respId = ByteBufUtil.hexDump(buf.readSlice(2)); result = buf.readUnsignedByte(); - log.info("[JT-注销] 设备: {}", header.getTerminalPhoneNumber()); + log.info("[JT-注销] 设备: {}", header.getPhoneNumber()); return null; } @Override protected Rs handler(Header header, Session session, Ijt1078Service service) { - SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0001", (long) respNo, result); + SessionManager.INSTANCE.response(header.getPhoneNumber(), "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 6303d0ee5..219a9ce6e 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 @@ -46,7 +46,7 @@ public class J0100 extends Re { device.setDeviceModel(buf.readCharSequence(30, Charset.forName("GBK")) .toString().trim()); - device.setDeviceId(buf.readCharSequence(30, Charset.forName("GBK")) + device.setTerminalId(buf.readCharSequence(30, Charset.forName("GBK")) .toString().trim()); device.setPlateColor(buf.readByte()); @@ -66,7 +66,7 @@ public class J0100 extends Re { byte[] bytes7 = new byte[7]; buf.readBytes(bytes7); - device.setDeviceId(new String(bytes7).trim()); + device.setTerminalId(new String(bytes7).trim()); device.setPlateColor(buf.readByte()); byte[] plateColorBytes = new byte[buf.readableBytes()]; @@ -85,7 +85,7 @@ public class J0100 extends Re { J8100 j8100 = new J8100(); j8100.setRespNo(header.getSn()); // 从数据库判断这个设备是否合法 - JTDevice deviceInDb = service.getDevice(header.getTerminalPhoneNumber()); + JTDevice deviceInDb = service.getDevice(header.getPhoneNumber()); if (deviceInDb != null) { j8100.setResult(J8100.SUCCESS); String authenticationCode = UUID.randomUUID().toString(); @@ -105,14 +105,14 @@ public class J0100 extends Re { } deviceInDb.setDeviceModel(device.getDeviceModel()); deviceInDb.setMakerId(device.getMakerId()); - deviceInDb.setDeviceId(device.getDeviceId()); + deviceInDb.setTerminalId(device.getTerminalId()); // TODO 支持直接展示车牌颜色的描述 deviceInDb.setPlateColor(device.getPlateColor()); deviceInDb.setPlateNo(device.getPlateNo()); service.updateDevice(deviceInDb); log.info("[JT-注册成功] 设备: {}", deviceInDb); }else { - log.info("[JT-注册失败] 未授权设备: {}", header.getTerminalPhoneNumber()); + log.info("[JT-注册失败] 未授权设备: {}", header.getPhoneNumber()); 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 7c5625210..b782e1634 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 @@ -37,7 +37,7 @@ public class J0102 extends Re { @Override protected Rs handler(Header header, Session session, Ijt1078Service service) { - JTDevice device = service.getDevice(header.getTerminalPhoneNumber()); + JTDevice device = service.getDevice(header.getPhoneNumber()); 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 2c738d457..d70a5cb6c 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.getTerminalPhoneNumber(), "0104", (long) respNo, deviceConfig); + SessionManager.INSTANCE.response(header.getPhoneNumber(), "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 a08fb6baf..ff548fe9f 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.getTerminalPhoneNumber(), "0107", null, deviceAttribute); + SessionManager.INSTANCE.response(header.getPhoneNumber(), "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 ac31f01ef..b65871232 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 @@ -89,7 +89,7 @@ public class J0200 extends Re { @Override protected Rs handler(Header header, Session session, Ijt1078Service service) { - JTDevice deviceInDb = service.getDevice(header.getTerminalPhoneNumber()); + JTDevice deviceInDb = service.getDevice(header.getPhoneNumber()); 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 49eaa8c07..4aefef969 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 @@ -33,13 +33,13 @@ public class J0201 extends Re { positionInfo = JTPositionBaseInfo.decode(buf); log.info("[JT-位置信息查询应答]: {}", positionInfo.toString()); - SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0201", (long) respNo, positionInfo); + SessionManager.INSTANCE.response(header.getPhoneNumber(), "0201", (long) respNo, positionInfo); return null; } @Override protected Rs handler(Header header, Session session, Ijt1078Service service) { - JTDevice deviceInDb = service.getDevice(header.getTerminalPhoneNumber()); + JTDevice deviceInDb = service.getDevice(header.getPhoneNumber()); 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 a4c6b39fd..f3e1dbe6f 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 @@ -28,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.getTerminalPhoneNumber(), "0500", (long) respNo, positionInfo); + SessionManager.INSTANCE.response(header.getPhoneNumber(), "0500", (long) respNo, positionInfo); return null; } @Override protected Rs handler(Header header, Session session, Ijt1078Service service) { - JTDevice deviceInDb = service.getDevice(header.getTerminalPhoneNumber()); + JTDevice deviceInDb = service.getDevice(header.getPhoneNumber()); 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 1abf3a57b..0d0ccc375 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.getTerminalPhoneNumber(), "0608", null, areaOrRoutes); + SessionManager.INSTANCE.response(header.getPhoneNumber(), "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.getTerminalPhoneNumber(), "0608", null, jtCircleAreas); + SessionManager.INSTANCE.response(header.getPhoneNumber(), "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.getTerminalPhoneNumber(), "0608", null, jtRectangleAreas); + SessionManager.INSTANCE.response(header.getPhoneNumber(), "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.getTerminalPhoneNumber(), "0608", null, jtPolygonAreas); + SessionManager.INSTANCE.response(header.getPhoneNumber(), "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.getTerminalPhoneNumber(), "0608", null, jtRoutes); + SessionManager.INSTANCE.response(header.getPhoneNumber(), "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 ffea2f483..240fc589b 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 @@ -27,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.getTerminalPhoneNumber(), "0702", null, driverInformation); + SessionManager.INSTANCE.response(header.getPhoneNumber(), "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 1bcee974a..9cd7d8770 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 @@ -70,7 +70,7 @@ public class J0801 extends Re { log.info("[JT-多媒体数据上传] 写入文件失败", e); } log.info("[JT-多媒体数据上传]: {}", mediaEventInfo); - SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0801", null, mediaEventInfo); + SessionManager.INSTANCE.response(header.getPhoneNumber(), "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 cf9aa4d47..970371393 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 @@ -34,7 +34,7 @@ public class J0802 extends Re { int length = buf.readUnsignedShort(); if (length == 0) { log.info("[JT-存储多媒体数据检索应答]: {}", length); - SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0802", (long) respNo, new ArrayList<>()); + SessionManager.INSTANCE.response(header.getPhoneNumber(), "0802", (long) respNo, new ArrayList<>()); return null; } mediaDataInfoList = new ArrayList<>(length); @@ -42,7 +42,7 @@ public class J0802 extends Re { mediaDataInfoList.add(JTMediaDataInfo.decode(buf)); } log.info("[JT-存储多媒体数据检索应答]: {}", mediaDataInfoList.size()); - SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0802", (long) respNo, mediaDataInfoList); + SessionManager.INSTANCE.response(header.getPhoneNumber(), "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 db20fcb50..cad27df4e 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 @@ -39,13 +39,13 @@ public class J0805 extends Re { ids.add(buf.readUnsignedInt()); } } - SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0805", null, ids); + SessionManager.INSTANCE.response(header.getPhoneNumber(), "0805", null, ids); return null; } @Override protected Rs handler(Header header, Session session, Ijt1078Service service) { - SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0001", (long) respNo, result); + SessionManager.INSTANCE.response(header.getPhoneNumber(), "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 f44af2782..570f9045b 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.getTerminalPhoneNumber(), "1003", null, mediaAttribute); + SessionManager.INSTANCE.response(header.getPhoneNumber(), "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 fb893e9dd..31f316ce4 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 @@ -49,7 +49,7 @@ public class J1205 extends Re { @Override protected Rs handler(Header header, Session session, Ijt1078Service service) { - SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "1205", (long) respNo, recordList); + SessionManager.INSTANCE.response(header.getPhoneNumber(), "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 fdb36cd93..86b7d7ada 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.getTerminalPhoneNumber(), (int) header.getVersion(), header); + session.register(header.getPhoneNumber(), (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 87bc72607..67af7d702 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 @@ -9,7 +9,7 @@ import com.github.pagehelper.PageInfo; import java.util.List; public interface Ijt1078Service { - JTDevice getDevice(Integer terminalId); + JTDevice getDevice(String phoneNumber); void updateDevice(JTDevice deviceInDb); @@ -17,9 +17,9 @@ public interface Ijt1078Service { void addDevice(JTDevice device); - void deleteDeviceByPhoneNumber(Integer phoneNumber); + void deleteDeviceByPhoneNumber(String phoneNumber); - void updateDeviceStatus(boolean connected, Integer terminalId); + void updateDeviceStatus(boolean connected, String phoneNumber); void play(String phoneNumber, String channelId, int type, GeneralCallback callback); @@ -118,5 +118,11 @@ public interface Ijt1078Service { void recordDownload(String phoneNumber, String channelId, String startTime, String endTime, Integer type, Integer rate, GeneralCallback fileCallback); - List getChannelList(int phoneNumber, String query); + List getChannelList(int deviceId, String query); + + void updateChannel(JTChannel channel); + + void addChannel(JTChannel channel); + + void deleteChannelById(Integer id); } 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 e1a45a786..cb0017089 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 @@ -13,7 +13,7 @@ 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.dao.JTTerminalMapper; import com.genersoft.iot.vmp.jt1078.event.CallbackManager; import com.genersoft.iot.vmp.jt1078.event.FtpUploadEvent; import com.genersoft.iot.vmp.jt1078.proc.request.J1205; @@ -36,7 +36,6 @@ import com.genersoft.iot.vmp.utils.DateUtil; import com.genersoft.iot.vmp.vmanager.bean.ErrorCode; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; -import org.apache.commons.compress.utils.IOUtils; import org.apache.commons.lang3.ObjectUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -45,10 +44,7 @@ import org.springframework.context.event.EventListener; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; -import javax.servlet.ServletOutputStream; -import java.io.*; import java.lang.reflect.Field; -import java.nio.file.Files; import java.util.*; import java.util.concurrent.ConcurrentHashMap; @@ -58,7 +54,7 @@ public class jt1078ServiceImpl implements Ijt1078Service { private final static Logger logger = LoggerFactory.getLogger(jt1078ServiceImpl.class); @Autowired - private JTDeviceMapper jtDeviceMapper; + private JTTerminalMapper jtDeviceMapper; @Autowired private JTChannelMapper jtChannelMapper; @@ -98,8 +94,8 @@ public class jt1078ServiceImpl implements Ijt1078Service { @Override - public JTDevice getDevice(Integer terminalId) { - return jtDeviceMapper.getDevice(terminalId); + public JTDevice getDevice(String phoneNumber) { + return jtDeviceMapper.getDevice(phoneNumber); } @Override @@ -123,13 +119,13 @@ public class jt1078ServiceImpl implements Ijt1078Service { } @Override - public void deleteDeviceByPhoneNumber(Integer phoneNumber) { - jtDeviceMapper.deleteDeviceByTerminalId(phoneNumber); + public void deleteDeviceByPhoneNumber(String phoneNumber) { + jtDeviceMapper.deleteDeviceByPhoneNumber(phoneNumber); } @Override - public void updateDeviceStatus(boolean connected, Integer terminalId) { - jtDeviceMapper.updateDeviceStatus(connected, terminalId); + public void updateDeviceStatus(boolean connected, String phoneNumber) { + jtDeviceMapper.updateDeviceStatus(connected, phoneNumber); } private final Map>> inviteErrorCallbackMap = new ConcurrentHashMap<>(); @@ -1013,4 +1009,19 @@ public class jt1078ServiceImpl implements Ijt1078Service { public List getChannelList(int deviceId, String query) { return jtChannelMapper.getAll(deviceId, query); } + + @Override + public void updateChannel(JTChannel channel) { + jtChannelMapper.update(channel); + } + + @Override + public void addChannel(JTChannel channel) { + jtChannelMapper.add(channel); + } + + @Override + public void deleteChannelById(Integer id) { + jtChannelMapper.delete(id); + } } diff --git a/数据库/JT1078-2.7.0/初始化-mysql-2.7.0.sql b/数据库/JT1078-2.7.0/初始化-mysql-2.7.0.sql index 524408fa6..d638fa355 100644 --- a/数据库/JT1078-2.7.0/初始化-mysql-2.7.0.sql +++ b/数据库/JT1078-2.7.0/初始化-mysql-2.7.0.sql @@ -315,10 +315,10 @@ create table wvp_resources_tree ( path character varying(255) ); -create table wvp_jt_device ( +create table wvp_jt_terminal ( id serial primary key, device_id character varying(50), - phone_number character varying(50) not null, + phone_number character varying(50), province_id character varying(50), province_text character varying(100), city_id character varying(50), @@ -334,7 +334,7 @@ create table wvp_jt_device ( 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) + constraint uk_jt_device_id_device_id unique (id, phone_number) ); create table wvp_jt_channel ( id serial primary key, 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 258f64890..6de6ecdfa 100644 --- a/数据库/JT1078-2.7.0/初始化-postgresql-kingbase-2.7.0.sql +++ b/数据库/JT1078-2.7.0/初始化-postgresql-kingbase-2.7.0.sql @@ -315,10 +315,10 @@ create table wvp_resources_tree ( path character varying(255) ); -create table wvp_jt_device ( +create table wvp_jt_terminal ( id serial primary key, device_id character varying(50), - phone_number character varying(50) not null, + phone_number character varying(50), province_id character varying(50), province_text character varying(100), city_id character varying(50), @@ -334,7 +334,7 @@ create table wvp_jt_device ( 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) + constraint uk_jt_device_id_device_id unique (id, phone_number) ); create table wvp_jt_channel ( id serial primary key, diff --git a/数据库/JT1078-2.7.0/更新-mysql-2.7.0.sql b/数据库/JT1078-2.7.0/更新-mysql-2.7.0.sql index 58c88a335..4d283581e 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 ( +create table wvp_jt_terminal ( id serial primary key, device_id character varying(50), - phone_number integer, + phone_number character varying(50), province_id character varying(50), province_text character varying(100), city_id character varying(50), @@ -17,7 +17,7 @@ create table wvp_jt_device ( 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) + constraint uk_jt_device_id_device_id unique (id, phone_number) ); create table wvp_jt_channel ( 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 16860915f..973f010c7 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 ( +create table wvp_jt_terminal ( id serial primary key, device_id character varying(50), - phone_number character varying(50) not null, + phone_number character varying(50), province_id character varying(50), province_text character varying(100), city_id character varying(50), @@ -17,7 +17,7 @@ create table wvp_jt_device ( 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) + constraint uk_jt_device_id_device_id unique (id, phone_number) ); create table wvp_jt_channel ( id serial primary key,