jiang
2022-07-13 fc89b7b517e191fb6c9b66fa86dd05ebab0f54c5
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
@@ -472,6 +472,9 @@
    */
   @Override
   public synchronized boolean insertMobilePosition(MobilePosition mobilePosition) {
      if (mobilePosition.getDeviceId().equals(mobilePosition.getChannelId())) {
         mobilePosition.setChannelId(null);
      }
      return deviceMobilePositionMapper.insertNewPosition(mobilePosition) > 0;
   }
@@ -711,7 +714,6 @@
      streamProxyItem.setStatus(true);
      String now = DateUtil.getNow();
      streamProxyItem.setCreateTime(now);
      streamProxyItem.setCreateStamp(System.currentTimeMillis());
      try {
         if (streamProxyMapper.add(streamProxyItem) > 0) {
            if (!StringUtils.isEmpty(streamProxyItem.getGbId())) {
@@ -846,7 +848,7 @@
      streamPushMapper.addAll(streamPushItems);
      // TODO 待优化
      for (int i = 0; i < streamPushItems.size(); i++) {
         int onlineResult = gbStreamMapper.setStatus(streamPushItems.get(i).getApp(), streamPushItems.get(i).getStream(), true);
         int onlineResult = mediaOnline(streamPushItems.get(i).getApp(), streamPushItems.get(i).getStream());
         if (onlineResult > 0) {
            // 发送上线通知
            eventPublisher.catalogEventPublishForStream(null, streamPushItems.get(i), CatalogEvent.ON);
@@ -854,11 +856,13 @@
      }
   }
   @Override
   public void updateMedia(StreamPushItem streamPushItem) {
      streamPushMapper.del(streamPushItem.getApp(), streamPushItem.getStream());
      streamPushMapper.add(streamPushItem);
      gbStreamMapper.setStatus(streamPushItem.getApp(), streamPushItem.getStream(), true);
      mediaOffline(streamPushItem.getApp(), streamPushItem.getStream());
      if(!StringUtils.isEmpty(streamPushItem.getGbId() )){
         // 查找开启了全部直播流共享的上级平台
@@ -895,8 +899,26 @@
   }
   @Override
   public int mediaOutline(String app, String streamId) {
      return gbStreamMapper.setStatus(app, streamId, false);
   public int mediaOffline(String app, String stream) {
      GbStream gbStream = gbStreamMapper.selectOne(app, stream);
      int result;
      if ("proxy".equals(gbStream.getStreamType())) {
         result = streamProxyMapper.updateStatus(app, stream, false);
      }else {
         result = streamPushMapper.updateStatus(app, stream, false);
      }
      return result;
   }
   public int mediaOnline(String app, String stream) {
      GbStream gbStream = gbStreamMapper.selectOne(app, stream);
      int result;
      if ("proxy".equals(gbStream.getStreamType())) {
         result = streamProxyMapper.updateStatus(app, stream, true);
      }else {
         result = streamPushMapper.updateStatus(app, stream, true);
      }
      return result;
   }
   @Override
@@ -1006,7 +1028,7 @@
   @Override
   public int setDefaultCatalog(String platformId, String catalogId) {
      return platformMapper.setDefaultCatalog(platformId, catalogId);
      return platformMapper.setDefaultCatalog(platformId, catalogId, DateUtil.getNow());
   }
   @Override
@@ -1119,7 +1141,14 @@
   }
   @Override
   public void updateChannelPotion(String deviceId, String channelId, double longitude, double latitude) {
      deviceChannelMapper.updatePotion(deviceId, channelId, longitude, latitude);
   public void updateChannelPosition(DeviceChannel deviceChannel) {
      if (deviceChannel.getChannelId().equals(deviceChannel.getDeviceId())) {
         deviceChannel.setChannelId(null);
      }
      if (deviceChannel.getGpsTime() == null) {
         deviceChannel.setGpsTime(DateUtil.getNow());
      }
      deviceChannelMapper.updatePosition(deviceChannel);
   }
}