实时轨迹事件编写

master
one 2023-11-30 20:46:58 +08:00
parent 3a9f1a7ef1
commit 88cef461db
1 changed files with 37 additions and 1 deletions

View File

@ -1,18 +1,24 @@
package com.god.data.service.impl;
import com.alibaba.fastjson.JSON;
import com.god.common.redis.service.RedisService;
import com.god.data.common.domain.CarMessage;
import com.god.data.service.EventService;
import lombok.extern.log4j.Log4j2;
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 java.util.ArrayList;
import java.util.List;
/**
*
* @Author fst
* @date 2023/11/27 21:47
*/
@Log4j2
@Service(value = "RealTimeTrajectory")
public class RealTimeTrajectoryEvent implements EventService {
@ -25,16 +31,46 @@ public class RealTimeTrajectoryEvent implements EventService {
@Autowired
private RabbitTemplate rabbitTemplate;
public static final String LOCUS = "locus";
/**
*
*/
@Override
public void insert() {
}
/**
*
* @param carMessage
*/
@Override
public void execute(CarMessage carMessage) {
System.out.println("冯凯牛魔王");
log.info("车辆:{} 触发实时轨迹,经度:{},纬度:{}",
carMessage.getVin(),
carMessage.getLongitude(),
carMessage.getLatitude()
);
//判断是否有key 有则更新数据
if (redisService.hasKey(LOCUS + carMessage.getVin())){
//获取所有车辆数据
List<Object> cacheList = redisService.getCacheList(carMessage.getVin());
//添加车辆信息
cacheList.add(carMessage);
//redis更新
redisService.setCacheList(LOCUS + carMessage.getVin(), cacheList);;
}else {//没有创建对应缓存
ArrayList<CarMessage> carMessages = new ArrayList<>();
carMessages.add(carMessage);
redisService.setCacheList(LOCUS + carMessage.getVin(),carMessages);
}
//rabbit进行通知开启实时轨迹
}
/**
*
* @param event
*/
@Override
public void remove(String event) {