package com.glxp.api.service.trace; import cn.hutool.core.lang.UUID; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.config.rabbit.TopicRabbitConfig; import com.glxp.api.entity.trace.MqTaskDelayMessage; import com.glxp.api.entity.trace.MqTraceMessage; import com.glxp.api.util.DateUtil; import com.glxp.api.util.JsonUtils; import lombok.RequiredArgsConstructor; import org.springframework.amqp.core.MessageProperties; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Service; import org.springframework.web.bind.annotation.GetMapping; import javax.annotation.Resource; import java.util.Date; import java.util.HashMap; import java.util.Map; @Service @RequiredArgsConstructor public class RabbitPushService { @Resource private final RabbitTemplate rabbitTemplate; public BaseResponse send(MqTraceMessage mqTraceMessage) { rabbitTemplate.convertAndSend(TopicRabbitConfig.TRACE_TOPIC_EXCHANGE, TopicRabbitConfig.trace, JsonUtils.toJsonString(mqTraceMessage)); return ResultVOUtils.success("发送成功"); } public BaseResponse sendDeleyTask(MqTaskDelayMessage mqTaskDelayMessage, Integer delayTime) { rabbitTemplate.convertAndSend(TopicRabbitConfig.TRACE_DELAY_EXCHANGE, TopicRabbitConfig.delaytrace, mqTaskDelayMessage, message -> { MessageProperties messageProperties = message.getMessageProperties(); messageProperties.setDelay(delayTime * 60); return message; }); return ResultVOUtils.success("发送成功"); } public BaseResponse sendCommon(String key) { String messageId = String.valueOf(UUID.randomUUID()); Map messageMap = new HashMap<>(); messageMap.put("messageId", messageId); messageMap.put("messageData", key); messageMap.put("createTime", DateUtil.formatDate(new Date())); rabbitTemplate.convertAndSend(TopicRabbitConfig.TRACE_TOPIC_EXCHANGE, TopicRabbitConfig.common, messageMap); return ResultVOUtils.success("发送成功"); } }