648540858
2023-09-11 88350873ee7632924cb135a450fef9f4d05c5306
src/main/java/com/genersoft/iot/vmp/gb28181/event/EventPublisher.java
old mode 100644 new mode 100755
@@ -1,118 +1,118 @@
package com.genersoft.iot.vmp.gb28181.event;
import com.genersoft.iot.vmp.gb28181.bean.*;
import com.genersoft.iot.vmp.gb28181.event.device.RequestTimeoutEvent;
import com.genersoft.iot.vmp.gb28181.event.record.RecordEndEvent;
import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent;
import com.genersoft.iot.vmp.media.zlm.event.ZLMOfflineEvent;
import com.genersoft.iot.vmp.media.zlm.event.ZLMOnlineEvent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component;
import com.genersoft.iot.vmp.gb28181.event.alarm.AlarmEvent;
import javax.sip.TimeoutEvent;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
 * @description:Event事件通知推送器,支持推送在线事件、离线事件
 * @author: swwheihei
 * @date:   2020年5月6日 上午11:30:50
 */
@Component
public class EventPublisher {
   @Autowired
    private ApplicationEventPublisher applicationEventPublisher;
   /**
    * 设备报警事件
    * @param deviceAlarm
    */
   public void deviceAlarmEventPublish(DeviceAlarm deviceAlarm) {
      AlarmEvent alarmEvent = new AlarmEvent(this);
      alarmEvent.setAlarmInfo(deviceAlarm);
      applicationEventPublisher.publishEvent(alarmEvent);
   }
   public void zlmOfflineEventPublish(String mediaServerId){
      ZLMOfflineEvent outEvent = new ZLMOfflineEvent(this);
      outEvent.setMediaServerId(mediaServerId);
      applicationEventPublisher.publishEvent(outEvent);
   }
   public void zlmOnlineEventPublish(String mediaServerId) {
      ZLMOnlineEvent outEvent = new ZLMOnlineEvent(this);
      outEvent.setMediaServerId(mediaServerId);
      applicationEventPublisher.publishEvent(outEvent);
   }
   public void catalogEventPublish(String platformId, DeviceChannel deviceChannel, String type) {
      List<DeviceChannel> deviceChannelList = new ArrayList<>();
      deviceChannelList.add(deviceChannel);
      catalogEventPublish(platformId, deviceChannelList, type);
   }
   public void requestTimeOut(TimeoutEvent timeoutEvent) {
      RequestTimeoutEvent requestTimeoutEvent = new RequestTimeoutEvent(this);
      requestTimeoutEvent.setTimeoutEvent(timeoutEvent);
      applicationEventPublisher.publishEvent(requestTimeoutEvent);
   }
   /**
    *
    * @param platformId
    * @param deviceChannels
    * @param type
    */
   public void catalogEventPublish(String platformId, List<DeviceChannel> deviceChannels, String type) {
      CatalogEvent outEvent = new CatalogEvent(this);
      List<DeviceChannel> channels = new ArrayList<>();
      if (deviceChannels.size() > 1) {
         // 数据去重
         Set<String> gbIdSet = new HashSet<>();
         for (DeviceChannel deviceChannel : deviceChannels) {
            if (!gbIdSet.contains(deviceChannel.getChannelId())) {
               gbIdSet.add(deviceChannel.getChannelId());
               channels.add(deviceChannel);
            }
         }
      }else {
         channels = deviceChannels;
      }
      outEvent.setDeviceChannels(channels);
      outEvent.setType(type);
      outEvent.setPlatformId(platformId);
      applicationEventPublisher.publishEvent(outEvent);
   }
   public void catalogEventPublishForStream(String platformId, List<GbStream> gbStreams, String type) {
      CatalogEvent outEvent = new CatalogEvent(this);
      outEvent.setGbStreams(gbStreams);
      outEvent.setType(type);
      outEvent.setPlatformId(platformId);
      applicationEventPublisher.publishEvent(outEvent);
   }
   public void catalogEventPublishForStream(String platformId, GbStream gbStream, String type) {
      List<GbStream> gbStreamList = new ArrayList<>();
      gbStreamList.add(gbStream);
      catalogEventPublishForStream(platformId, gbStreamList, type);
   }
   public void recordEndEventPush(RecordInfo recordInfo) {
      RecordEndEvent outEvent = new RecordEndEvent(this);
      outEvent.setRecordInfo(recordInfo);
      applicationEventPublisher.publishEvent(outEvent);
   }
}
package com.genersoft.iot.vmp.gb28181.event;
import com.genersoft.iot.vmp.gb28181.bean.*;
import com.genersoft.iot.vmp.gb28181.event.device.RequestTimeoutEvent;
import com.genersoft.iot.vmp.gb28181.event.record.RecordEndEvent;
import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent;
import com.genersoft.iot.vmp.media.zlm.event.ZLMOfflineEvent;
import com.genersoft.iot.vmp.media.zlm.event.ZLMOnlineEvent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component;
import com.genersoft.iot.vmp.gb28181.event.alarm.AlarmEvent;
import javax.sip.TimeoutEvent;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
 * @description:Event事件通知推送器,支持推送在线事件、离线事件
 * @author: swwheihei
 * @date:   2020年5月6日 上午11:30:50
 */
@Component
public class EventPublisher {
   @Autowired
    private ApplicationEventPublisher applicationEventPublisher;
   /**
    * 设备报警事件
    * @param deviceAlarm
    */
   public void deviceAlarmEventPublish(DeviceAlarm deviceAlarm) {
      AlarmEvent alarmEvent = new AlarmEvent(this);
      alarmEvent.setAlarmInfo(deviceAlarm);
      applicationEventPublisher.publishEvent(alarmEvent);
   }
   public void zlmOfflineEventPublish(String mediaServerId){
      ZLMOfflineEvent outEvent = new ZLMOfflineEvent(this);
      outEvent.setMediaServerId(mediaServerId);
      applicationEventPublisher.publishEvent(outEvent);
   }
   public void zlmOnlineEventPublish(String mediaServerId) {
      ZLMOnlineEvent outEvent = new ZLMOnlineEvent(this);
      outEvent.setMediaServerId(mediaServerId);
      applicationEventPublisher.publishEvent(outEvent);
   }
   public void catalogEventPublish(String platformId, DeviceChannel deviceChannel, String type) {
      List<DeviceChannel> deviceChannelList = new ArrayList<>();
      deviceChannelList.add(deviceChannel);
      catalogEventPublish(platformId, deviceChannelList, type);
   }
   public void requestTimeOut(TimeoutEvent timeoutEvent) {
      RequestTimeoutEvent requestTimeoutEvent = new RequestTimeoutEvent(this);
      requestTimeoutEvent.setTimeoutEvent(timeoutEvent);
      applicationEventPublisher.publishEvent(requestTimeoutEvent);
   }
   /**
    *
    * @param platformId
    * @param deviceChannels
    * @param type
    */
   public void catalogEventPublish(String platformId, List<DeviceChannel> deviceChannels, String type) {
      CatalogEvent outEvent = new CatalogEvent(this);
      List<DeviceChannel> channels = new ArrayList<>();
      if (deviceChannels.size() > 1) {
         // 数据去重
         Set<String> gbIdSet = new HashSet<>();
         for (DeviceChannel deviceChannel : deviceChannels) {
            if (!gbIdSet.contains(deviceChannel.getChannelId())) {
               gbIdSet.add(deviceChannel.getChannelId());
               channels.add(deviceChannel);
            }
         }
      }else {
         channels = deviceChannels;
      }
      outEvent.setDeviceChannels(channels);
      outEvent.setType(type);
      outEvent.setPlatformId(platformId);
      applicationEventPublisher.publishEvent(outEvent);
   }
   public void catalogEventPublishForStream(String platformId, List<GbStream> gbStreams, String type) {
      CatalogEvent outEvent = new CatalogEvent(this);
      outEvent.setGbStreams(gbStreams);
      outEvent.setType(type);
      outEvent.setPlatformId(platformId);
      applicationEventPublisher.publishEvent(outEvent);
   }
   public void catalogEventPublishForStream(String platformId, GbStream gbStream, String type) {
      List<GbStream> gbStreamList = new ArrayList<>();
      gbStreamList.add(gbStream);
      catalogEventPublishForStream(platformId, gbStreamList, type);
   }
   public void recordEndEventPush(RecordInfo recordInfo) {
      RecordEndEvent outEvent = new RecordEndEvent(this);
      outEvent.setRecordInfo(recordInfo);
      applicationEventPublisher.publishEvent(outEvent);
   }
}