From b220383758021bcb26d0a788ebe9a31795d23b6d Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 26 四月 2024 09:41:57 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/hanler/ChatWebSocketHandler.java |  166 +++++++++++++++++++++++++++++++++----------------------
 1 files changed, 100 insertions(+), 66 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 058f5f7..d314e86 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
@@ -205,82 +205,115 @@
                         redisCache.setCacheObject(userId + "noVoice", noVoice2, 120, TimeUnit.MINUTES);
                     }
                 } else {
-                    //瀵瑰洖绛旂殑闂,杩涜姝e垯鍖归厤锛堣繖閲屽彧閽堝閫夋嫨棰橈紝鍏跺畠棰樺瀷涓嶈锛墄
-                    for (int j = 0; j < ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().size(); j++) {
-                        //鍖呭惈
-                        Matcher matcher = null;
-                        if (StringUtils.isNotEmpty(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex())) {
-                            Pattern pattern = Pattern.compile(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex());
-                            matcher = pattern.matcher(questionMessage.getContent());
-                        }
-                        //涓嶅寘鍚�
-                        Matcher matcher2 = null;
-                        if (StringUtils.isNotEmpty(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex2())) {
-                            Pattern pattern2 = Pattern.compile(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex2());
-                            matcher2 = pattern2.matcher(questionMessage.getContent());
-                        }
-                        log.info("==============================Targetregex鐨勫�间负锛歿},   Targetregex2鐨勫�间负锛歿}", ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex(), ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex2());
+                    //閫氳繃valueType鍒ゆ柇鏄粈涔堥鍨嬶紙鍊肩被鍨嬶紙1 閫夐」  2 鏂囨湰  3 鏁板�硷級锛�
+                    if (ivrLibaTemplateScriptVO.getValueType() == 2 || ivrLibaTemplateScriptVO.getValueType() == 3) {
+                        ivrLibaTemplateScriptVO.setQuestionResult(questionMessage.getContent());
 
-                        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()) {
-                            //璇存槑鍖归厤姝g‘浜�
-                            ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).setIsUserOperation(true);
-                            List<IvrLibaTemplateScriptVO> backQuset = redisCache.getCacheObject(userId + "backQuset");
-                            //鍖归厤瀹屾垚鍚�,灏嗙粨鏋滀繚瀛樺埌鏂扮殑鏁扮粍
-                            backQuset.add(ivrLibaTemplateScriptVO);
-                            redisCache.setCacheObject(userId + "backQuset", backQuset, 120, TimeUnit.MINUTES);
-                            //灏嗛潤榛樼疆涓�0
-                            redisCache.setCacheObject(userId + "noVoice", 0, 120, TimeUnit.MINUTES);
-                            //鑾峰彇涓嬩竴棰�
-                            Integer nextQuestion = ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getNextQuestion();
-                            if (nextQuestion > ivrLibaTemplateScriptVOList.size()) {
-                                //濡傛灉涓嬩竴棰樻病鏈変簡锛屽氨缁撴潫浜�
-                                QuestionMessage returnQues = new QuestionMessage();
-                                List<IvrLibaTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset");
-                                returnQues.setContent(JSON.toJSONString(backQusetRedis));
-                                returnQues.setJsy(ivrLibaTemplateVO1.getRevisitAfter());
-                                redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
-                                redisCache.setCacheObject(userId + "isOver", 1, 120, TimeUnit.MINUTES);
-                            } else {
-                                for (IvrLibaTemplateScriptVO script : ivrLibaTemplateScriptVOList) {
-                                    if (script.getTargetid() == nextQuestion) {
-                                        QuestionMessage returnQues = new QuestionMessage();
-                                        returnQues.setNowQuestion(script);
-                                        redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
-                                        break;
-                                    }
+                        List<IvrLibaTemplateScriptVO> backQusetList = redisCache.getCacheObject(userId + "backQuset");
+                        //鍖归厤瀹屾垚鍚�,灏嗙粨鏋滀繚瀛樺埌鏂扮殑鏁扮粍
+                        backQusetList.add(ivrLibaTemplateScriptVO);
+                        redisCache.setCacheObject(userId + "backQuset", backQusetList, 120, TimeUnit.MINUTES);
+                        //灏嗛潤榛樼疆涓�0
+                        redisCache.setCacheObject(userId + "noVoice", 0, 120, TimeUnit.MINUTES);
+                        //鑾峰彇涓嬩竴棰�
+                        Integer nextQuestion = ivrLibaTemplateScriptVO.getTargetid() + 1;
+                        if (nextQuestion > ivrLibaTemplateScriptVOList.size()) {
+                            //濡傛灉涓嬩竴棰樻病鏈変簡锛屽氨缁撴潫浜�
+                            QuestionMessage returnQues = new QuestionMessage();
+                            List<IvrLibaTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset");
+                            returnQues.setContent(JSON.toJSONString(backQusetRedis));
+                            returnQues.setJsy(ivrLibaTemplateVO1.getRevisitAfter());
+                            redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
+                            redisCache.setCacheObject(userId + "isOver", 1, 120, TimeUnit.MINUTES);
+                        } else {
+                            for (IvrLibaTemplateScriptVO script : ivrLibaTemplateScriptVOList) {
+                                if (script.getTargetid() == nextQuestion) {
+                                    QuestionMessage returnQues = new QuestionMessage();
+                                    returnQues.setNowQuestion(script);
+                                    redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
                                 }
                             }
-                            break;
-                        } else {
-                            //娌℃湁鍖归厤鍒�
-                            Integer mateNum = redisCache.getCacheObject(userId + "mateNum");
+                        }
 
-                            //鏃犲尮閰嶆鏁板幓鍒ゆ柇鏄惁鍒版渶澶ц闂鏁帮紝骞朵笖鎵�鏈夌殑閫夐」閮藉尮閰嶅畬浜�
-                            if (mateNum == ivrLibaTemplateVO1.getMateNum().intValue() && j == ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().size() - 1) {
-                                //闂簡鏈�澶ц闂鏁板悗锛岃繕鏄病鏈夊尮閰嶄笂,灏嗙粨鏋滀繚瀛樺埌鏂扮殑鏁扮粍
+                    } else if (ivrLibaTemplateScriptVO.getValueType() == 1) {
+
+                        //瀵瑰洖绛旂殑闂,杩涜姝e垯鍖归厤锛堣繖閲屽彧閽堝閫夋嫨棰橈紝鍏跺畠棰樺瀷涓嶈锛墄
+                        for (int j = 0; j < ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().size(); j++) {
+                            //鍖呭惈
+                            Matcher matcher = null;
+                            if (StringUtils.isNotEmpty(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex())) {
+                                Pattern pattern = Pattern.compile(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex());
+                                matcher = pattern.matcher(questionMessage.getContent());
+                            }
+                            //涓嶅寘鍚�
+                            Matcher matcher2 = null;
+                            if (StringUtils.isNotEmpty(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex2())) {
+                                Pattern pattern2 = Pattern.compile(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getTargetregex2());
+                                matcher2 = pattern2.matcher(questionMessage.getContent());
+                            }
+                            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()) {
+                                //璇存槑鍖归厤姝g‘浜�
+                                ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).setIsUserOperation(true);
                                 List<IvrLibaTemplateScriptVO> backQuset = redisCache.getCacheObject(userId + "backQuset");
+                                //鍖归厤瀹屾垚鍚�,灏嗙粨鏋滀繚瀛樺埌鏂扮殑鏁扮粍
                                 backQuset.add(ivrLibaTemplateScriptVO);
                                 redisCache.setCacheObject(userId + "backQuset", backQuset, 120, TimeUnit.MINUTES);
-
-                                //濡傛灉涓嬩竴棰樹负绌�.鍒欐柊鐨勬暟鎹繑鍥�,骞跺姞涓婃劅璋㈣
-                                if (ivrLibaTemplateScriptVO.getTargetid() < ivrLibaTemplateScriptVOList.size()) {
-                                    QuestionMessage 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();
-//                                    returnQues2.setCode(null);
+                                //灏嗛潤榛樼疆涓�0
+                                redisCache.setCacheObject(userId + "noVoice", 0, 120, TimeUnit.MINUTES);
+                                //鑾峰彇涓嬩竴棰�
+                                Integer nextQuestion = ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(j).getNextQuestion();
+                                if (nextQuestion > ivrLibaTemplateScriptVOList.size()) {
+                                    //濡傛灉涓嬩竴棰樻病鏈変簡锛屽氨缁撴潫浜�
+                                    QuestionMessage returnQues = new QuestionMessage();
                                     List<IvrLibaTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset");
-                                    returnQues2.setQuestionList(backQusetRedis);
-                                    returnQues2.setJsy("鎰熻阿鎮ㄧ殑鑰愬績鍥炵瓟锛屽啀瑙�");
-                                    redisCache.setCacheObject(userId + "returnQues", returnQues2, 120, TimeUnit.MINUTES);
+                                    returnQues.setContent(JSON.toJSONString(backQusetRedis));
+                                    returnQues.setJsy(ivrLibaTemplateVO1.getRevisitAfter());
+                                    redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
                                     redisCache.setCacheObject(userId + "isOver", 1, 120, TimeUnit.MINUTES);
-                                    break;
+                                } else {
+                                    for (IvrLibaTemplateScriptVO script : ivrLibaTemplateScriptVOList) {
+                                        if (script.getTargetid() == nextQuestion) {
+                                            QuestionMessage returnQues = new QuestionMessage();
+                                            returnQues.setNowQuestion(script);
+                                            redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
+                                            break;
+                                        }
+                                    }
                                 }
-                            } else if (mateNum < ivrLibaTemplateVO1.getMateNum().intValue() && j == ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().size() - 1) {
-                                //娌℃湁闂埌瑙勫畾娆℃暟
-                                mateNum = mateNum + 1;
-                                redisCache.setCacheObject(userId + "mateNum", mateNum, 120, TimeUnit.MINUTES);
+                                break;
+                            } else {
+                                //娌℃湁鍖归厤鍒�
+                                Integer mateNum = redisCache.getCacheObject(userId + "mateNum");
+
+                                //鏃犲尮閰嶆鏁板幓鍒ゆ柇鏄惁鍒版渶澶ц闂鏁帮紝骞朵笖鎵�鏈夌殑閫夐」閮藉尮閰嶅畬浜�
+                                if (mateNum == ivrLibaTemplateVO1.getMateNum().intValue() && j == ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().size() - 1) {
+                                    //闂簡鏈�澶ц闂鏁板悗锛岃繕鏄病鏈夊尮閰嶄笂,灏嗙粨鏋滀繚瀛樺埌鏂扮殑鏁扮粍
+                                    List<IvrLibaTemplateScriptVO> backQuset = redisCache.getCacheObject(userId + "backQuset");
+                                    backQuset.add(ivrLibaTemplateScriptVO);
+                                    redisCache.setCacheObject(userId + "backQuset", backQuset, 120, TimeUnit.MINUTES);
+
+                                    //濡傛灉涓嬩竴棰樹负绌�.鍒欐柊鐨勬暟鎹繑鍥�,骞跺姞涓婃劅璋㈣
+                                    if (ivrLibaTemplateScriptVO.getTargetid() < ivrLibaTemplateScriptVOList.size()) {
+                                        QuestionMessage 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();
+//                                    returnQues2.setCode(null);
+                                        List<IvrLibaTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset");
+                                        returnQues2.setQuestionList(backQusetRedis);
+                                        returnQues2.setJsy("鎰熻阿鎮ㄧ殑鑰愬績鍥炵瓟锛屽啀瑙�");
+                                        redisCache.setCacheObject(userId + "returnQues", returnQues2, 120, TimeUnit.MINUTES);
+                                        redisCache.setCacheObject(userId + "isOver", 1, 120, TimeUnit.MINUTES);
+                                        break;
+                                    }
+                                } else if (mateNum < ivrLibaTemplateVO1.getMateNum().intValue() && j == ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().size() - 1) {
+                                    //娌℃湁闂埌瑙勫畾娆℃暟
+                                    mateNum = mateNum + 1;
+                                    redisCache.setCacheObject(userId + "mateNum", mateNum, 120, TimeUnit.MINUTES);
+                                }
                             }
                         }
                     }
@@ -329,6 +362,7 @@
                         }
                     }
                 }
+
             }
             QuestionMessage returnQues = redisCache.getCacheObject(userId + "returnQues");
             List<IvrLibaTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset");

--
Gitblit v1.9.3