package demo.mq;

import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.messaging.Message;
import org.springframework.messaging.support.MessageBuilder;

public class DutyImNoticeProducer {
  private RocketMQTemplate rocketMQTemplate;
  public static final String MQ_TOPIC = "duty-im-notice-topic";

  public void addMq(DutyImNotice message, long timestamp) {
    String uniqueKey = message.getTenantId() + "_" + message.getId();
    Message<DutyImNotice> mqMessage = MessageBuilder.withPayload(message)
        .setHeader("KEYS", uniqueKey)
        .setHeader("executeTime", timestamp)
        .build();
    rocketMQTemplate.asyncSend(MQ_TOPIC, mqMessage);
  }

  public void convertSend(DutyImNotice message) {
    rocketMQTemplate.convertAndSend(MQ_TOPIC, message);
  }

  public void sendJson(DutyImNotice message) {
    String body = JSON.toJSONString(message);
    rocketMQTemplate.syncSend(MQ_TOPIC, body);
  }
}
