From 01a79d5b431b71cc79cf5f6cc92cd4f3432781dd Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期二, 30 四月 2024 12:39:54 +0800
Subject: [PATCH] 代码提交
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/hanler/ChatWebSocketHandler.java | 151 ++++++++++++++++++++++++++++++++-----------------
1 files changed, 98 insertions(+), 53 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 1540222..d9fbf18 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
@@ -144,7 +144,7 @@
returnQues.setNowQuestion(ivrLibaTemplateScriptVO);
// returnQues.setCode(ivrLibaTemplateScriptVO.getTargetid() + 1);
}
-// returnQues.setKcb("浣犲ソ,澶у偦鐙�,鎴戜滑鏄煇鏌愭煇鍖婚櫌,鐜板湪闇�瑕佸仛涓�娆¢殢璁�;");
+// 璁剧疆寮�鍦虹櫧
returnQues.setKcb(ivrLibaTemplateVO1.getRevisitBefore());
//璁板綍鍝嶅簲
@@ -184,7 +184,7 @@
// returnQues.setCode(null);
List<IvrLibaTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset");
returnQues.setContent(JSON.toJSONString(backQusetRedis));
- returnQues.setJsy("鎰熻阿鎮ㄧ殑鑰愬績鍥炵瓟锛屽啀瑙�");
+ returnQues.setJsy(ivrLibaTemplateVO1.getRevisitAfter());
redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
redisCache.setCacheObject(userId + "isOver", 1, 120, TimeUnit.MINUTES);
@@ -205,72 +205,116 @@
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();
+ 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;
}
}
- 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).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()) {
+
+ //璇存槑鍖归厤姝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);
+ }
}
}
}
@@ -319,6 +363,7 @@
}
}
}
+
}
QuestionMessage returnQues = redisCache.getCacheObject(userId + "returnQues");
List<IvrLibaTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset");
--
Gitblit v1.9.3