package com.fzm.mall.server.front.mq;

import com.fzm.mall.server.front.enums.QueueTTLTypeEnum;
import com.fzm.mall.server.front.enums.QueueTypeEnum;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Slf4j
@Component
public class MsgProducer {
 
    @Autowired
    private RabbitTemplate rabbitTemplate;
    
    /**
         * 直接发送消费消息
     * @description
     * @param msg
     * @param msgType
     *
     * @author lgang
     * @create 2018年12月17日 下午3:52:24
     */
    public void send(String msg, QueueTypeEnum msgType) {
        rabbitTemplate.convertAndSend(msgType.getExchange(), msgType.getQueueKey(),msg);
    }
    
    /**
         * 发送延迟消息
     * @description
     * @param msg
     * @param msgType
     * @param delayTimes
     *
     * @author lgang
     * @create 2018年12月17日 下午3:52:35
     */
    public void sendTTL(String msg, QueueTTLTypeEnum msgType, long delayTimes) {
        rabbitTemplate.convertAndSend(msgType.getExchange(), msgType.getQueueKey(),msg,message -> {
            message.getMessageProperties().setExpiration(String.valueOf(delayTimes));
            return message;
        });
    }

   
}
