From 722fa40345f1fc650eaeae4a721c3ae4106d92a8 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 18 九月 2024 19:03:56 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-admin/src/main/java/com/ruoyi/web/task/PhoneTask.java |  162 +++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 125 insertions(+), 37 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 2d8ef9f..25be19e 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,58 +1,146 @@
 package com.ruoyi.web.task;
 
+import com.alibaba.fastjson2.JSON;
+import com.fasterxml.jackson.databind.ObjectMapper;
 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.IvrTaskcall;
-import com.smartor.domain.QuestionMessage;
+import com.smartor.config.RobotPhoneUtils;
+import com.smartor.domain.*;
+import com.smartor.domain.robot.RobotData;
+import com.smartor.domain.robot.RobotDataConfig;
+import com.smartor.domain.robot.RobotIdlenumVO;
+import com.smartor.domain.robot.RobotScritpTemplateVO;
 
-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 IvrTaskcall ivrTaskcall;
-    private List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVO;
+    private ServiceSubtask ivrTaskSingle;
+    private List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVO;
     private RedisCache redisCache;
-    private IvrLibaTemplateVO ivrLibaTemplateVO;
+    private IvrTaskTemplateVO ivrTaskTemplateVO;
+    private SendService sendService;
+    private String phonePath;
+    private RobotPhoneUtils robotPhoneUtils;
 
-    public PhoneTask(IvrTaskcall ivrTaskcall, IvrLibaTemplateVO ivrLibaTemplateVO, RedisCache redisCache) {
-        this.ivrTaskcall = ivrTaskcall;
-        this.ivrLibaTemplateScriptVO = ivrLibaTemplateVO.getIvrLibaTemplateScriptVOList();
-        this.ivrLibaTemplateVO = ivrLibaTemplateVO;
+
+    public PhoneTask(ServiceSubtask ivrTaskSingle, IvrTaskTemplateVO ivrTaskTemplateVO, RedisCache redisCache, SendService sendService, String phonePath, RobotPhoneUtils robotPhoneUtils) {
+        this.ivrTaskSingle = DtoConversionUtils.sourceToTarget(ivrTaskSingle, ServiceSubtask.class);
+        this.ivrTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(ivrTaskTemplateVO.getIvrTaskTemplateScriptVOList(), IvrTaskTemplateScriptVO.class);
+        this.ivrTaskTemplateVO = DtoConversionUtils.sourceToTarget(ivrTaskTemplateVO, IvrTaskTemplateVO.class);
         this.redisCache = redisCache;
+        this.sendService = sendService;
+        this.phonePath = phonePath;
+        this.robotPhoneUtils = robotPhoneUtils;
     }
 
     @Override
     public void run() {
-        //鑾峰彇鐢佃瘽缁勶紝鏌ョ湅鍝簺鐢佃瘽鍙互浣跨敤
-        PhoneUtils phoneUtils = new PhoneUtils();
-        String uuid = IdUtils.randomUUID();
-        Map<String, Object> objectMap = new HashMap<>();
-        objectMap.put("ivrTaskcall", ivrTaskcall);
-        objectMap.put("ivrLibaTemplateScriptVO", ivrLibaTemplateScriptVO);
-        //灏嗘暟鎹斁鍒皉edis涓紝鏂逛究鍦ㄥ洖璋冩柟娉曢噷鑾峰彇
-        redisCache.setCacheObject(uuid, objectMap, 120, TimeUnit.MINUTES);
+        if (phonePath.equals("1")) {
+            //涓婃捣鐨勭數璇濇嫧鎵�
+            try {
+                //鑾峰彇鐢佃瘽缁勶紝鏌ョ湅鍝簺鐢佃瘽鍙互浣跨敤
+                PhoneUtils phoneUtils = new PhoneUtils();
+                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 (IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO : ivrTaskTemplateScriptVO) {
+                        for (Map<String, String> map : mapList) {
+                            for (String key : map.keySet()) {
+                                ivrTaskTemplateScriptVO.setScriptContent(ivrTaskTemplateScriptVO.getScriptContent().replace(key, map.get(key)));
+                            }
+                        }
+                    }
+                }
+                Map<String, Object> objectMap = new HashMap<>();
+                objectMap.put("ivrTaskSingle", ivrTaskSingle);
+                objectMap.put("ivrTaskTemplateScriptVO", ivrTaskTemplateScriptVO);
+                //灏嗘暟鎹斁鍒皉edis涓紝鏂逛究鍦ㄥ洖璋冩柟娉曢噷鑾峰彇
+                redisCache.setCacheObject(uuid, objectMap, 120, TimeUnit.MINUTES);
 
-        //璁板綍棣栨闂
-        QuestionMessage returnQues = new QuestionMessage();
-        returnQues.setKcb(ivrLibaTemplateVO.getRevisitBefore());
-        for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateScriptVO) {
-            if (ivrLibaTemplateScriptVO.getTargetid() == ivrLibaTemplateVO.getFirstQuestionNum().intValue()) {
-                returnQues.setNowQuestion(ivrLibaTemplateScriptVO);
+                //璁板綍棣栨闂
+                QuestionMessage returnQues = new QuestionMessage();
+                returnQues.setKcb(ivrTaskTemplateVO.getRevisitBefore());
+                for (IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO : ivrTaskTemplateScriptVO) {
+                    if (ivrTaskTemplateScriptVO.getTargetid() == ivrTaskTemplateVO.getFirstQuestionNum().intValue()) {
+                        returnQues.setNowQuestion(ivrTaskTemplateScriptVO);
+                    }
+                }
+                returnQues.setQuestionList(ivrTaskTemplateScriptVO);
+                //灏嗛棶棰橈紝鍜屾ā鏉夸俊鎭斁鍒皉edis涓�
+                redisCache.setCacheObject(uuid + "returnQues", returnQues, 120, TimeUnit.MINUTES);
+                redisCache.setCacheObject(uuid + "ivrTaskTemplateVO", ivrTaskTemplateVO, 120, TimeUnit.MINUTES);
+
+                System.out.println("----------------uuID涓� 锛�" + uuid + "       " + ivrTaskSingle.getSendname() + "       " + returnQues.getNowQuestion().getScriptContent() + "     " + ivrTaskSingle.getPhone());
+
+                //鍏堝皢璇濇湳鏀惧埌ob_queue闃熷垪涓�
+                IvrTaskcallPhoneMQ ivrTaskcallPhoneMQ = new IvrTaskcallPhoneMQ();
+                ivrTaskcallPhoneMQ.setScript(ivrTaskTemplateVO.getRevisitBefore() + returnQues.getNowQuestion().getScriptContent());
+                ivrTaskcallPhoneMQ.setType("1");
+                ivrTaskcallPhoneMQ.setUuid(uuid);
+                String data = JSON.toJSONString(ivrTaskcallPhoneMQ);
+//            rabbitMqCallPhoneConfig.sendMessage("phone_exchange", "phone.ob1", data, 0L);
+
+                //璋冪敤鏈哄櫒浜虹數璇濓紝寮�濮嬬數璇�
+                String ob = phoneUtils.ob("", "", "", "", "", "", "", ivrTaskSingle.getPhone(), uuid, true);
+                System.out.println("----------------uuID涓� 锛�" + uuid + "       " + ivrTaskSingle.getSendname() + "       " + returnQues.getNowQuestion().getScriptContent() + "     " + ivrTaskSingle.getPhone() + "----------宸茬粡鎷ㄦ墦");
+                Map<String, String> obMap = objectMapper.readValue(ob, Map.class);
+                Thread.sleep(1000);
+                redisCache.setCacheObject(uuid + "state_id", "0", 10, TimeUnit.MINUTES);
+//                rabbitMqCallPhoneConfig.sendMessage("phone_exchange", "phone.ob1", data, 0L);
+//杩欓噷鍏堟敞閲婏紝state_id,鐢佃瘽閭h竟锛屽彧鑳借繑鍥�6锛屼笉鑳借繑鍥�0锛岃繕闇�瑕佺數璇濋偅杈硅繘琛屼慨鏀癸紝閭h竟淇敼涔嬪悗锛屼笂闈袱琛屽彲鍒犻櫎锛屽皢涓嬮潰鐨勮В寮�娉ㄩ噴
+//            if (obMap.get("state_id").equals("0")) {
+//                // 璇存槑鎵撻�氫簡
+//                redisCache.setCacheObject(uuid + "state_id", "0", 10, TimeUnit.MINUTES);
+//            } else {
+//                while (true) {
+//                    Thread.sleep(2000);
+//                    redisCache.setCacheObject(uuid + "state_id", "0", 10, TimeUnit.MINUTES);
+//                }
+//            }
+                System.out.println("OB鐨勫�间负锛�" + ob);
+            } catch (Exception e) {
+                e.printStackTrace();
             }
+        } else if (phonePath.equals("2")) {
+            //鏉窞鐨勭數璇濇嫧鎵�
+            RobotScritpTemplateVO robotScritpTemplateVO = new RobotScritpTemplateVO();
+            robotScritpTemplateVO.setNotes("aa");
+            robotScritpTemplateVO.setBs_uuid(UUID.randomUUID().toString());
+            robotScritpTemplateVO.setDnis(ivrTaskSingle.getPhone());
+            robotScritpTemplateVO.setSpecify_ch(false);
+            robotScritpTemplateVO.setTime_stamp(1566227782278333L);
+            robotScritpTemplateVO.setEngine("ali");
+            robotScritpTemplateVO.setAsr_sample("8000");
+            robotScritpTemplateVO.setAsr_ent("ZurNHpaQLq6P55YS");
+            robotScritpTemplateVO.setTts_ent("ZurNHpaQLq6P55YS");
+            robotScritpTemplateVO.setTts_vcn("Aixia");
+            robotScritpTemplateVO.setTts_volume(100);
+            robotScritpTemplateVO.setTts_speed(-300);
+            robotScritpTemplateVO.setDial_mode("鍛煎彨瀵规帴鏂瑰紡锛孎S娉ㄥ唽鍒扮綉鍏炽�佺綉鍏虫敞鍐屽埌FS銆両P瀵规帴銆両P鏍¢獙璐﹀彿瀵规帴");
+            robotScritpTemplateVO.setDial_server("call_out_group,192.168.2.108:5060");
+            robotScritpTemplateVO.setOutbound_codes("PCMU,PCMA,OPUS,G722");
+            robotScritpTemplateVO.setAuto_test(true);
+            RobotData robotData = new RobotData();
+            RobotDataConfig robotDataConfig = new RobotDataConfig();
+            robotDataConfig.setTemplate_name("inbound_88008001_16k_utf8.json");
+            robotData.setConfig(robotDataConfig);
+            robotScritpTemplateVO.setData(robotData);
+
+            RobotIdlenumVO robotIdlenumVO = DtoConversionUtils.sourceToTarget(robotScritpTemplateVO, RobotIdlenumVO.class);
+//            String idlenum = robotPhoneUtils.idlenum(robotIdlenumVO);
+//            System.out.println(idlenum);
+            robotPhoneUtils.outbound(robotScritpTemplateVO);
         }
-        returnQues.setQuestionList(ivrLibaTemplateScriptVO);
-        //灏嗛棶棰橈紝鍜屾ā鏉夸俊鎭斁鍒皉edis涓�
-        redisCache.setCacheObject(uuid + "returnQues", returnQues, 120, TimeUnit.MINUTES);
-        redisCache.setCacheObject(uuid + "ivrLibaTemplateVO", ivrLibaTemplateVO, 120, TimeUnit.MINUTES);
-
-        //璋冪敤鏈哄櫒浜虹數璇濓紝寮�濮嬬數璇濓紙闇�瑕佸皢鍥炶皟鏂规硶浼犲叆锛岃繖涓瓑鈥濈數璇濇柟鈥滃憡璇夋�庝箞浼狅紝鐜板湪鍏堢┖鐫�,杩樻湁绗竴鍙ラ棶棰樿瘽鏈級
-        phoneUtils.ob(uuid, null, ivrTaskcall.getPhone(), null, null, null, null, null, null, null, null);
-
-
     }
 }

--
Gitblit v1.9.3