From f55c563e2a0b52e4569ce6b5f81632cac598f7fe Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 30 十月 2024 18:36:55 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/hanler/ChatWebSocketHandler.java |  228 ++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 155 insertions(+), 73 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/hanler/ChatWebSocketHandler.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/hanler/ChatWebSocketHandler.java
index d314e86..fae4378 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/hanler/ChatWebSocketHandler.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/hanler/ChatWebSocketHandler.java
@@ -9,6 +9,7 @@
 import com.smartor.mapper.IvrLibaExtemplatescriptMapper;
 import com.smartor.service.IIvrLibaTemplateService;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.web.socket.BinaryMessage;
@@ -116,13 +117,13 @@
             if (socketMessage.getTemplateId() != null) {
                 //閫氳繃妯℃澘ID鑾峰彇妯℃澘闂
                 IvrLibaTemplateVO ivrLibaTemplateVO = new IvrLibaTemplateVO();
-                ivrLibaTemplateVO.setID(socketMessage.getTemplateId());
+                ivrLibaTemplateVO.setId(socketMessage.getTemplateId());
                 IvrLibaTemplateVO ivrLibaTemplateVO1 = ivrLibaTemplateService.selectInfoByCondition(ivrLibaTemplateVO);
                 redisCache.setCacheObject(userId + "ivrLibaTemplateVO1", ivrLibaTemplateVO1, 120, TimeUnit.MINUTES);
                 //灏嗘煡鍑烘潵鐨勯棶棰�,鏀惧埌鍏ㄥ眬鍙橀噺涓幓
                 List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList = ivrLibaTemplateVO1.getIvrLibaTemplateScriptVOList();
                 //鏍规嵁搴忓彿杩涜鎺掑簭
-                Collections.sort(ivrLibaTemplateScriptVOList, Comparator.comparing(IvrLibaTemplateScriptVO::getTargetid));
+                Collections.sort(ivrLibaTemplateScriptVOList, Comparator.comparing(IvrLibaTemplateScriptVO::getSort));
 
                 //灏嗘煡鍑烘潵鐨勬暟鎹斁鍒皉edis涓�
                 redisCache.setCacheObject(userId + "ivrLibaTemplateScriptVOList", ivrLibaTemplateScriptVOList, 120, TimeUnit.MINUTES);
@@ -136,13 +137,14 @@
                 redisCache.setCacheObject(userId + "isOver", 0, 120, TimeUnit.MINUTES);
 
                 //鐢ㄦ潵杩斿洖褰撳墠闇�瑕侀棶鐨勯棶棰樹俊鎭�
-                QuestionMessage returnQues = new QuestionMessage();
+                QuestionMessagePhone returnQues = new QuestionMessagePhone();
+
 
                 for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateScriptVOList) {
-                    if (ivrLibaTemplateScriptVO.getTargetid() == ivrLibaTemplateVO1.getFirstQuestionNum().intValue())
+                    if (ivrLibaTemplateScriptVO.getSort() == ivrLibaTemplateVO1.getFirstQuestionNum().intValue())
                         //鑾峰彇绗竴棰樼殑闂
                         returnQues.setNowQuestion(ivrLibaTemplateScriptVO);
-//                        returnQues.setCode(ivrLibaTemplateScriptVO.getTargetid() + 1);
+//                        returnQues.setCode(ivrTaskTemplateScriptVO.getTargetid() + 1);
                 }
 //              璁剧疆寮�鍦虹櫧
                 returnQues.setKcb(ivrLibaTemplateVO1.getRevisitBefore());
@@ -153,22 +155,23 @@
                 //鑾峰彇socketMessage閲岀殑QuestionMessage,瀵圭瓟妗堣繘琛屽鐞嗙劧鍚�,鍐嶉棶涓嬩竴閬�
                 Gson gson = new Gson();
                 if (!StringUtils.isEmpty(socketMessage.getContent())) {
-                    socketMessage.setQuestionMessage(gson.fromJson(socketMessage.getContent(), QuestionMessage.class));
+                    socketMessage.setQuestionMessage(gson.fromJson(socketMessage.getContent(), QuestionMessagePhone.class));
                 }
 
-                QuestionMessage questionMessage = socketMessage.getQuestionMessage();
+                QuestionMessagePhone questionMessage = socketMessage.getQuestionMessage();
                 List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList = redisCache.getCacheObject(userId + "ivrLibaTemplateScriptVOList");
                 //鏍规嵁鍓嶇浼犲洖鐨勬潯浠讹紝鑾峰彇褰撳墠棰樼洰
                 IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO = questionMessage.getNowQuestion();
-                if (ivrLibaTemplateScriptVO.getID() == null) {
-                    QuestionMessage returnQues = redisCache.getCacheObject(userId + "returnQues");
+                if (ivrLibaTemplateScriptVO.getId() == null) {
+                    QuestionMessagePhone returnQues = redisCache.getCacheObject(userId + "returnQues");
                     ivrLibaTemplateScriptVO = returnQues.getNowQuestion();
                 }
                 //鑾峰彇妯℃澘淇℃伅
                 IvrLibaTemplateVO ivrLibaTemplateVO1 = redisCache.getCacheObject(userId + "ivrLibaTemplateVO1");
 
+
                 if (StringUtils.isEmpty(questionMessage.getContent())) {
-                    //璋冪敤ivrLibaTemplateScriptVO涓殑slienceText(闈欓粯璇濇湳)
+                    //璋冪敤ivrTaskTemplateScriptVO涓殑slienceText(闈欓粯璇濇湳)
                     Integer noVoice = redisCache.getCacheObject(userId + "noVoice");
                     //瀹為檯闈欓粯娆℃暟鏄惁 绛変簬 妯℃澘涓厤缃殑娆℃暟
                     if (noVoice == ivrLibaTemplateVO1.getNoVoiceNum().intValue()) {
@@ -178,9 +181,9 @@
                         redisCache.setCacheObject(userId + "backQuset", backQuset, 120, TimeUnit.MINUTES);
 
                         //濡傛灉鍑犳閮芥病鍝嶅簲锛屽氨涓嬩竴棰橈紙闇�瑕佸厛鍒ゆ柇鏄惁鏈変笅涓�棰橈級
-                        if (ivrLibaTemplateScriptVO.getTargetid() == ivrLibaTemplateScriptVOList.size()) {
+                        if (ivrLibaTemplateScriptVO.getSort() == 0) {
                             //濡傛灉涓嬩竴棰樻病鏈変簡锛屽氨缁撴潫浜�
-                            QuestionMessage returnQues = new QuestionMessage();
+                            QuestionMessagePhone returnQues = new QuestionMessagePhone();
 //                            returnQues.setCode(null);
                             List<IvrLibaTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset");
                             returnQues.setContent(JSON.toJSONString(backQusetRedis));
@@ -190,7 +193,7 @@
 
                         } else {
                             //濡傛灉鏈変笅涓�棰橈紝灏辨牴鎹綋鍓峵eagetID+1 鑾峰彇涓嬩竴棰�
-                            QuestionMessage returnQues = getNextQuestion(ivrLibaTemplateScriptVOList, ivrLibaTemplateScriptVO);
+                            QuestionMessagePhone returnQues = getNextQuestion(ivrLibaTemplateScriptVOList, ivrLibaTemplateScriptVO);
                             redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
                             redisCache.setCacheObject(userId + "noVoice", 0, 120, TimeUnit.MINUTES);
                         }
@@ -202,9 +205,74 @@
 
                         Integer noVoice2 = redisCache.getCacheObject(userId + "noVoice");
                         noVoice2 = noVoice2 + 1;
+
+                        //缁欓棶棰樺姞涓婃棤鍖归厤璇濇湳
+                        QuestionMessagePhone returnQues = redisCache.getCacheObject(userId + "returnQues");
+                        IvrLibaTemplateScriptVO nowQuestion = returnQues.getNowQuestion();
+                        boolean contains = nowQuestion.getScriptContent().contains(nowQuestion.getNoMatchText());
+                        if (!contains) {
+                            String scriptContent = nowQuestion.getSlienceText() + "," + nowQuestion.getScriptContent();
+                            nowQuestion.setScriptContent(scriptContent);
+                        }
+                        returnQues.setNowQuestion(nowQuestion);
+                        redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
                         redisCache.setCacheObject(userId + "noVoice", noVoice2, 120, TimeUnit.MINUTES);
                     }
                 } else {
+
+                    String extemplateID = ivrLibaTemplateVO1.getSubmoduleID();
+                    if (org.apache.commons.lang3.StringUtils.isNotEmpty(extemplateID)) {
+                        String[] split = extemplateID.split(",");
+                        List<String> list = Arrays.asList(split);
+                        List<Long> list1 = new ArrayList<>();
+                        for (String str : list) {
+                            list1.add(Long.valueOf(str));
+                        }
+                        List<IvrLibaExtemplatescript> ivrLibaExtemplatescripts = ivrLibaExtemplatescriptMapper.queryIvrLibaExtemplatescriptList(list1);
+                        IvrLibaExtemplatescript les = null;
+                        for (IvrLibaExtemplatescript ivrLibaExtemplatescript : ivrLibaExtemplatescripts) {
+                            Matcher matcher = null;
+                            if (org.apache.commons.lang3.StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex())) {
+                                Pattern pattern = Pattern.compile(ivrLibaExtemplatescript.getSelfRegex());
+                                matcher = pattern.matcher(questionMessage.getContent());
+                            }
+
+                            Matcher matcher2 = null;
+                            if (org.apache.commons.lang3.StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2())) {
+                                Pattern pattern2 = Pattern.compile(ivrLibaExtemplatescript.getSelfRegex2());
+                                matcher2 = pattern2.matcher(questionMessage.getContent());
+                            }
+                            if (org.apache.commons.lang3.StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex()) && matcher.matches() && org.apache.commons.lang3.StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && matcher2.matches() || org.apache.commons.lang3.StringUtils.isEmpty(ivrLibaExtemplatescript.getSelfRegex()) && org.apache.commons.lang3.StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && matcher2.matches() || org.apache.commons.lang3.StringUtils.isEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && org.apache.commons.lang3.StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex()) && matcher.matches()) {
+                                //灏嗛�氱敤搴撳尮閰嶇殑锛屾斁鍒拌繑鍥炲�间腑
+                                ivrLibaTemplateScriptVO.setCommonValue(ivrLibaExtemplatescript.getSwitchText());
+                                les = ivrLibaExtemplatescript;
+                            }
+                            break;
+                        }
+                        if (ObjectUtils.isNotEmpty(les)) {
+                            //瀵瑰尮閰嶇殑缁撴灉澶勭悊涓�涓�(鐪嬬湅鏄笉鏄渶瑕佹寕鏈�)
+                            if (les.getIsEnd() != null && les.getIsEnd() == 1) {
+                                //鍙互鎸傛満浜�
+                                redisCache.deleteObject(userId + "ivrLibaTemplateScriptVOList");
+                                redisCache.deleteObject(userId + "backQuset");
+                                redisCache.deleteObject(userId + "noVoice");
+                                redisCache.deleteObject(userId + "returnQues");
+                                redisCache.deleteObject(userId + "isOver");
+                                redisCache.deleteObject(userId + "ivrLibaTemplateVO1");
+                                QuestionMessagePhone returnQues = new QuestionMessagePhone();
+                                List<IvrLibaTemplateScriptVO> backQuset = new ArrayList<>();
+                                IvrLibaTemplateScriptVO ls = new IvrLibaTemplateScriptVO();
+                                ls.setScriptContent(les.getSwitchText());
+                                backQuset.add(ls);
+                                returnQues.setQuestionList(backQuset);
+                                returnQues.setNowQuestion(ls);
+                                session.sendMessage(new TextMessage(JSON.toJSONString(returnQues).getBytes(StandardCharsets.UTF_8)));
+                                return;
+                            }
+                        }
+                    }
+
+
                     //閫氳繃valueType鍒ゆ柇鏄粈涔堥鍨嬶紙鍊肩被鍨嬶紙1 閫夐」  2 鏂囨湰  3 鏁板�硷級锛�
                     if (ivrLibaTemplateScriptVO.getValueType() == 2 || ivrLibaTemplateScriptVO.getValueType() == 3) {
                         ivrLibaTemplateScriptVO.setQuestionResult(questionMessage.getContent());
@@ -216,10 +284,10 @@
                         //灏嗛潤榛樼疆涓�0
                         redisCache.setCacheObject(userId + "noVoice", 0, 120, TimeUnit.MINUTES);
                         //鑾峰彇涓嬩竴棰�
-                        Integer nextQuestion = ivrLibaTemplateScriptVO.getTargetid() + 1;
+                        Long nextQuestion = Long.valueOf(ivrLibaTemplateScriptVO.getSort() + 1);
                         if (nextQuestion > ivrLibaTemplateScriptVOList.size()) {
                             //濡傛灉涓嬩竴棰樻病鏈変簡锛屽氨缁撴潫浜�
-                            QuestionMessage returnQues = new QuestionMessage();
+                            QuestionMessagePhone returnQues = new QuestionMessagePhone();
                             List<IvrLibaTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset");
                             returnQues.setContent(JSON.toJSONString(backQusetRedis));
                             returnQues.setJsy(ivrLibaTemplateVO1.getRevisitAfter());
@@ -227,8 +295,8 @@
                             redisCache.setCacheObject(userId + "isOver", 1, 120, TimeUnit.MINUTES);
                         } else {
                             for (IvrLibaTemplateScriptVO script : ivrLibaTemplateScriptVOList) {
-                                if (script.getTargetid() == nextQuestion) {
-                                    QuestionMessage returnQues = new QuestionMessage();
+                                if (Long.valueOf(script.getSort()) == nextQuestion) {
+                                    QuestionMessagePhone returnQues = new QuestionMessagePhone();
                                     returnQues.setNowQuestion(script);
                                     redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
                                 }
@@ -253,9 +321,10 @@
                             }
                             log.info("==============================Targetregex鐨勫�间负锛歿},   Targetregex2鐨勫�间负锛歿}", ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex(), ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex2());
 
-                            if (StringUtils.isNotEmpty(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches() && StringUtils.isNotEmpty(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex2()) && matcher2.matches() || StringUtils.isEmpty(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex()) && StringUtils.isNotEmpty(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex2()) && matcher2.matches() || StringUtils.isEmpty(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex2()) && StringUtils.isNotEmpty(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches()) {
+                            if (StringUtils.isNotEmpty(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex2()) && matcher2.matches() && StringUtils.isNotEmpty(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches() || StringUtils.isEmpty(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex2()) && StringUtils.isNotEmpty(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches()) {
+                                log.error("鍖归厤姝g‘浜�");
                                 //璇存槑鍖归厤姝g‘浜�
-                                ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).setIsUserOperation(true);
+                                ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).setIsUserOperation(1);
                                 List<IvrLibaTemplateScriptVO> backQuset = redisCache.getCacheObject(userId + "backQuset");
                                 //鍖归厤瀹屾垚鍚�,灏嗙粨鏋滀繚瀛樺埌鏂扮殑鏁扮粍
                                 backQuset.add(ivrLibaTemplateScriptVO);
@@ -266,7 +335,7 @@
                                 Integer nextQuestion = ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getNextQuestion();
                                 if (nextQuestion > ivrLibaTemplateScriptVOList.size()) {
                                     //濡傛灉涓嬩竴棰樻病鏈変簡锛屽氨缁撴潫浜�
-                                    QuestionMessage returnQues = new QuestionMessage();
+                                    QuestionMessagePhone returnQues = new QuestionMessagePhone();
                                     List<IvrLibaTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset");
                                     returnQues.setContent(JSON.toJSONString(backQusetRedis));
                                     returnQues.setJsy(ivrLibaTemplateVO1.getRevisitAfter());
@@ -274,8 +343,8 @@
                                     redisCache.setCacheObject(userId + "isOver", 1, 120, TimeUnit.MINUTES);
                                 } else {
                                     for (IvrLibaTemplateScriptVO script : ivrLibaTemplateScriptVOList) {
-                                        if (script.getTargetid() == nextQuestion) {
-                                            QuestionMessage returnQues = new QuestionMessage();
+                                        if (script.getSort() == nextQuestion) {
+                                            QuestionMessagePhone returnQues = new QuestionMessagePhone();
                                             returnQues.setNowQuestion(script);
                                             redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
                                             break;
@@ -284,6 +353,7 @@
                                 }
                                 break;
                             } else {
+                                log.error("鏃犲尮閰�");
                                 //娌℃湁鍖归厤鍒�
                                 Integer mateNum = redisCache.getCacheObject(userId + "mateNum");
 
@@ -295,16 +365,16 @@
                                     redisCache.setCacheObject(userId + "backQuset", backQuset, 120, TimeUnit.MINUTES);
 
                                     //濡傛灉涓嬩竴棰樹负绌�.鍒欐柊鐨勬暟鎹繑鍥�,骞跺姞涓婃劅璋㈣
-                                    if (ivrLibaTemplateScriptVO.getTargetid() < ivrLibaTemplateScriptVOList.size()) {
-                                        QuestionMessage returnQues = getNextQuestion(ivrLibaTemplateScriptVOList, ivrLibaTemplateScriptVO);
+                                    if (ivrLibaTemplateScriptVO.getSort() == 0) {
+                                        QuestionMessagePhone returnQues = getNextQuestion(ivrLibaTemplateScriptVOList, ivrLibaTemplateScriptVO);
                                         redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
                                         redisCache.setCacheObject(userId + "mateNum", 0, 120, TimeUnit.MINUTES);
                                     } else {
-                                        QuestionMessage returnQues2 = new QuestionMessage();
+                                        QuestionMessagePhone returnQues2 = new QuestionMessagePhone();
 //                                    returnQues2.setCode(null);
                                         List<IvrLibaTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset");
                                         returnQues2.setQuestionList(backQusetRedis);
-                                        returnQues2.setJsy("鎰熻阿鎮ㄧ殑鑰愬績鍥炵瓟锛屽啀瑙�");
+                                        returnQues2.setJsy(ivrLibaTemplateVO1.getRevisitAfter());
                                         redisCache.setCacheObject(userId + "returnQues", returnQues2, 120, TimeUnit.MINUTES);
                                         redisCache.setCacheObject(userId + "isOver", 1, 120, TimeUnit.MINUTES);
                                         break;
@@ -313,58 +383,70 @@
                                     //娌℃湁闂埌瑙勫畾娆℃暟
                                     mateNum = mateNum + 1;
                                     redisCache.setCacheObject(userId + "mateNum", mateNum, 120, TimeUnit.MINUTES);
-                                }
-                            }
-                        }
-                    }
-                    //閫夐」鍖归厤瀹屾垚鍚庯紝闇�瑕佸啀鍘婚�氳繃搴撳啀杩涜鍖归厤涓�娆�
-                    String extemplateID = ivrLibaTemplateVO1.getSubmoduleID();
-                    String[] split = extemplateID.split(",");
-                    List<String> list = Arrays.asList(split);
-                    List<Long> list1 = new ArrayList<>();
-                    if (StringUtils.isNotEmpty(extemplateID)) {
-                        for (String str : list) {
-                            list1.add(Long.valueOf(str));
-                        }
-                        List<IvrLibaExtemplatescript> ivrLibaExtemplatescripts = ivrLibaExtemplatescriptMapper.queryIvrLibaExtemplatescriptList(list1);
-                        for (IvrLibaExtemplatescript ivrLibaExtemplatescript : ivrLibaExtemplatescripts) {
-                            Matcher matcher = null;
-                            if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex())) {
-                                Pattern pattern = Pattern.compile(ivrLibaExtemplatescript.getSelfRegex());
-                                matcher = pattern.matcher(questionMessage.getContent());
-                            }
-
-                            Matcher matcher2 = null;
-                            if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2())) {
-                                Pattern pattern2 = Pattern.compile(ivrLibaExtemplatescript.getSelfRegex2());
-                                matcher2 = pattern2.matcher(questionMessage.getContent());
-                            }
-                            log.info("++++++++++++++++++++++++++閫氱敤搴撴槸鍚︿负绌猴細selfRegex : {} , selfRegex2 : {}", ivrLibaExtemplatescript.getSelfRegex(), ivrLibaExtemplatescript.getSelfRegex2());
-
-                            if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex()) && matcher.matches() && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && matcher2.matches() || StringUtils.isEmpty(ivrLibaExtemplatescript.getSelfRegex()) && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && matcher2.matches() || StringUtils.isEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex()) && matcher.matches()) {
-                                QuestionMessage returnQues = redisCache.getCacheObject(userId + "returnQues");
-                                IvrLibaTemplateScriptVO nowQuestion = returnQues.getNowQuestion();
-                                nowQuestion.setSubmoduleText(ivrLibaExtemplatescript.getSwitchText());
-                                nowQuestion.setSubmoduleVoice(ivrLibaExtemplatescript.getSwitchWav());
-                                redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
-                                if (ivrLibaExtemplatescript.getIsEnd() == 1) {
-                                    //灏嗛棶棰樼疆绌�
-                                    IvrLibaTemplateScriptVO nowQuestion1 = returnQues.getNowQuestion();
-                                    nowQuestion1.setQuestionText(null);
-                                    nowQuestion1.setQuestionVoice(null);
-                                    returnQues.setNowQuestion(nowQuestion1);
+                                    //缁欓棶棰樺姞涓婃棤鍖归厤璇濇湳
+                                    QuestionMessagePhone returnQues = redisCache.getCacheObject(userId + "returnQues");
+                                    IvrLibaTemplateScriptVO nowQuestion = returnQues.getNowQuestion();
+                                    boolean contains = false;
+                                    if (StringUtils.isNotEmpty(nowQuestion.getNoMatchText()))
+                                        contains = nowQuestion.getScriptContent().contains(nowQuestion.getNoMatchText());
+                                    if (!contains) {
+                                        String scriptContent = nowQuestion.getNoMatchText() + "," + nowQuestion.getScriptContent();
+                                        nowQuestion.setScriptContent(scriptContent);
+                                    }
+                                    returnQues.setNowQuestion(nowQuestion);
                                     redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
-
-                                    redisCache.setCacheObject(userId + "isOver", 1, 120, TimeUnit.MINUTES);
                                 }
                             }
-                            break;
                         }
                     }
+//                    //閫夐」鍖归厤瀹屾垚鍚庯紝闇�瑕佸啀鍘婚�氳繃搴撳啀杩涜鍖归厤涓�娆�
+//                    String extemplateID = ivrLibaTemplateVO1.getSubmoduleID();
+//                    String[] split = extemplateID.split(",");
+//                    List<String> list = Arrays.asList(split);
+//                    List<Long> list1 = new ArrayList<>();
+//                    if (StringUtils.isNotEmpty(extemplateID)) {
+//                        for (String str : list) {
+//                            list1.add(Long.valueOf(str));
+//                        }
+//                        List<IvrLibaExtemplatescript> ivrLibaExtemplatescripts = ivrLibaExtemplatescriptMapper.queryIvrLibaExtemplatescriptList(list1);
+//                        for (IvrLibaExtemplatescript ivrLibaExtemplatescript : ivrLibaExtemplatescripts) {
+//                            Matcher matcher = null;
+//                            if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex())) {
+//                                Pattern pattern = Pattern.compile(ivrLibaExtemplatescript.getSelfRegex());
+//                                matcher = pattern.matcher(questionMessage.getContent());
+//                            }
+//
+//                            Matcher matcher2 = null;
+//                            if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2())) {
+//                                Pattern pattern2 = Pattern.compile(ivrLibaExtemplatescript.getSelfRegex2());
+//                                matcher2 = pattern2.matcher(questionMessage.getContent());
+//                            }
+//                            log.info("++++++++++++++++++++++++++閫氱敤搴撴槸鍚︿负绌猴細selfRegex : {} , selfRegex2 : {}", ivrLibaExtemplatescript.getSelfRegex(), ivrLibaExtemplatescript.getSelfRegex2());
+//
+//                            if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex()) && matcher.matches() && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && matcher2.matches() || StringUtils.isEmpty(ivrLibaExtemplatescript.getSelfRegex()) && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && matcher2.matches() || StringUtils.isEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex()) && matcher.matches()) {
+//                                QuestionMessagePhone returnQues = redisCache.getCacheObject(userId + "returnQues");
+//                                IvrLibaTemplateScriptVO nowQuestion = returnQues.getNowQuestion();
+//                                nowQuestion.setSubmoduleText(ivrLibaExtemplatescript.getSwitchText());
+//                                nowQuestion.setSubmoduleVoice(ivrLibaExtemplatescript.getSwitchWav());
+//                                redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
+//                                if (ivrLibaExtemplatescript.getIsEnd() == 1) {
+//                                    //灏嗛棶棰樼疆绌�
+//                                    IvrLibaTemplateScriptVO nowQuestion1 = returnQues.getNowQuestion();
+//                                    nowQuestion1.setScriptContent(null);
+//                                    nowQuestion1.setScriptVoice(null);
+//                                    returnQues.setNowQuestion(nowQuestion1);
+//                                    redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
+//
+//                                    redisCache.setCacheObject(userId + "isOver", 1, 120, TimeUnit.MINUTES);
+//                                }
+//                            }
+//                            break;
+//                        }
+//                    }
                 }
 
             }
-            QuestionMessage returnQues = redisCache.getCacheObject(userId + "returnQues");
+            QuestionMessagePhone returnQues = redisCache.getCacheObject(userId + "returnQues");
             List<IvrLibaTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset");
             returnQues.setQuestionList(backQusetRedis);
             session.sendMessage(new TextMessage(JSON.toJSONString(returnQues).getBytes(StandardCharsets.UTF_8)));
@@ -389,10 +471,10 @@
     }
 
     //鑾峰彇涓嬩竴棰橈紙杩欎釜鏂规硶涓嶉�傚悎閫夐」涓殑nextQuestion锛�
-    private QuestionMessage getNextQuestion(List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList, IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO) {
-        QuestionMessage returnQues = new QuestionMessage();
+    private QuestionMessagePhone getNextQuestion(List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList, IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO) {
+        QuestionMessagePhone returnQues = new QuestionMessagePhone();
         for (int j = 0; j < ivrLibaTemplateScriptVOList.size(); j++) {
-            if (ivrLibaTemplateScriptVOList.get(j).getTargetid() == ivrLibaTemplateScriptVO.getTargetid() + 1) {
+            if (ivrLibaTemplateScriptVOList.get(j).getSort() == ivrLibaTemplateScriptVO.getSort() + 1) {
                 // 瀵硅鏉emplateScriptVO杩涜澶勭悊
                 returnQues.setNowQuestion(ivrLibaTemplateScriptVOList.get(j));
             }

--
Gitblit v1.9.3