com.vcredit.lrh.message.service.base.client.MessageSerivceClient.java Source code

Java tutorial

Introduction

Here is the source code for com.vcredit.lrh.message.service.base.client.MessageSerivceClient.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.vcredit.lrh.message.service.base.client;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.vcredit.lrh.commons.client.AbstractClient;
import com.vcredit.lrh.commons.constants.MessageType;
import com.vcredit.lrh.commons.constants.ScheduleTaskType;
import com.vcredit.lrh.commons.message.APPMessage;
import com.vcredit.lrh.commons.message.RabbitMessage;
import com.vcredit.lrh.message.service.base.RabbitMQProperties;
import com.vcredit.lrh.message.service.base.model.SMSNotification;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;

/**
 * ? ?  ?
 * 
 * @author Liu Jianwei
 * @date 2016-12-20 19:22:58
 */
public class MessageSerivceClient extends AbstractClient {

    private static final Logger logger = LoggerFactory.getLogger(MessageSerivceClient.class);

    //    @Autowired
    //    @LoadBalanced
    //    RestTemplate restTemplate;
    @Autowired
    RabbitTemplate rabbitTemplate;

    @Autowired
    RabbitMQProperties properties;

    /**
     * ??APP
     *
     * @param messageObject
     */
    public void pushAPPMessage(APPMessage messageObject) {
        try {
            RabbitMessage rabbitMessage = new RabbitMessage(MessageType.APP_MESSAGE_PUSH, messageObject);
            org.springframework.amqp.core.Message message = MessageBuilder.withBody(rabbitMessage.getBytes())
                    .build();
            rabbitTemplate.send(properties.getMessageRouteKey(), message);
        } catch (JsonProcessingException ex) {
            logger.error("MessageSerivceClient.pushAPPMessage: " + ex.getMessage(), ex);
        }
    }

    public void userDimission(String agentId) {
        try {
            RabbitMessage rabbitMessage = new RabbitMessage(MessageType.USER_DIMISSION, agentId);
            org.springframework.amqp.core.Message message = MessageBuilder.withBody(rabbitMessage.getBytes())
                    .build();
            rabbitTemplate.send(properties.getUserDissMissionRouteKey(), message);
        } catch (JsonProcessingException e) {
            logger.error("MessageSerivceClient.sendScheduleTaskMessage: " + e.getMessage(), e);

        }
    }

    /**
     * ?
     * @param taskType
     * @param content 
     */
    public void sendScheduleTaskMessage(ScheduleTaskType taskType, String content) {
        try {
            RabbitMessage rabbitMessage = new RabbitMessage(taskType.toString(), content);
            org.springframework.amqp.core.Message message = MessageBuilder.withBody(rabbitMessage.getBytes())
                    .build();
            rabbitTemplate.send(properties.getScheduleTaskRouteKey(), message);
        } catch (JsonProcessingException ex) {
            logger.error("MessageSerivceClient.sendScheduleTaskMessage: " + ex.getMessage(), ex);
        }
    }

    /**
     * 
     *
     * @param notification
     */
    public void smsNotification(SMSNotification notification) {

    }

    @Override
    public String getServiceUrl(String subPath) {
        return "http://lrh-message-service" + subPath;
    }
}