71 lines
2.4 KiB
Java
71 lines
2.4 KiB
Java
package com.car.consumer;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.car.config.InitConnectWeight;
|
|
import com.car.config.RabbitmqConfig;
|
|
import com.car.controller.ConnectController;
|
|
import com.car.demos.car.Car;
|
|
import com.car.service.ConnectService;
|
|
import lombok.Data;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.amqp.core.Message;
|
|
import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.boot.DefaultApplicationArguments;
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import java.nio.channels.Channel;
|
|
import java.util.Date;
|
|
|
|
/**
|
|
* 创建连接消费者 ConnectHandler
|
|
*
|
|
* @author Yangle
|
|
* Date 2024/6/3 19:33
|
|
*/
|
|
@Component
|
|
@Slf4j
|
|
public class ConnectHandler {
|
|
@Autowired
|
|
private ConnectController connectController;
|
|
@Autowired
|
|
private InitConnectWeight initConnectWeight;
|
|
@RabbitListener(queues = {RabbitmqConfig.QUEUE_INFORM_EMAIL})
|
|
public void receive_email(Object msg, Message message, Channel channel){
|
|
System.out.println("QUEUE_INFORM_EMAIL msg"+msg);
|
|
}
|
|
//监听sms队列
|
|
@RabbitListener(queues = "connect")
|
|
public void receiveSms(Message message) {
|
|
try {
|
|
// 假设消息体是UTF-8编码的字符串
|
|
String jsonString = new String(message.getBody(), "UTF-8");
|
|
log.info("接收到的车辆信息: {}", jsonString);
|
|
|
|
// 解析JSON字符串
|
|
JSONObject jsonObject = JSONObject.parseObject(jsonString);
|
|
log.info("jsonObject: {}", jsonObject);
|
|
// 提取timestamp的值
|
|
long timestamp = jsonObject.getLong("timestamp");
|
|
log.info("提取到的timestamp值: {}", timestamp);
|
|
|
|
log.info("车辆信息",message.getBody());
|
|
String ip = jsonObject.getString("clientIp");
|
|
String vin = jsonObject.getString("clientId");
|
|
Car build = Car.builder()
|
|
.vin(vin.split("-")[0])
|
|
.timestamp(new Date(timestamp))
|
|
.ip(ip)
|
|
.build();
|
|
connectController.carAdd(build);
|
|
|
|
|
|
} catch (Exception e) {
|
|
throw new RuntimeException(e);
|
|
}
|
|
log.info("消费者得到的消息: {}" , new String(message.getBody()));
|
|
}
|
|
}
|