From 63e17909e1eee7ff54c38827a4096cbad82e5dad Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期二, 16 四月 2024 11:56:55 +0800 Subject: [PATCH] 代码提交 --- ruoyi-admin/src/main/java/com/ruoyi/web/component/RabbitMqReceiver.java | 71 ++++++++++++++++++++--------------- 1 files changed, 41 insertions(+), 30 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/component/RabbitMqReceiver.java b/ruoyi-admin/src/main/java/com/ruoyi/web/component/RabbitMqReceiver.java index 4208bc2..fa8a7ec 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/component/RabbitMqReceiver.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/component/RabbitMqReceiver.java @@ -3,21 +3,23 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.ruoyi.common.core.redis.RedisCache; -import com.ruoyi.common.utils.DateUtils; import com.ruoyi.web.task.PhoneTask; import com.smartor.config.RabbitMqConfig; import com.smartor.domain.IvrLibaTemplateVO; -import com.smartor.domain.IvrTaskcall; +import com.smartor.domain.IvrTaskSingle; import com.smartor.domain.IvrTaskcallMQ; -import com.smartor.mapper.IvrTaskcallMapper; +import com.smartor.mapper.IvrTaskSingleMapper; import com.smartor.service.IIvrLibaTemplateService; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.core.Message; -import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory; +import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; import com.rabbitmq.client.Channel; +import org.springframework.amqp.rabbit.connection.ConnectionFactory; import java.io.IOException; import java.util.List; @@ -30,7 +32,7 @@ private static IIvrLibaTemplateService ivrLibaTemplateService; - private static IvrTaskcallMapper ivrTaskcallMapper; + private static IvrTaskSingleMapper ivrTaskcallMapper; private static RedisCache redisCache; @@ -44,7 +46,7 @@ } @Autowired - public void setIvrTaskcallMapper(IvrTaskcallMapper ivrTaskcallMapper) { + public void setIvrTaskcallMapper(IvrTaskSingleMapper ivrTaskcallMapper) { RabbitMqReceiver.ivrTaskcallMapper = ivrTaskcallMapper; } @@ -78,31 +80,32 @@ */ @RabbitListener(queues = RabbitMqConfig.phone_queue, concurrency = "50") public void phoneVisit(String content, Message message, Channel channel) throws IOException { -// System.out.println(content); -// IvrTaskcallMQ ivrTaskcallMQ = null; -// ObjectMapper mapper = new ObjectMapper(); -// try { -// ivrTaskcallMQ = mapper.readValue(content, IvrTaskcallMQ.class); -// } catch (JsonProcessingException e) { -// e.printStackTrace(); -// } -// //閫氳繃妯℃澘ID鑾峰彇妯℃澘闂 -// IvrLibaTemplateVO ivrLibaTemplateVO = new IvrLibaTemplateVO(); -// ivrLibaTemplateVO.setID(Long.valueOf(ivrTaskcallMQ.getTemplateid())); -// IvrLibaTemplateVO ivrLibaTemplateVO1 = ivrLibaTemplateService.selectInfoByCondition(ivrLibaTemplateVO); -// -// //閫氳繃浠诲姟ID鎷垮埌鎮h�呬俊鎭� -// IvrTaskcall ivrTaskcall = new IvrTaskcall(); -// ivrTaskcall.setTaskid(ivrTaskcallMQ.getTaskid()); -// List<IvrTaskcall> ivrTaskcalls = ivrTaskcallMapper.selectIvrTaskcallList(ivrTaskcall); -// -// for (IvrTaskcall ivrTaskcall1 : ivrTaskcalls) { -// //閫氳繃澶氱嚎绋嬬殑鏂瑰紡鍘绘墦鐢佃瘽 -// executorService.submit(new PhoneTask(ivrTaskcall1, ivrLibaTemplateVO1, redisCache)); -// } - //閫氱煡 MQ 娑堟伅宸茶鎺ユ敹,鍙互ACK(浠庨槦鍒椾腑鍒犻櫎)浜� 锛堣繖涓渶瑕佹牴鎹笟鍔″啀鍘诲鐞咥CK锛� - channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); try { + IvrTaskcallMQ ivrTaskcallMQ = null; + + ObjectMapper mapper = new ObjectMapper(); + try { + ivrTaskcallMQ = mapper.readValue("{" + content + "}", IvrTaskcallMQ.class); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + //閫氳繃妯℃澘ID鑾峰彇妯℃澘闂 + IvrLibaTemplateVO ivrLibaTemplateVO = new IvrLibaTemplateVO(); + ivrLibaTemplateVO.setID(Long.valueOf(ivrTaskcallMQ.getTemplateid())); + IvrLibaTemplateVO ivrLibaTemplateVO1 = ivrLibaTemplateService.selectInfoByCondition(ivrLibaTemplateVO); + + //閫氳繃浠诲姟ID鎷垮埌鎮h�呬俊鎭� + IvrTaskSingle ivrTaskcall = new IvrTaskSingle(); + ivrTaskcall.setTaskid(ivrTaskcallMQ.getTaskid()); + List<IvrTaskSingle> ivrTaskcalls = ivrTaskcallMapper.selectIvrTaskcallList(ivrTaskcall); + + for (IvrTaskSingle ivrTaskcall1 : ivrTaskcalls) { + //閫氳繃澶氱嚎绋嬬殑鏂瑰紡鍘绘墦鐢佃瘽 + executorService.submit(new PhoneTask(ivrTaskcall1, ivrLibaTemplateVO1, redisCache, channel, message)); + } + //閫氱煡 MQ 娑堟伅宸茶鎺ユ敹,鍙互ACK(浠庨槦鍒椾腑鍒犻櫎)浜� 锛堣繖涓渶瑕佹牴鎹笟鍔″啀鍘诲鐞咥CK锛� + channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); + log.info("=============Do Something=============="); } catch (Exception e) { log.error("============娑堣垂澶辫触,灏濊瘯娑堟伅琛ュ彂鍐嶆娑堣垂!=============="); @@ -115,4 +118,12 @@ channel.basicRecover(false); } } + + @Bean + public SimpleRabbitListenerContainerFactory jsonContainerFactory(ConnectionFactory connectionFactory) { + SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); + factory.setConnectionFactory(connectionFactory); + factory.setMessageConverter(new Jackson2JsonMessageConverter()); + return factory; + } } -- Gitblit v1.9.3