package com.xcong.excoin.rabbit.producer; import cn.hutool.core.util.IdUtil; import com.alibaba.fastjson.JSONObject; import com.xcong.excoin.configurations.RabbitMqConfig; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.AmqpException; import org.springframework.amqp.core.AmqpTemplate; import org.springframework.amqp.core.Message; import org.springframework.amqp.core.MessageDeliveryMode; import org.springframework.amqp.core.MessagePostProcessor; import org.springframework.amqp.rabbit.connection.CorrelationData; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Date; import java.util.HashMap; import java.util.Map; @Slf4j @Component public class OtcProducter implements RabbitTemplate.ConfirmCallback { @Autowired private RabbitTemplate rabbitTemplate; @Autowired private AmqpTemplate amqpTemplate; @Autowired public OtcProducter(RabbitTemplate rabbitTemplate) { this.rabbitTemplate = rabbitTemplate; rabbitTemplate.setConfirmCallback(this); } public void sendMarketBussinessMsg(Long entrustOrderId, Integer status) { log.info("发送市商消息"); CorrelationData correlationData = new CorrelationData(IdUtil.simpleUUID()); Map map = new HashMap<>(); map.put("entrustOrderId", entrustOrderId); map.put("status", status); String s = JSONObject.toJSONString(map); rabbitTemplate.convertAndSend(RabbitMqConfig.EXCHANGE_ONE, RabbitMqConfig.ROUTINGKEY_MARKET_BUSSINESS, s, correlationData); } // // public void sendDelayOrderMsg(String content) { // log.info("-----{}", new Date()); // CorrelationData correlationData = new CorrelationData(IdUtil.simpleUUID()); // rabbitTemplate.convertAndSend(RabbitMqConfig.EXCHANGE_DELAY, RabbitMqConfig.ROUTING_KEY_DELAY, content, message -> { // message.getMessageProperties().setExpiration(6000 + ""); // return message; // }); // } public void sendOrderReturn(String content) { log.info("发送返佣消息"); CorrelationData correlationData = new CorrelationData(IdUtil.simpleUUID()); rabbitTemplate.convertAndSend(RabbitMqConfig.EXCHANGE_ONE, RabbitMqConfig.ROUTING_ORDER_RETURN, content, correlationData); } @Override public void confirm(CorrelationData correlationData, boolean b, String s) { } }