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