From 75cb81f0b88f313857ea431b46b929bef95d7cc8 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期一, 29 七月 2024 10:36:59 +0800 Subject: [PATCH] 代码提交 --- ruoyi-admin/src/main/java/com/ruoyi/web/task/PhoneTask.java | 166 +++++++++++++++++++++++++++++++++---------------------- 1 files changed, 99 insertions(+), 67 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 771d92a..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 @@ -7,92 +7,97 @@ import com.ruoyi.common.utils.uuid.IdUtils; import com.smartor.common.SendService; import com.smartor.config.PhoneUtils; -import com.smartor.config.RabbitMqCallPhoneConfig; +import com.smartor.config.RobotPhoneUtils; import com.smartor.domain.*; -import org.springframework.amqp.core.Message; -import org.springframework.amqp.rabbit.core.RabbitTemplate; +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.*; import java.util.concurrent.TimeUnit; public class PhoneTask implements Runnable { - private IvrTaskSingle ivrTaskSingle; - private List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVO; + private ServiceSubtask ivrTaskSingle; + private List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVO; private RedisCache redisCache; - private IvrLibaTemplateVO ivrLibaTemplateVO; - private RabbitMqCallPhoneConfig rabbitMqCallPhoneConfig; - private Message message; + private IvrTaskTemplateVO ivrTaskTemplateVO; private SendService sendService; + private String phonePath; + private RobotPhoneUtils robotPhoneUtils; - public PhoneTask(IvrTaskSingle ivrTaskSingle, IvrLibaTemplateVO ivrLibaTemplateVO, RedisCache redisCache, RabbitMqCallPhoneConfig rabbitMqCallPhoneConfig, 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); + 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.rabbitMqCallPhoneConfig = rabbitMqCallPhoneConfig; - this.message = message; this.sendService = sendService; + this.phonePath = phonePath; + this.robotPhoneUtils = robotPhoneUtils; } @Override public void run() { - 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 (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateScriptVO) { - for (Map<String, String> map : mapList) { - for (String key : map.keySet()) { - ivrLibaTemplateScriptVO.setQuestionText(ivrLibaTemplateScriptVO.getQuestionText().replace(key, map.get(key))); + 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("ivrLibaTemplateScriptVO", ivrLibaTemplateScriptVO); - //灏嗘暟鎹斁鍒皉edis涓紝鏂逛究鍦ㄥ洖璋冩柟娉曢噷鑾峰彇 - redisCache.setCacheObject(uuid, objectMap, 120, TimeUnit.MINUTES); + 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(ivrLibaTemplateScriptVO); - //灏嗛棶棰橈紝鍜屾ā鏉夸俊鎭斁鍒皉edis涓� - redisCache.setCacheObject(uuid + "returnQues", returnQues, 120, TimeUnit.MINUTES); - redisCache.setCacheObject(uuid + "ivrLibaTemplateVO", ivrLibaTemplateVO, 120, TimeUnit.MINUTES); + 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().getQuestionText() + " " + ivrTaskSingle.getPhone()); + System.out.println("----------------uuID涓� 锛�" + uuid + " " + ivrTaskSingle.getSendname() + " " + returnQues.getNowQuestion().getScriptContent() + " " + ivrTaskSingle.getPhone()); - //鍏堝皢璇濇湳鏀惧埌ob_queue闃熷垪涓� - IvrTaskcallPhoneMQ ivrTaskcallPhoneMQ = new IvrTaskcallPhoneMQ(); - ivrTaskcallPhoneMQ.setScript(ivrLibaTemplateVO.getRevisitBefore() + returnQues.getNowQuestion().getQuestionText()); - ivrTaskcallPhoneMQ.setType("1"); - ivrTaskcallPhoneMQ.setUuid(uuid); - String data = JSON.toJSONString(ivrTaskcallPhoneMQ); - rabbitMqCallPhoneConfig.sendMessage("phone_exchange", "phone.ob1", data, 0L); + //鍏堝皢璇濇湳鏀惧埌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().getQuestionText() + " " + ivrTaskSingle.getPhone() + "----------宸茬粡鎷ㄦ墦"); - Map<String, String> obMap = objectMapper.readValue(ob, Map.class); - Thread.sleep(1000); - redisCache.setCacheObject(uuid + "state_id", "0", 10, TimeUnit.MINUTES); + //璋冪敤鏈哄櫒浜虹數璇濓紝寮�濮嬬數璇� + 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")) { // // 璇存槑鎵撻�氫簡 @@ -103,12 +108,39 @@ // 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); - - System.out.println("OB鐨勫�间负锛�" + ob); - } catch (Exception e) { - e.printStackTrace(); - + RobotIdlenumVO robotIdlenumVO = DtoConversionUtils.sourceToTarget(robotScritpTemplateVO, RobotIdlenumVO.class); +// String idlenum = robotPhoneUtils.idlenum(robotIdlenumVO); +// System.out.println(idlenum); + robotPhoneUtils.outbound(robotScritpTemplateVO); } } } -- Gitblit v1.9.3