old mode 100644
new mode 100755
|  |  |  | 
|---|
|  |  |  | 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.platformKeepaliveExpire.PlatformKeepaliveExpireEvent; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.gb28181.event.platformNotRegister.PlatformCycleRegisterEvent; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.gb28181.event.platformNotRegister.PlatformNotRegisterEvent; | 
|---|
|  |  |  | 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 platformGbId | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public void platformKeepaliveExpireEventPublish(String platformGbId){ | 
|---|
|  |  |  | PlatformKeepaliveExpireEvent platformKeepaliveExpireEvent = new PlatformKeepaliveExpireEvent(this); | 
|---|
|  |  |  | platformKeepaliveExpireEvent.setPlatformGbID(platformGbId); | 
|---|
|  |  |  | applicationEventPublisher.publishEvent(platformKeepaliveExpireEvent); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 平台未注册事件 | 
|---|
|  |  |  | * @param platformGbId | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public void platformNotRegisterEventPublish(String platformGbId){ | 
|---|
|  |  |  | PlatformNotRegisterEvent platformNotRegisterEvent = new PlatformNotRegisterEvent(this); | 
|---|
|  |  |  | platformNotRegisterEvent.setPlatformGbID(platformGbId); | 
|---|
|  |  |  | applicationEventPublisher.publishEvent(platformNotRegisterEvent); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 平台周期注册事件 | 
|---|
|  |  |  | * @param paltformGbId | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public void platformRegisterCycleEventPublish(String paltformGbId) { | 
|---|
|  |  |  | PlatformCycleRegisterEvent platformCycleRegisterEvent = new PlatformCycleRegisterEvent(this); | 
|---|
|  |  |  | platformCycleRegisterEvent.setPlatformGbID(paltformGbId); | 
|---|
|  |  |  | applicationEventPublisher.publishEvent(platformCycleRegisterEvent); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 设备报警事件 | 
|---|
|  |  |  | * @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.gb28181.event.subscribe.mobilePosition.MobilePositionEvent; | 
|---|
|  |  |  | 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 mobilePositionEventPublish(MobilePosition mobilePosition) { | 
|---|
|  |  |  | MobilePositionEvent event = new MobilePositionEvent(this); | 
|---|
|  |  |  | event.setMobilePosition(mobilePosition); | 
|---|
|  |  |  | applicationEventPublisher.publishEvent(event); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|