panlinlin
2021-04-15 937e59143004b11a808eb93eb894ffe53871a19a
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
@@ -40,7 +40,7 @@
import com.genersoft.iot.vmp.utils.GpsUtil;
import com.genersoft.iot.vmp.utils.SpringBeanFactory;
import com.genersoft.iot.vmp.utils.redis.RedisUtil;
import com.genersoft.iot.vmp.vmanager.platform.bean.ChannelReduce;
import com.genersoft.iot.vmp.vmanager.gb28181.platform.bean.ChannelReduce;
import gov.nist.javax.sip.SipStackImpl;
import gov.nist.javax.sip.address.AddressImpl;
@@ -238,7 +238,7 @@
               // 回复200 OK
               responseAck(evt);
               String sn = rootElement.element("SN").getText();
               ParentPlatform parentPlatform = storager.queryParentPlatById(platformId);
               ParentPlatform parentPlatform = storager.queryParentPlatByServerGBId(platformId);
               cmderFroPlatform.deviceStatusResponse(parentPlatform, sn, fromHeader.getTag());
            }
         } else {
@@ -303,7 +303,7 @@
               if (deviceId.equals(targetGBId)) {
                  // 远程启动本平台:需要在重新启动程序后先对SipStack解绑
                  logger.info("执行远程启动本平台命令");
                  ParentPlatform parentPlatform = storager.queryParentPlatById(platformId);
                  ParentPlatform parentPlatform = storager.queryParentPlatByServerGBId(platformId);
                  cmderFroPlatform.unregister(parentPlatform, null, null);
   
                  Thread restartThread = new Thread(new Runnable() {
@@ -463,7 +463,7 @@
               // 回复200 OK
               responseAck(evt);
               String sn = rootElement.element("SN").getText();
               ParentPlatform parentPlatform = storager.queryParentPlatById(platformId);
               ParentPlatform parentPlatform = storager.queryParentPlatByServerGBId(platformId);
               cmderFroPlatform.deviceInfoResponse(parentPlatform, sn, fromHeader.getTag());
            }
         } else {
@@ -517,7 +517,7 @@
         // if (deviceListElement == null) { // 存在DeviceList则为响应 catalog, 不存在DeviceList则为查询请求
         if (name.equalsIgnoreCase("Query")) { // 区分是Response——查询响应,还是Query——查询请求
            // TODO 后续将代码拆分
            ParentPlatform parentPlatform = storager.queryParentPlatById(platformId);
            ParentPlatform parentPlatform = storager.queryParentPlatByServerGBId(platformId);
            if (parentPlatform == null) {
               response404Ack(evt);
               return;
@@ -529,13 +529,44 @@
               String sn = snElement.getText();
               // 准备回复通道信息
               List<ChannelReduce> channelReduces = storager.queryChannelListInParentPlatform(parentPlatform.getServerGBId());
               // 查询关联的直播通道
               List<GbStream> gbStreams = storager.queryGbStreamListInPlatform(parentPlatform.getServerGBId());
               int size = channelReduces.size() + gbStreams.size();
               // 回复级联的通道
               if (channelReduces.size() > 0) {
                  for (ChannelReduce channelReduce : channelReduces) {
                     DeviceChannel deviceChannel = storager.queryChannel(channelReduce.getDeviceId(), channelReduce.getChannelId());
                     cmderFroPlatform.catalogQuery(deviceChannel, parentPlatform, sn, fromHeader.getTag(), channelReduces.size());
                     cmderFroPlatform.catalogQuery(deviceChannel, parentPlatform, sn, fromHeader.getTag(), size);
                  }
               }
               // 回复直播的通道
               if (gbStreams.size() > 0) {
                  for (GbStream gbStream : gbStreams) {
                     DeviceChannel deviceChannel = new DeviceChannel();
                     deviceChannel.setChannelId(gbStream.getGbId());
                     deviceChannel.setName(gbStream.getName());
                     deviceChannel.setLongitude(gbStream.getLongitude());
                     deviceChannel.setLatitude(gbStream.getLatitude());
                     deviceChannel.setDeviceId(parentPlatform.getDeviceGBId());
                     deviceChannel.setManufacture("wvp-pro");
                     deviceChannel.setStatus(gbStream.isStatus()?1:0);
//                     deviceChannel.setParentId(parentPlatform.getDeviceGBId());
                     deviceChannel.setRegisterWay(1);
                     deviceChannel.setCivilCode(cmder.getSipConfig().getSipDomain());
                     deviceChannel.setModel("live");
                     deviceChannel.setOwner("wvp-pro");
//                     deviceChannel.setAddress("test");
                     deviceChannel.setParental(0);
                     deviceChannel.setSecrecy("0");
                     deviceChannel.setSecrecy("0");
                     cmderFroPlatform.catalogQuery(deviceChannel, parentPlatform, sn, fromHeader.getTag(), size);
                  }
               }
               if (size == 0) {
                  // 回复无通道
                  cmderFroPlatform.catalogQuery(null, parentPlatform, sn, fromHeader.getTag(), size);
               }
            }