package com.yanzuoguang.mq.service.impl; import com.rabbitmq.client.Channel; import com.yanzuoguang.mq.service.MessageService; import com.yanzuoguang.mq.service.MqService; import com.yanzuoguang.mq.service.QueueService; import com.yanzuoguang.mq.vo.MessageVo; import com.yanzuoguang.mq.vo.QueueVo; import com.yanzuoguang.mq.vo.req.QueueQueryReqVo; import com.yanzuoguang.util.log.Log; import com.yanzuoguang.util.vo.PageSizeData; import com.yanzuoguang.util.vo.ResponseResult; import org.springframework.amqp.core.Message; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.io.IOException; @Component public class MqServiceImpl implements MqService { @Autowired private QueueService queueService; @Autowired private MessageService messageService; /** * 保存演示DEMO * * @param req */ public String createQueue(QueueVo req) { req.check(); return queueService.create(req); } /** * 查询队列 * * @param req 请求数据 * @return 查询结果 */ public PageSizeData<QueueVo> queryQueue(QueueQueryReqVo req) { return queueService.query(req); } /** * 查询队列 * * @return 查询结果 */ public String queryInit() { queueService.init(); return "初始化完成"; } /** * 发送消息 * * @param req 需要发送的消息 * @return 消息编号,但是没有任何意义,发送成功会更改 */ public String message(MessageVo req) { req.check(); return messageService.send(req); } /** * 发送错误消息 * * @param req * @return */ public String message_error(MessageVo req) { req.check(); return messageService.onError(req); } /** * 消息收到确认 * * @param message 收到的消息 * @param channel 收到的通道 */ @Override public void basicAck(Message message, Channel channel) { try { channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); } catch (IOException e) { Log.error(MessageServiceImpl.class, e); } } }