64850858
2021-06-07 df11956c3c203434d3ef54955a502c466f1382dd
src/main/java/com/genersoft/iot/vmp/gb28181/event/EventPublisher.java
@@ -1,15 +1,20 @@
package com.genersoft.iot.vmp.gb28181.event;
import com.genersoft.iot.vmp.gb28181.bean.Device;
import com.genersoft.iot.vmp.gb28181.event.platformKeepaliveExpire.PlatformKeepaliveExpireEvent;
import com.genersoft.iot.vmp.gb28181.event.platformNotRegister.PlatformNotRegisterEvent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component;
import com.genersoft.iot.vmp.gb28181.bean.DeviceAlarm;
import com.genersoft.iot.vmp.gb28181.event.alarm.AlarmEvent;
import com.genersoft.iot.vmp.gb28181.event.offline.OfflineEvent;
import com.genersoft.iot.vmp.gb28181.event.online.OnlineEvent;
import com.genersoft.iot.vmp.gb28181.event.outline.OutlineEvent;
/**    
 * @Description:Event事件通知推送器,支持推送在线事件、离线事件
 * @author: songww
 * @author: swwheihei
 * @date:   2020年5月6日 上午11:30:50     
 */
@Component
@@ -18,17 +23,48 @@
   @Autowired
    private ApplicationEventPublisher applicationEventPublisher;
   
   public void onlineEventPublish(String deviceId, String from) {
   public void onlineEventPublish(Device device, String from) {
      OnlineEvent onEvent = new OnlineEvent(this);
      onEvent.setDeviceId(deviceId);
      onEvent.setDevice(device);
      onEvent.setFrom(from);
        applicationEventPublisher.publishEvent(onEvent);
    }
   
   public void outlineEventPublish(String deviceId, String from){
      OutlineEvent outEvent = new OutlineEvent(this);
      OfflineEvent outEvent = new OfflineEvent(this);
      outEvent.setDeviceId(deviceId);
      outEvent.setFrom(from);
        applicationEventPublisher.publishEvent(outEvent);
    }
   /**
    * 平台心跳到期事件
    * @param platformGbId
    */
   public void platformKeepaliveExpireEventPublish(String platformGbId){
      PlatformKeepaliveExpireEvent platformNotRegisterEvent = new PlatformKeepaliveExpireEvent(this);
      platformNotRegisterEvent.setPlatformGbID(platformGbId);
        applicationEventPublisher.publishEvent(platformNotRegisterEvent);
    }
   /**
    * 平台未注册事件
    * @param platformGbId
    */
   public void platformNotRegisterEventPublish(String platformGbId){
      PlatformNotRegisterEvent platformNotRegisterEvent = new PlatformNotRegisterEvent(this);
      platformNotRegisterEvent.setPlatformGbID(platformGbId);
        applicationEventPublisher.publishEvent(platformNotRegisterEvent);
   }
   /**
    * 设备报警事件
    * @param deviceAlarm
    */
   public void deviceAlarmEventPublish(DeviceAlarm deviceAlarm) {
      AlarmEvent alarmEvent = new AlarmEvent(this);
      alarmEvent.setAlarmInfo(deviceAlarm);
      applicationEventPublisher.publishEvent(alarmEvent);
   }
}