实时轨迹事件编写

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; package com.god.data.service.impl;
import com.alibaba.fastjson.JSON;
import com.god.common.redis.service.RedisService; import com.god.common.redis.service.RedisService;
import com.god.data.common.domain.CarMessage; import com.god.data.common.domain.CarMessage;
import com.god.data.service.EventService; import com.god.data.service.EventService;
import lombok.extern.log4j.Log4j2;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/** /**
* *
* @Author fst * @Author fst
* @date 2023/11/27 21:47 * @date 2023/11/27 21:47
*/ */
@Log4j2
@Service(value = "RealTimeTrajectory") @Service(value = "RealTimeTrajectory")
public class RealTimeTrajectoryEvent implements EventService { public class RealTimeTrajectoryEvent implements EventService {
@ -25,16 +31,46 @@ public class RealTimeTrajectoryEvent implements EventService {
@Autowired @Autowired
private RabbitTemplate rabbitTemplate; private RabbitTemplate rabbitTemplate;
public static final String LOCUS = "locus";
/**
*
*/
@Override @Override
public void insert() { public void insert() {
} }
/**
*
* @param carMessage
*/
@Override @Override
public void execute(CarMessage carMessage) { 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 @Override
public void remove(String event) { public void remove(String event) {