package com.yanzuoguang.mq.service.impl; import com.yanzuoguang.mq.dao.BeanDao; import com.yanzuoguang.mq.service.QueueService; import com.yanzuoguang.mq.vo.QueueVo; import com.yanzuoguang.util.helper.StringHelper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.List; /** * 交换器服务类 * @author 颜佐光 */ @Component public class QueueServiceImpl implements QueueService { @Autowired private BeanDao beanDao; /** * 保存接口请求日志 * * @param req 保存队列服务 * @return 返回队列编号 */ @Override public void create(QueueVo req) { initBean(req); } /** * 初始化实体 * * @param vo 实体相关信息 */ private void initBean(QueueVo vo) { vo.check(); // 创建死信交换器 if (!StringHelper.isEmpty(vo.getDedExchangeName())) { beanDao.createExchange(vo.getDedExchangeName()); } // 创建死信队列 if (!StringHelper.isEmpty(vo.getDedQueueName())) { beanDao.createQueue(vo.getDedQueueName()); } // 关联死信队列、交换器、路由器 if (!StringHelper.isEmpty(vo.getDedQueueName(), vo.getDedExchangeName(), vo.getDedRouteKey())) { beanDao.createBinding(vo.getDedExchangeName(), vo.getDedQueueName(), vo.getDedRouteKey()); } // 创建当前交换器 beanDao.createExchange(vo.getExchangeName()); // 创建当前队列,并且绑定死信队列 beanDao.createQueue(vo.getQueueName(), vo.getDedTime(), vo.getDedExchangeName(), vo.getDedRouteKey()); // 创建绑定队列 beanDao.createBinding(vo.getExchangeName(), vo.getQueueName(), vo.getRouteKey()); } }