From bb60b5747d5f4b85655a541d4990ec7464497b1b Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 10 五月 2024 18:18:02 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-admin/src/main/java/com/ruoyi/web/task/PhoneTask.java |   63 ++++++++++++++++++++-----------
 1 files changed, 40 insertions(+), 23 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/task/PhoneTask.java b/ruoyi-admin/src/main/java/com/ruoyi/web/task/PhoneTask.java
index babadc5..d719abf 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/task/PhoneTask.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/task/PhoneTask.java
@@ -1,39 +1,37 @@
 package com.ruoyi.web.task;
 
-import com.alibaba.fastjson2.JSON;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.rabbitmq.client.Channel;
 import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.utils.DtoConversionUtils;
 import com.ruoyi.common.utils.uuid.IdUtils;
+import com.smartor.common.SendService;
 import com.smartor.config.PhoneUtils;
-import com.smartor.domain.IvrLibaTemplateScriptVO;
-import com.smartor.domain.IvrLibaTemplateVO;
-import com.smartor.domain.IvrTaskSingle;
-import com.smartor.domain.QuestionMessage;
-import com.smartor.mapper.IvrTaskSingleMapper;
+import com.smartor.domain.*;
 import org.springframework.amqp.core.Message;
+import org.springframework.data.convert.Jsr310Converters;
 
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
 
 public class PhoneTask implements Runnable {
-    private IvrTaskSingle ivrTaskcall;
+    private IvrTaskSingle ivrTaskSingle;
     private List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVO;
     private RedisCache redisCache;
     private IvrLibaTemplateVO ivrLibaTemplateVO;
     private Channel channel;
     private Message message;
+    private SendService sendService;
 
-    public PhoneTask(IvrTaskSingle ivrTaskcall, IvrLibaTemplateVO ivrLibaTemplateVO, RedisCache redisCache, Channel channel, Message message) {
-        this.ivrTaskcall = ivrTaskcall;
-        this.ivrLibaTemplateScriptVO = ivrLibaTemplateVO.getIvrLibaTemplateScriptVOList();
-        this.ivrLibaTemplateVO = ivrLibaTemplateVO;
+
+    public PhoneTask(IvrTaskSingle ivrTaskSingle, IvrLibaTemplateVO ivrLibaTemplateVO, RedisCache redisCache, Channel channel, Message message, SendService sendService) {
+        this.ivrTaskSingle = DtoConversionUtils.sourceToTarget(ivrTaskSingle, IvrTaskSingle.class);
+        this.ivrLibaTemplateScriptVO = DtoConversionUtils.sourceToTarget(ivrLibaTemplateVO.getIvrLibaTemplateScriptVOList(), IvrLibaTemplateScriptVO.class);
+        this.ivrLibaTemplateVO = DtoConversionUtils.sourceToTarget(ivrLibaTemplateVO, IvrLibaTemplateVO.class);
         this.redisCache = redisCache;
         this.channel = channel;
         this.message = message;
+        this.sendService = sendService;
     }
 
     @Override
@@ -42,9 +40,26 @@
             try {
                 //鑾峰彇鐢佃瘽缁勶紝鏌ョ湅鍝簺鐢佃瘽鍙互浣跨敤
                 PhoneUtils phoneUtils = new PhoneUtils();
-                String uuid = IdUtils.randomUUID();
+                final String uuid = IdUtils.randomUUID();
+                //鑾峰彇鎵�鏈夌殑鈥滈�氶厤绗︹�濋敭鍊煎
+                ObjectMapper objectMapper = new ObjectMapper();
+                Map<String, Map<String, String>> ivrTaskSingleMmap = objectMapper.readValue(ivrTaskSingle.getTextParam(), Map.class);
+                List<Map<String, String>> mapList = new ArrayList<>();
+                if (!Objects.isNull(ivrTaskSingleMmap)) {
+                    for (Map<String, String> map : ivrTaskSingleMmap.values()) {
+                        mapList.add(map);
+                    }
+                    //灏嗘ā鏉块棶棰樿瘽鏈噷鐨勯�氶厤绗︽浛鎹�
+                    for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateScriptVO) {
+                        for (Map<String, String> map : mapList) {
+                            for (String key : map.keySet()) {
+                                ivrLibaTemplateScriptVO.setQuestionText(ivrLibaTemplateScriptVO.getQuestionText().replace(key, map.get(key)));
+                            }
+                        }
+                    }
+                }
                 Map<String, Object> objectMap = new HashMap<>();
-                objectMap.put("ivrTaskcall", ivrTaskcall);
+                objectMap.put("ivrTaskSingle", ivrTaskSingle);
                 objectMap.put("ivrLibaTemplateScriptVO", ivrLibaTemplateScriptVO);
                 //灏嗘暟鎹斁鍒皉edis涓紝鏂逛究鍦ㄥ洖璋冩柟娉曢噷鑾峰彇
                 redisCache.setCacheObject(uuid, objectMap, 120, TimeUnit.MINUTES);
@@ -62,16 +77,18 @@
                 redisCache.setCacheObject(uuid + "returnQues", returnQues, 120, TimeUnit.MINUTES);
                 redisCache.setCacheObject(uuid + "ivrLibaTemplateVO", ivrLibaTemplateVO, 120, TimeUnit.MINUTES);
 
+                System.out.println("----------------uuID涓� 锛�" + uuid + "       " + ivrTaskSingle.getSendname() + "       " + returnQues.getNowQuestion().getQuestionText() + "     " + ivrTaskSingle.getPhone());
+
                 //璋冪敤鏈哄櫒浜虹數璇濓紝寮�濮嬬數璇濓紙闇�瑕佸皢鍥炶皟鏂规硶浼犲叆锛岃繖涓瓑鈥濈數璇濇柟鈥滃憡璇夋�庝箞浼狅紝鐜板湪鍏堢┖鐫�,杩樻湁绗竴鍙ラ棶棰樿瘽鏈級
-                String ob = phoneUtils.ob("", "", "", "", "", "", "", ivrTaskcall.getPhone(), uuid, true);
+                String ob = phoneUtils.ob("", "", "", "", "", "", "", ivrTaskSingle.getPhone(), uuid, true);
                 System.out.println("OB鐨勫�间负锛�" + ob);
                 //閫氫簡涔嬪悗锛岀珛椹幓璋冨紑鍦虹櫧
-                phoneUtils.ttsPlayback(ivrLibaTemplateVO.getRevisitBefore()+returnQues.getNowQuestion().getQuestionText(), uuid);
+                System.out.println("闂鐨勫�间负锛�" + returnQues.getNowQuestion().getQuestionText() + "       " + uuid);
+                phoneUtils.ttsPlayback(ivrLibaTemplateVO.getRevisitBefore() + returnQues.getNowQuestion().getQuestionText(), uuid);
 
-                //閫氱煡 MQ 娑堟伅宸茶鎺ユ敹,鍙互ACK(浠庨槦鍒椾腑鍒犻櫎)浜�   锛堣繖涓渶瑕佹牴鎹笟鍔″啀鍘诲鐞咥CK锛�
-
-                channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
-            } catch (IOException e) {
+//                //閫氱煡 MQ 娑堟伅宸茶鎺ユ敹,鍙互ACK(浠庨槦鍒椾腑鍒犻櫎)浜�   锛堣繖涓渶瑕佹牴鎹笟鍔″啀鍘诲鐞咥CK锛�
+//                channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
+            } catch (Exception e) {
                 e.printStackTrace();
             }
         }

--
Gitblit v1.9.3