package com.alatus.mall.order.controller;
import com.alatus.mall.order.entity.OrderEntity;
import com.alatus.mall.order.entity.OrderReturnReasonEntity;
import org.springframework.amqp.rabbit.connection.CorrelationData;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.UUID;
@RestController
public class RabbitController {
@Autowired
private RabbitTemplate rabbitTemplate;
@GetMapping("/sendMessage")
public String sendMessage(){
for (int i = 0; i < 10; i++) {
if(i % 2 == 0){
OrderReturnReasonEntity reasonEntity = new OrderReturnReasonEntity();
reasonEntity.setId(1L);
reasonEntity.setCreateTime(new Date());
reasonEntity.setName("哈哈"+i);
rabbitTemplate.convertAndSend("helloWorld","hello",reasonEntity,new CorrelationData(UUID.randomUUID().toString()));
}
else{
OrderEntity entity = new OrderEntity();
entity.setOrderSn(UUID.randomUUID().toString());
rabbitTemplate.convertAndSend("helloWorld","hello",entity,new CorrelationData(UUID.randomUUID().toString()));
}
}
return "OK";
}
}
package com.alatus.mall.order.controller;
import com.alatus.mall.order.entity.OrderEntity;
import com.alatus.mall.order.entity.OrderReturnReasonEntity;
import org.springframework.amqp.rabbit.connection.CorrelationData;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.UUID;
@RestController
public class RabbitController {
@Autowired
private RabbitTemplate rabbitTemplate;
@GetMapping("/sendMessage")
public String sendMessage(){
for (int i = 0; i < 10; i++) {
if(i % 2 == 0){
OrderReturnReasonEntity reasonEntity = new OrderReturnReasonEntity();
reasonEntity.setId(1L);
reasonEntity.setCreateTime(new Date());
reasonEntity.setName("哈哈"+i);
rabbitTemplate.convertAndSend("helloWorld","hello",reasonEntity,new CorrelationData(UUID.randomUUID().toString()));
}
else{
OrderEntity entity = new OrderEntity();
entity.setOrderSn(UUID.randomUUID().toString());
rabbitTemplate.convertAndSend("helloWorld","hello",entity,new CorrelationData(UUID.randomUUID().toString()));
}
}
return "OK";
}
}
package com.alatus.mall.order.config;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.connection.CorrelationData;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.amqp.support.converter.MessageConverter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.annotation.PostConstruct;
@Configuration
public class RabbitConfig {
@Autowired
private RabbitTemplate rabbitTemplate;
@Bean
public MessageConverter messageConverter(){
return new Jackson2JsonMessageConverter();
}
// 定制RabbitCallback,构造器创建完成,执行此方法
@PostConstruct
public void initRabbitTemplate(){
// 设置确认回调
rabbitTemplate.setConfirmCallback(new RabbitTemplate.ConfirmCallback() {
@Override
public void confirm(CorrelationData correlationData, boolean ack, String cause) {
System.out.println(""+correlationData+ack+cause);
}
});
// 设置消息队列的确认回调,只要消息没能顺利抵达队列,就会触发这个回调
rabbitTemplate.setReturnCallback(new RabbitTemplate.ReturnCallback() {
@Override
public void returnedMessage(Message message, int replayCode, String replyText, String exchange, String routingKey) {
System.out.println(""+message+replyText+exchange+routingKey);
}
});
}
}
package com.alatus.mall.order.config;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.connection.CorrelationData;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.amqp.support.converter.MessageConverter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.annotation.PostConstruct;
@Configuration
public class RabbitConfig {
@Autowired
private RabbitTemplate rabbitTemplate;
@Bean
public MessageConverter messageConverter(){
return new Jackson2JsonMessageConverter();
}
// 定制RabbitCallback,构造器创建完成,执行此方法
@PostConstruct
public void initRabbitTemplate(){
// 设置确认回调
rabbitTemplate.setConfirmCallback(new RabbitTemplate.ConfirmCallback() {
@Override
public void confirm(CorrelationData correlationData, boolean ack, String cause) {
System.out.println(""+correlationData+ack+cause);
}
});
// 设置消息队列的确认回调,只要消息没能顺利抵达队列,就会触发这个回调
rabbitTemplate.setReturnCallback(new RabbitTemplate.ReturnCallback() {
@Override
public void returnedMessage(Message message, int replayCode, String replyText, String exchange, String routingKey) {
System.out.println(""+message+replyText+exchange+routingKey);
}
});
}
}
package com.alatus.mall.order.service.impl;
import com.alatus.mall.order.entity.OrderEntity;
import com.alatus.mall.order.entity.OrderReturnReasonEntity;
import com.rabbitmq.client.Channel;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Service;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.alatus.common.utils.PageUtils;
import com.alatus.common.utils.Query;
import com.alatus.mall.order.dao.OrderItemDao;
import com.alatus.mall.order.entity.OrderItemEntity;
import com.alatus.mall.order.service.OrderItemService;
@Service("orderItemService")
@RabbitListener(queues = "helloJava")
public class OrderItemServiceImpl extends ServiceImpl<OrderItemDao, OrderItemEntity> implements OrderItemService {
@Override
public PageUtils queryPage(Map<String, Object> params) {
IPage<OrderItemEntity> page = this.page(
new Query<OrderItemEntity>().getPage(params),
new QueryWrapper<OrderItemEntity>()
);
return new PageUtils(page);
}
@RabbitHandler
public void getMessage(Message message, OrderReturnReasonEntity entity, Channel channel){
System.out.println(entity);
}
@RabbitHandler
public void getMessage1(OrderEntity entity){
System.out.println(entity);
}
}
package com.alatus.mall.order.service.impl;
import com.alatus.mall.order.entity.OrderEntity;
import com.alatus.mall.order.entity.OrderReturnReasonEntity;
import com.rabbitmq.client.Channel;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Service;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.alatus.common.utils.PageUtils;
import com.alatus.common.utils.Query;
import com.alatus.mall.order.dao.OrderItemDao;
import com.alatus.mall.order.entity.OrderItemEntity;
import com.alatus.mall.order.service.OrderItemService;
@Service("orderItemService")
@RabbitListener(queues = "helloJava")
public class OrderItemServiceImpl extends ServiceImpl<OrderItemDao, OrderItemEntity> implements OrderItemService {
@Override
public PageUtils queryPage(Map<String, Object> params) {
IPage<OrderItemEntity> page = this.page(
new Query<OrderItemEntity>().getPage(params),
new QueryWrapper<OrderItemEntity>()
);
return new PageUtils(page);
}
@RabbitHandler
public void getMessage(Message message, OrderReturnReasonEntity entity, Channel channel){
System.out.println(entity);
}
@RabbitHandler
public void getMessage1(OrderEntity entity){
System.out.println(entity);
}
}