diff --git a/src/main/java/com/parseSystem/event/EventHandlerService.java b/src/main/java/com/parseSystem/event/EventHandlerService.java index b70e3d2..4c81b59 100644 --- a/src/main/java/com/parseSystem/event/EventHandlerService.java +++ b/src/main/java/com/parseSystem/event/EventHandlerService.java @@ -1,25 +1,20 @@ package com.parseSystem.event; -import com.alibaba.fastjson.JSONObject; import com.dragon.common.redis.service.RedisService; import com.parseSystem.utils.SpringUtils; import com.parseSystem.vehicle.VehicleData; import lombok.extern.log4j.Log4j2; -import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; -import javax.annotation.PostConstruct; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; /** + * 事件处理接口 * - *事件处理接口 * @author 冯凯 * @version 1.0 * @description: @@ -29,41 +24,39 @@ import java.util.concurrent.ConcurrentHashMap; @Log4j2 public class EventHandlerService { + /** + * 事件处理map + */ + public static final Map> eventMap = new ConcurrentHashMap<>(); @Autowired private RedisService redisService; - /** - * 事件处理map - */ - public static final Map> eventMap=new ConcurrentHashMap<>(); - - - - - /** * 注册事件 + * * @param vin * @param eventServiceName */ - public void registerEvent(String vin,String eventServiceName){ + public void registerEvent(String vin, String eventServiceName) { getEventList(vin).add(eventServiceName); } /** * 移除事件 + * * @param vin * @param eventServiceName */ - public void removeEvent(String vin,String eventServiceName){ + public void removeEvent(String vin, String eventServiceName) { getEventList(vin).remove(eventServiceName); } /** * 执行事件 + * * @param vehicleData */ - public void executeEvent(VehicleData vehicleData){ + public void executeEvent(VehicleData vehicleData) { List eventList = getEventList(vehicleData.getVin()); eventList.forEach(eventServiceName -> { VehicleEventService vehicleEventService = SpringUtils.getBean(eventServiceName); @@ -73,16 +66,17 @@ public class EventHandlerService { /** * 获取事件列表 + * * @param vin * @return */ - public List getEventList(String vin){ + public List getEventList(String vin) { List cacheList = redisService.getCacheList("event_VIN123456789"); - eventMap.put(vin,cacheList); + eventMap.put(vin, cacheList); List eventList = eventMap.get(vin); - if (eventList==null){ + if (eventList == null) { ArrayList list = new ArrayList<>(); - eventMap.put(vin,list); + eventMap.put(vin, list); } return eventList; } diff --git a/src/main/java/com/parseSystem/event/impl/RuntimeTraceEvent.java b/src/main/java/com/parseSystem/event/impl/RuntimeTraceEvent.java index 67aaa9b..dec0be0 100644 --- a/src/main/java/com/parseSystem/event/impl/RuntimeTraceEvent.java +++ b/src/main/java/com/parseSystem/event/impl/RuntimeTraceEvent.java @@ -1,10 +1,20 @@ package com.parseSystem.event.impl; +import com.alibaba.fastjson2.JSONObject; +import com.dragon.common.redis.service.RedisService; import com.parseSystem.event.EventHandlerService; import com.parseSystem.event.VehicleEventService; import com.parseSystem.vehicle.VehicleData; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import javax.xml.crypto.Data; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.concurrent.TimeUnit; + /** * * 实时轨迹 @@ -15,6 +25,8 @@ import org.springframework.stereotype.Service; */ @Service("runtimeTraceEvent") public class RuntimeTraceEvent extends EventHandlerService implements VehicleEventService { + @Autowired + private RedisService redisService; /** * 实时轨迹事件执行逻辑 @@ -22,6 +34,6 @@ public class RuntimeTraceEvent extends EventHandlerService implements VehicleEve */ @Override public void executeEvent(VehicleData vehicleData) { - System.out.println("你好实时轨迹"); + redisService.setCacheObject("runtimeTraceEvent_"+vehicleData.getVin(),vehicleData); } }