From 907641e56c2085aaa81f267946dc3e3e9fca73e7 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期三, 18 九月 2024 09:39:02 +0800 Subject: [PATCH] 代码提交 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/hanler/ChatWebSocketHandler.java | 252 ++++++++++++++++++++++++++++--------------------- 1 files changed, 144 insertions(+), 108 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..37e4338 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 @@ -8,6 +8,7 @@ import com.smartor.domain.*; import com.smartor.mapper.IvrLibaExtemplatescriptMapper; import com.smartor.service.IIvrLibaTemplateService; +import com.smartor.service.IIvrTaskTemplateService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -31,7 +32,7 @@ private static RedisCache redisCache; - private static IIvrLibaTemplateService ivrLibaTemplateService; + private static IIvrTaskTemplateService ivrTaskTemplateService; private static IvrLibaExtemplatescriptMapper ivrLibaExtemplatescriptMapper; @@ -44,8 +45,8 @@ } @Autowired - public void setTodayReaderService(IIvrLibaTemplateService ivrLibaTemplateService) { - ChatWebSocketHandler.ivrLibaTemplateService = ivrLibaTemplateService; + public void setTodayReaderService(IIvrTaskTemplateService ivrTaskTemplateService) { + ChatWebSocketHandler.ivrTaskTemplateService = ivrTaskTemplateService; } @Autowired @@ -115,17 +116,17 @@ if (session != null && session.isOpen()) { if (socketMessage.getTemplateId() != null) { //閫氳繃妯℃澘ID鑾峰彇妯℃澘闂 - IvrLibaTemplateVO ivrLibaTemplateVO = new IvrLibaTemplateVO(); - ivrLibaTemplateVO.setID(socketMessage.getTemplateId()); - IvrLibaTemplateVO ivrLibaTemplateVO1 = ivrLibaTemplateService.selectInfoByCondition(ivrLibaTemplateVO); - redisCache.setCacheObject(userId + "ivrLibaTemplateVO1", ivrLibaTemplateVO1, 120, TimeUnit.MINUTES); + IvrTaskTemplateVO ivrTaskTemplateVO = new IvrTaskTemplateVO(); + ivrTaskTemplateVO.setId(socketMessage.getTemplateId()); + IvrTaskTemplateVO ivrTaskTemplateVO1 = ivrTaskTemplateService.selectInfoByCondition(ivrTaskTemplateVO); + redisCache.setCacheObject(userId + "ivrTaskTemplateVO1", ivrTaskTemplateVO1, 120, TimeUnit.MINUTES); //灏嗘煡鍑烘潵鐨勯棶棰�,鏀惧埌鍏ㄥ眬鍙橀噺涓幓 - List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList = ivrLibaTemplateVO1.getIvrLibaTemplateScriptVOList(); + List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVOList = ivrTaskTemplateVO1.getIvrTaskTemplateScriptVOList(); //鏍规嵁搴忓彿杩涜鎺掑簭 - Collections.sort(ivrLibaTemplateScriptVOList, Comparator.comparing(IvrLibaTemplateScriptVO::getTargetid)); + Collections.sort(ivrTaskTemplateScriptVOList, Comparator.comparing(IvrTaskTemplateScriptVO::getTargetid)); //灏嗘煡鍑烘潵鐨勬暟鎹斁鍒皉edis涓� - redisCache.setCacheObject(userId + "ivrLibaTemplateScriptVOList", ivrLibaTemplateScriptVOList, 120, TimeUnit.MINUTES); + redisCache.setCacheObject(userId + "ivrTaskTemplateScriptVOList", ivrTaskTemplateScriptVOList, 120, TimeUnit.MINUTES); //鐢ㄦ潵杩斿洖璋冩煡鐨勬�荤粨鏋� redisCache.setCacheObject(userId + "backQuset", new ArrayList<>(), 120, TimeUnit.MINUTES); //鐢ㄦ潵璁板綍鏃犲0鍝嶅簲娆℃暟 @@ -138,14 +139,14 @@ //鐢ㄦ潵杩斿洖褰撳墠闇�瑕侀棶鐨勯棶棰樹俊鎭� QuestionMessage returnQues = new QuestionMessage(); - for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateScriptVOList) { - if (ivrLibaTemplateScriptVO.getTargetid() == ivrLibaTemplateVO1.getFirstQuestionNum().intValue()) + for (IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO : ivrTaskTemplateScriptVOList) { + if (ivrTaskTemplateScriptVO.getTargetid() == ivrTaskTemplateVO1.getFirstQuestionNum().intValue()) //鑾峰彇绗竴棰樼殑闂 - returnQues.setNowQuestion(ivrLibaTemplateScriptVO); -// returnQues.setCode(ivrLibaTemplateScriptVO.getTargetid() + 1); + returnQues.setNowQuestion(ivrTaskTemplateScriptVO); +// returnQues.setCode(ivrTaskTemplateScriptVO.getTargetid() + 1); } // 璁剧疆寮�鍦虹櫧 - returnQues.setKcb(ivrLibaTemplateVO1.getRevisitBefore()); + returnQues.setKcb(ivrTaskTemplateVO1.getRevisitBefore()); //璁板綍鍝嶅簲 redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES); @@ -157,40 +158,40 @@ } QuestionMessage questionMessage = socketMessage.getQuestionMessage(); - List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList = redisCache.getCacheObject(userId + "ivrLibaTemplateScriptVOList"); + List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVOList = redisCache.getCacheObject(userId + "ivrTaskTemplateScriptVOList"); //鏍规嵁鍓嶇浼犲洖鐨勬潯浠讹紝鑾峰彇褰撳墠棰樼洰 - IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO = questionMessage.getNowQuestion(); - if (ivrLibaTemplateScriptVO.getID() == null) { + IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO = questionMessage.getNowQuestion(); + if (ivrTaskTemplateScriptVO.getId() == null) { QuestionMessage returnQues = redisCache.getCacheObject(userId + "returnQues"); - ivrLibaTemplateScriptVO = returnQues.getNowQuestion(); + ivrTaskTemplateScriptVO = returnQues.getNowQuestion(); } //鑾峰彇妯℃澘淇℃伅 - IvrLibaTemplateVO ivrLibaTemplateVO1 = redisCache.getCacheObject(userId + "ivrLibaTemplateVO1"); + IvrTaskTemplateVO ivrTaskTemplateVO1 = redisCache.getCacheObject(userId + "ivrTaskTemplateVO1"); if (StringUtils.isEmpty(questionMessage.getContent())) { - //璋冪敤ivrLibaTemplateScriptVO涓殑slienceText(闈欓粯璇濇湳) + //璋冪敤ivrTaskTemplateScriptVO涓殑slienceText(闈欓粯璇濇湳) Integer noVoice = redisCache.getCacheObject(userId + "noVoice"); //瀹為檯闈欓粯娆℃暟鏄惁 绛変簬 妯℃澘涓厤缃殑娆℃暟 - if (noVoice == ivrLibaTemplateVO1.getNoVoiceNum().intValue()) { + if (noVoice == ivrTaskTemplateVO1.getNoVoiceNum().intValue()) { //鐢ㄦ潵杩斿洖璋冩煡鐨勬�荤粨鏋� - List<IvrLibaTemplateScriptVO> backQuset = new ArrayList<>(); - backQuset.add(ivrLibaTemplateScriptVO); + List<IvrTaskTemplateScriptVO> backQuset = new ArrayList<>(); + backQuset.add(ivrTaskTemplateScriptVO); redisCache.setCacheObject(userId + "backQuset", backQuset, 120, TimeUnit.MINUTES); //濡傛灉鍑犳閮芥病鍝嶅簲锛屽氨涓嬩竴棰橈紙闇�瑕佸厛鍒ゆ柇鏄惁鏈変笅涓�棰橈級 - if (ivrLibaTemplateScriptVO.getTargetid() == ivrLibaTemplateScriptVOList.size()) { + if (ivrTaskTemplateScriptVO.getTargetid() == ivrTaskTemplateScriptVOList.size()) { //濡傛灉涓嬩竴棰樻病鏈変簡锛屽氨缁撴潫浜� QuestionMessage returnQues = new QuestionMessage(); // returnQues.setCode(null); - List<IvrLibaTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset"); + List<IvrTaskTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset"); returnQues.setContent(JSON.toJSONString(backQusetRedis)); - returnQues.setJsy(ivrLibaTemplateVO1.getRevisitAfter()); + returnQues.setJsy(ivrTaskTemplateVO1.getRevisitAfter()); redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES); redisCache.setCacheObject(userId + "isOver", 1, 120, TimeUnit.MINUTES); } else { //濡傛灉鏈変笅涓�棰橈紝灏辨牴鎹綋鍓峵eagetID+1 鑾峰彇涓嬩竴棰� - QuestionMessage returnQues = getNextQuestion(ivrLibaTemplateScriptVOList, ivrLibaTemplateScriptVO); + QuestionMessage returnQues = getNextQuestion(ivrTaskTemplateScriptVOList, ivrTaskTemplateScriptVO); redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES); redisCache.setCacheObject(userId + "noVoice", 0, 120, TimeUnit.MINUTES); } @@ -205,87 +206,121 @@ 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 (ivrTaskTemplateScriptVO.getValueType() == 2 || ivrTaskTemplateScriptVO.getValueType() == 3) { + ivrTaskTemplateScriptVO.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<IvrTaskTemplateScriptVO> backQusetList = redisCache.getCacheObject(userId + "backQuset"); + //鍖归厤瀹屾垚鍚�,灏嗙粨鏋滀繚瀛樺埌鏂扮殑鏁扮粍 + backQusetList.add(ivrTaskTemplateScriptVO); + redisCache.setCacheObject(userId + "backQuset", backQusetList, 120, TimeUnit.MINUTES); + //灏嗛潤榛樼疆涓�0 + redisCache.setCacheObject(userId + "noVoice", 0, 120, TimeUnit.MINUTES); + //鑾峰彇涓嬩竴棰� + Long nextQuestion = ivrTaskTemplateScriptVO.getTargetid() + 1; + if (nextQuestion > ivrTaskTemplateScriptVOList.size()) { + //濡傛灉涓嬩竴棰樻病鏈変簡锛屽氨缁撴潫浜� + QuestionMessage returnQues = new QuestionMessage(); + List<IvrTaskTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset"); + returnQues.setContent(JSON.toJSONString(backQusetRedis)); + returnQues.setJsy(ivrTaskTemplateVO1.getRevisitAfter()); + redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES); + redisCache.setCacheObject(userId + "isOver", 1, 120, TimeUnit.MINUTES); + } else { + for (IvrTaskTemplateScriptVO script : ivrTaskTemplateScriptVOList) { + 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) { - //闂簡鏈�澶ц闂鏁板悗锛岃繕鏄病鏈夊尮閰嶄笂,灏嗙粨鏋滀繚瀛樺埌鏂扮殑鏁扮粍 - List<IvrLibaTemplateScriptVO> backQuset = redisCache.getCacheObject(userId + "backQuset"); - backQuset.add(ivrLibaTemplateScriptVO); + } else if (ivrTaskTemplateScriptVO.getValueType() == 1) { + + //瀵瑰洖绛旂殑闂,杩涜姝e垯鍖归厤锛堣繖閲屽彧閽堝閫夋嫨棰橈紝鍏跺畠棰樺瀷涓嶈锛墄 + for (int j = 0; j < ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().size(); j++) { + //鍖呭惈 + Matcher matcher = null; + if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex())) { + Pattern pattern = Pattern.compile(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()); + matcher = pattern.matcher(questionMessage.getContent()); + } + //涓嶅寘鍚� + Matcher matcher2 = null; + if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2())) { + Pattern pattern2 = Pattern.compile(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()); + matcher2 = pattern2.matcher(questionMessage.getContent()); + } + log.info("==============================Targetregex鐨勫�间负锛歿}, Targetregex2鐨勫�间负锛歿}", ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex(), ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()); + + if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && matcher2.matches() && StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches() || StringUtils.isEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex2()) && StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches()) { + + //璇存槑鍖归厤姝g‘浜� + ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).setIsUserOperation(1); + List<IvrTaskTemplateScriptVO> backQuset = redisCache.getCacheObject(userId + "backQuset"); + //鍖归厤瀹屾垚鍚�,灏嗙粨鏋滀繚瀛樺埌鏂扮殑鏁扮粍 + backQuset.add(ivrTaskTemplateScriptVO); redisCache.setCacheObject(userId + "backQuset", backQuset, 120, TimeUnit.MINUTES); - - //濡傛灉涓嬩竴棰樹负绌�.鍒欐柊鐨勬暟鎹繑鍥�,骞跺姞涓婃劅璋㈣ - if (ivrLibaTemplateScriptVO.getTargetid() < ivrLibaTemplateScriptVOList.size()) { - QuestionMessage returnQues = getNextQuestion(ivrLibaTemplateScriptVOList, ivrLibaTemplateScriptVO); + //灏嗛潤榛樼疆涓�0 + redisCache.setCacheObject(userId + "noVoice", 0, 120, TimeUnit.MINUTES); + //鑾峰彇涓嬩竴棰� + Long nextQuestion = ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().get(j).getNextQuestion(); + if (nextQuestion > ivrTaskTemplateScriptVOList.size()) { + //濡傛灉涓嬩竴棰樻病鏈変簡锛屽氨缁撴潫浜� + QuestionMessage returnQues = new QuestionMessage(); + List<IvrTaskTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset"); + returnQues.setContent(JSON.toJSONString(backQusetRedis)); + returnQues.setJsy(ivrTaskTemplateVO1.getRevisitAfter()); 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 { + for (IvrTaskTemplateScriptVO script : ivrTaskTemplateScriptVOList) { + 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 == ivrTaskTemplateVO1.getMateNum().intValue() && j == ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().size() - 1) { + //闂簡鏈�澶ц闂鏁板悗锛岃繕鏄病鏈夊尮閰嶄笂,灏嗙粨鏋滀繚瀛樺埌鏂扮殑鏁扮粍 + List<IvrTaskTemplateScriptVO> backQuset = redisCache.getCacheObject(userId + "backQuset"); + backQuset.add(ivrTaskTemplateScriptVO); + redisCache.setCacheObject(userId + "backQuset", backQuset, 120, TimeUnit.MINUTES); + + //濡傛灉涓嬩竴棰樹负绌�.鍒欐柊鐨勬暟鎹繑鍥�,骞跺姞涓婃劅璋㈣ + if (ivrTaskTemplateScriptVO.getTargetid() < ivrTaskTemplateScriptVOList.size()) { + QuestionMessage returnQues = getNextQuestion(ivrTaskTemplateScriptVOList, ivrTaskTemplateScriptVO); + 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<IvrTaskTemplateScriptVO> 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 < ivrTaskTemplateVO1.getMateNum().intValue() && j == ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList().size() - 1) { + //娌℃湁闂埌瑙勫畾娆℃暟 + mateNum = mateNum + 1; + redisCache.setCacheObject(userId + "mateNum", mateNum, 120, TimeUnit.MINUTES); + } } } } //閫夐」鍖归厤瀹屾垚鍚庯紝闇�瑕佸啀鍘婚�氳繃搴撳啀杩涜鍖归厤涓�娆� - String extemplateID = ivrLibaTemplateVO1.getSubmoduleID(); + String extemplateID = ivrTaskTemplateVO1.getSubmoduleID(); String[] split = extemplateID.split(","); List<String> list = Arrays.asList(split); List<Long> list1 = new ArrayList<>(); @@ -310,15 +345,15 @@ 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(); + IvrTaskTemplateScriptVO 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); + IvrTaskTemplateScriptVO nowQuestion1 = returnQues.getNowQuestion(); + nowQuestion1.setScriptContent(null); + nowQuestion1.setScriptVoice(null); returnQues.setNowQuestion(nowQuestion1); redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES); @@ -329,21 +364,22 @@ } } } + } QuestionMessage returnQues = redisCache.getCacheObject(userId + "returnQues"); - List<IvrLibaTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset"); + List<IvrTaskTemplateScriptVO> backQusetRedis = redisCache.getCacheObject(userId + "backQuset"); returnQues.setQuestionList(backQusetRedis); session.sendMessage(new TextMessage(JSON.toJSONString(returnQues).getBytes(StandardCharsets.UTF_8))); //鏁翠釜娴佺▼鏄惁缁撴潫锛屽皢redis涓殑璇serId涓嬬殑鏁版嵁鍒犻櫎; Integer isOver = redisCache.getCacheObject(userId + "isOver"); if (isOver == 1) { - redisCache.deleteObject(userId + "ivrLibaTemplateScriptVOList"); + redisCache.deleteObject(userId + "ivrTaskTemplateScriptVOList"); redisCache.deleteObject(userId + "backQuset"); redisCache.deleteObject(userId + "noVoice"); redisCache.deleteObject(userId + "returnQues"); redisCache.deleteObject(userId + "isOver"); - redisCache.deleteObject(userId + "ivrLibaTemplateVO1"); + redisCache.deleteObject(userId + "ivrTaskTemplateVO1"); try { //鏂紑閾炬帴 afterConnectionClosed(session, null); @@ -355,12 +391,12 @@ } //鑾峰彇涓嬩竴棰橈紙杩欎釜鏂规硶涓嶉�傚悎閫夐」涓殑nextQuestion锛� - private QuestionMessage getNextQuestion(List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList, IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO) { + private QuestionMessage getNextQuestion(List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVOList, IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO) { QuestionMessage returnQues = new QuestionMessage(); - for (int j = 0; j < ivrLibaTemplateScriptVOList.size(); j++) { - if (ivrLibaTemplateScriptVOList.get(j).getTargetid() == ivrLibaTemplateScriptVO.getTargetid() + 1) { + for (int j = 0; j < ivrTaskTemplateScriptVOList.size(); j++) { + if (ivrTaskTemplateScriptVOList.get(j).getTargetid() == ivrTaskTemplateScriptVO.getTargetid() + 1) { // 瀵硅鏉emplateScriptVO杩涜澶勭悊 - returnQues.setNowQuestion(ivrLibaTemplateScriptVOList.get(j)); + returnQues.setNowQuestion(ivrTaskTemplateScriptVOList.get(j)); } } return returnQues; -- Gitblit v1.9.3