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