zn-car/src/main/java/com/car/consumer/ConnectHandler.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()));
}
}