| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- package com.genersoft.iot.vmp.gb28181.event;
- import com.genersoft.iot.vmp.gb28181.bean.*;
- import com.genersoft.iot.vmp.gb28181.event.alarm.AlarmEvent;
- 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.gb28181.event.subscribe.mobilePosition.MobilePositionEvent;
- import com.genersoft.iot.vmp.media.event.mediaServer.MediaServerOfflineEvent;
- import com.genersoft.iot.vmp.media.event.mediaServer.MediaServerOnlineEvent;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.ApplicationEventPublisher;
- import org.springframework.stereotype.Component;
- 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 mediaServerOfflineEventPublish(String mediaServerId){
- MediaServerOfflineEvent outEvent = new MediaServerOfflineEvent(this);
- outEvent.setMediaServerId(mediaServerId);
- applicationEventPublisher.publishEvent(outEvent);
- }
- public void mediaServerOnlineEventPublish(String mediaServerId) {
- MediaServerOnlineEvent outEvent = new MediaServerOnlineEvent(this);
- outEvent.setMediaServerId(mediaServerId);
- applicationEventPublisher.publishEvent(outEvent);
- }
- public void catalogEventPublish(Integer platformId, CommonGBChannel deviceChannel, String type) {
- List<CommonGBChannel> 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(Integer platformId, List<CommonGBChannel> deviceChannels, String type) {
- CatalogEvent outEvent = new CatalogEvent(this);
- List<CommonGBChannel> channels = new ArrayList<>();
- if (deviceChannels.size() > 1) {
- // 数据去重
- Set<String> gbIdSet = new HashSet<>();
- for (CommonGBChannel deviceChannel : deviceChannels) {
- if (deviceChannel != null && deviceChannel.getGbDeviceId() != null && !gbIdSet.contains(deviceChannel.getGbDeviceId())) {
- gbIdSet.add(deviceChannel.getGbDeviceId());
- channels.add(deviceChannel);
- }
- }
- }else {
- channels = deviceChannels;
- }
- outEvent.setChannels(channels);
- outEvent.setType(type);
- outEvent.setPlatformId(platformId);
- applicationEventPublisher.publishEvent(outEvent);
- }
- public void mobilePositionEventPublish(MobilePosition mobilePosition) {
- MobilePositionEvent event = new MobilePositionEvent(this);
- event.setMobilePosition(mobilePosition);
- applicationEventPublisher.publishEvent(event);
- }
- public void recordEndEventPush(RecordInfo recordInfo) {
- RecordEndEvent outEvent = new RecordEndEvent(this);
- outEvent.setRecordInfo(recordInfo);
- applicationEventPublisher.publishEvent(outEvent);
- }
- }
|