| package com.genersoft.iot.vmp.gb28181.event;  | 
|   | 
| 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;  | 
|   | 
| /**      | 
|  * @Description:Event事件通知推送器,支持推送在线事件、离线事件  | 
|  * @author: swwheihei  | 
|  * @date:   2020年5月6日 上午11:30:50       | 
|  */  | 
| @Component  | 
| public class EventPublisher {  | 
|   | 
|     @Autowired  | 
|     private ApplicationEventPublisher applicationEventPublisher;  | 
|       | 
|     public void onlineEventPublish(String deviceId, String from) {  | 
|         OnlineEvent onEvent = new OnlineEvent(this);  | 
|         onEvent.setDeviceId(deviceId);  | 
|         onEvent.setFrom(from);  | 
|         applicationEventPublisher.publishEvent(onEvent);  | 
|     }  | 
|       | 
|     public void outlineEventPublish(String deviceId, String from){  | 
|         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);  | 
|     }  | 
|       | 
| }  |