package com.pannk.service.impl;

import com.pannk.cons.Constant;
import com.pannk.entity.MessageEntity;
import com.pannk.service.SendMessageService;
import org.springframework.amqp.core.AmqpTemplate;
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.Service;
import org.springframework.util.StringUtils;

import java.util.Date;
import java.util.UUID;

/**
 * Created by wolf on 20-11-17.
 */
@Service
public class SendMessageServiceImpl implements SendMessageService {


    @Autowired
    private RabbitTemplate rabbitTemplate;

//    @Autowired
//    private AmqpTemplate amqpTemplate;


    @Override
    public void sendTopicMsg(String content) {
        if (!StringUtils.isEmpty(content)) {
            MessageEntity messageEntity = new MessageEntity();
            messageEntity.setId(UUID.randomUUID().toString());
            messageEntity.setCode(UUID.randomUUID().toString());
            messageEntity.setTitle("测试Topic队列");
            messageEntity.setContent(content);
            messageEntity.setSource("测试Topic队列数据");
            messageEntity.setTime(new Date());
            if (content.contains("order")) {
                rabbitTemplate.convertAndSend("topicExchange", Constant.TOPIC_ORDER, messageEntity);
            } else {
                rabbitTemplate.convertAndSend("topicExchange", Constant.TOPIC_CONSULT, messageEntity);
            }
        }
    }

    @Override
    public void sendFanoutMsg(String content) {
        MessageEntity messageEntity = new MessageEntity();
        messageEntity.setId(UUID.randomUUID().toString());
        messageEntity.setCode(UUID.randomUUID().toString());
        messageEntity.setTitle("测试Fanout队列");
        messageEntity.setContent(content);
        messageEntity.setSource("测试Fanout队列数据");
        messageEntity.setTime(new Date());
        rabbitTemplate.convertAndSend("fanoutExchange", null, messageEntity);

    }

    @Override
    public void sendDirectMsg(String content) {
        MessageEntity messageEntity = new MessageEntity();
        messageEntity.setId(UUID.randomUUID().toString());
        messageEntity.setCode(UUID.randomUUID().toString());
        messageEntity.setTitle("测试Direct队列");
        messageEntity.setContent(content);
        messageEntity.setSource("测试Direct队列数据");
        messageEntity.setTime(new Date());
        rabbitTemplate.convertAndSend(Constant.DIRECT_QUEUE, messageEntity);
    }
}
