From 269ad8cedbb07ca207a6f33af23085894dab4aa6 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期日, 23 四月 2023 14:36:13 +0800 Subject: [PATCH] 修身目录刷新,优化公网下远程IP端口的获取 --- src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java | 8 ++-- src/main/java/com/genersoft/iot/vmp/gb28181/conf/ServerLoggerImpl.java | 8 +-- src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java | 9 ++-- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java | 2 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/KeepaliveNotifyMessageHandler.java | 1 src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java | 54 +++++++++++++++++++++++++++ 6 files changed, 68 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/conf/ServerLoggerImpl.java b/src/main/java/com/genersoft/iot/vmp/gb28181/conf/ServerLoggerImpl.java index 3fc1d37..19e1906 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/conf/ServerLoggerImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/conf/ServerLoggerImpl.java @@ -27,7 +27,7 @@ return; } StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append(!sender? "鍙戦�侊細鐩爣--->" + from:"鎺ユ敹锛氭潵鑷�--->" + to) + stringBuilder.append(sender? "鍙戦�侊細鐩爣--->" + from:"鎺ユ敹锛氭潵鑷�--->" + to) .append("\r\n") .append(message); this.stackLogger.logInfo(stringBuilder.toString()); @@ -40,7 +40,7 @@ return; } StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append(!sender? "鍙戦�侊細 鐩爣->" + from :"鎺ユ敹锛氭潵鑷�->" + to) + stringBuilder.append(sender? "鍙戦�侊細 鐩爣->" + from :"鎺ユ敹锛氭潵鑷�->" + to) .append("\r\n") .append(message); this.stackLogger.logInfo(stringBuilder.toString()); @@ -52,7 +52,7 @@ return; } StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append(!sender? "鍙戦�侊細 鐩爣->" + from :"鎺ユ敹锛氭潵鑷�->" + to) + stringBuilder.append(sender? "鍙戦�侊細 鐩爣->" + from :"鎺ユ敹锛氭潵鑷�->" + to) .append("\r\n") .append(message); this.stackLogger.logInfo(stringBuilder.toString()); @@ -87,6 +87,4 @@ this.stackLogger = this.sipStack.getStackLogger(); } } - - } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java index 9f69950..81e7fa6 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java @@ -96,7 +96,7 @@ RemoteAddressInfo remoteAddressInfo = SipUtils.getRemoteAddressFromRequest(request, userSetting.getSipUseSourceIpAsRemoteAddress()); - + logger.info("[娉ㄥ唽璇锋眰] 璁惧锛歿}, 杩滅▼鍦板潃涓�: {}:{}", deviceId, remoteAddressInfo.getIp(), remoteAddressInfo.getPort()); if (device != null && device.getSipTransactionInfo() != null && request.getCallIdHeader().getCallId().equals(device.getSipTransactionInfo().getCallId())) { diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/KeepaliveNotifyMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/KeepaliveNotifyMessageHandler.java index 865b662..4d1a58e 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/KeepaliveNotifyMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/KeepaliveNotifyMessageHandler.java @@ -69,6 +69,7 @@ RemoteAddressInfo remoteAddressInfo = SipUtils.getRemoteAddressFromRequest(request, userSetting.getSipUseSourceIpAsRemoteAddress()); if (!device.getIp().equalsIgnoreCase(remoteAddressInfo.getIp()) || device.getPort() != remoteAddressInfo.getPort()) { + logger.info("[蹇冭烦] 璁惧{}鍦板潃鍙樺寲, 杩滅▼鍦板潃涓�: {}:{}", device.getDeviceId(), remoteAddressInfo.getIp(), remoteAddressInfo.getPort()); device.setPort(remoteAddressInfo.getPort()); device.setHostAddress(remoteAddressInfo.getIp().concat(":").concat(String.valueOf(remoteAddressInfo.getPort()))); device.setIp(remoteAddressInfo.getIp()); diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java b/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java index 1f4632e..d6037a1 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java @@ -133,8 +133,9 @@ String remoteAddress; int remotePort; if (sipUseSourceIpAsRemoteAddress) { - remoteAddress = request.getRemoteAddress().getHostAddress(); - remotePort = request.getRemotePort(); + remoteAddress = request.getPeerPacketSourceAddress().getHostAddress(); + remotePort = request.getPeerPacketSourcePort(); + }else { // 鍒ゆ柇RPort鏄惁鏀瑰彉锛屾敼鍙樺垯璇存槑璺敱nat淇℃伅鍙樺寲锛屼慨鏀硅澶囦俊鎭� // 鑾峰彇鍒伴�氫俊鍦板潃绛変俊鎭� @@ -142,8 +143,8 @@ remotePort = request.getTopmostViaHeader().getRPort(); // 瑙f瀽鏈湴鍦板潃鏇夸唬 if (ObjectUtils.isEmpty(remoteAddress) || remotePort == -1) { - remoteAddress = request.getRemoteAddress().getHostAddress(); - remotePort = request.getRemotePort(); + remoteAddress = request.getPeerPacketSourceAddress().getHostAddress(); + remotePort = request.getPeerPacketSourcePort(); } } diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java index 3f4d804..f81d1f8 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java @@ -271,6 +271,60 @@ "</script>") int batchAdd(List<DeviceChannel> addChannels); + + @Insert("<script> " + + "insert into device_channel " + + "(channelId, deviceId, name, manufacture, model, owner, civilCode, block, subCount, " + + " address, parental, parentId, safetyWay, registerWay, certNum, certifiable, errCode, secrecy, " + + " ipAddress, port, password, PTZType, status, streamId, longitude, latitude, longitudeGcj02, latitudeGcj02, " + + " longitudeWgs84, latitudeWgs84, hasAudio, createTime, updateTime, businessGroupId, gpsTime) " + + "values " + + "<foreach collection='addChannels' index='index' item='item' separator=','> " + + "(#{item.channelId}, #{item.deviceId}, #{item.name}, #{item.manufacture}, #{item.model}, " + + "#{item.owner}, #{item.civilCode}, #{item.block},#{item.subCount}," + + "#{item.address}, #{item.parental}, #{item.parentId}, #{item.safetyWay}, #{item.registerWay}, " + + "#{item.certNum}, #{item.certifiable}, #{item.errCode}, #{item.secrecy}, " + + "#{item.ipAddress}, #{item.port}, #{item.password}, #{item.PTZType}, #{item.status}, " + + "#{item.streamId}, #{item.longitude}, #{item.latitude},#{item.longitudeGcj02}, " + + "#{item.latitudeGcj02},#{item.longitudeWgs84}, #{item.latitudeWgs84}, #{item.hasAudio}, now(), now(), " + + "#{item.businessGroupId}, #{item.gpsTime}) " + + "</foreach> " + + "ON DUPLICATE KEY UPDATE " + + "updateTime=VALUES(updateTime), " + + "name=VALUES(name), " + + "manufacture=VALUES(manufacture), " + + "model=VALUES(model), " + + "owner=VALUES(owner), " + + "civilCode=VALUES(civilCode), " + + "block=VALUES(block), " + + "subCount=VALUES(subCount), " + + "address=VALUES(address), " + + "parental=VALUES(parental), " + + "parentId=VALUES(parentId), " + + "safetyWay=VALUES(safetyWay), " + + "registerWay=VALUES(registerWay), " + + "certNum=VALUES(certNum), " + + "certifiable=VALUES(certifiable), " + + "errCode=VALUES(errCode), " + + "secrecy=VALUES(secrecy), " + + "ipAddress=VALUES(ipAddress), " + + "port=VALUES(port), " + + "password=VALUES(password), " + + "PTZType=VALUES(PTZType), " + + "status=VALUES(status), " + + "streamId=VALUES(streamId), " + + "longitude=VALUES(longitude), " + + "latitude=VALUES(latitude), " + + "longitudeGcj02=VALUES(longitudeGcj02), " + + "latitudeGcj02=VALUES(latitudeGcj02), " + + "longitudeWgs84=VALUES(longitudeWgs84), " + + "latitudeWgs84=VALUES(latitudeWgs84), " + + "hasAudio=VALUES(hasAudio), " + + "businessGroupId=VALUES(businessGroupId), " + + "gpsTime=VALUES(gpsTime)" + + "</script>") + int batchAddOrUpdate(List<DeviceChannel> addChannels); + @Update(value = {"UPDATE device_channel SET status=1 WHERE deviceId=#{deviceId} AND channelId=#{channelId}"}) void online(String deviceId, String channelId); diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java index 206456d..cee613d 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java @@ -184,10 +184,10 @@ if (i + limitCount > channels.size()) { toIndex = channels.size(); } - result = result || deviceChannelMapper.batchAdd(channels.subList(i, toIndex)) < 0; + result = result || deviceChannelMapper.batchAddOrUpdate(channels.subList(i, toIndex)) < 0; } }else { - result = result || deviceChannelMapper.batchAdd(channels) < 0; + result = result || deviceChannelMapper.batchAddOrUpdate(channels) < 0; } } if (result) { @@ -285,10 +285,10 @@ if (i + limitCount > addChannels.size()) { toIndex = addChannels.size(); } - result = result || deviceChannelMapper.batchAdd(addChannels.subList(i, toIndex)) < 0; + result = result || deviceChannelMapper.batchAddOrUpdate(addChannels.subList(i, toIndex)) < 0; } }else { - result = result || deviceChannelMapper.batchAdd(addChannels) < 0; + result = result || deviceChannelMapper.batchAddOrUpdate(addChannels) < 0; } } if (updateChannels.size() > 0) { -- Gitblit v1.8.0