From ceb6cdffdd5ed0f2b2d83fd5c2286c50a950e910 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期六, 20 七月 2024 17:00:48 +0800
Subject: [PATCH] 代码提交
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/hanler/ChatWebSocketHandler.java | 327 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 321 insertions(+), 6 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 678eec7..a369af2 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
@@ -1,8 +1,16 @@
package com.ruoyi.web.controller.hanler;
+import com.alibaba.fastjson2.JSON;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.smartor.domain.SocketMessage;
+import com.google.gson.Gson;
+import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.utils.StringUtils;
+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;
import org.springframework.web.socket.BinaryMessage;
import org.springframework.web.socket.CloseStatus;
@@ -11,16 +19,40 @@
import org.springframework.web.socket.handler.AbstractWebSocketHandler;
import java.io.IOException;
-import java.util.Map;
+import java.nio.charset.StandardCharsets;
+import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.TimeUnit;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
@Slf4j
@Component
public class ChatWebSocketHandler extends AbstractWebSocketHandler {
+ private static RedisCache redisCache;
+
+ private static IIvrTaskTemplateService ivrTaskTemplateService;
+
+ private static IvrLibaExtemplatescriptMapper ivrLibaExtemplatescriptMapper;
+
// 鐢ㄤ簬瀛樺偍鐢ㄦ埛ID鍜學ebSocketSession鐨勬槧灏勫叧绯�
private static Map<String, WebSocketSession> sessions = new ConcurrentHashMap<>();
+ @Autowired
+ public void setIEMapper(IvrLibaExtemplatescriptMapper ivrLibaExtemplatescriptMapper) {
+ ChatWebSocketHandler.ivrLibaExtemplatescriptMapper = ivrLibaExtemplatescriptMapper;
+ }
+
+ @Autowired
+ public void setTodayReaderService(IIvrTaskTemplateService ivrTaskTemplateService) {
+ ChatWebSocketHandler.ivrTaskTemplateService = ivrTaskTemplateService;
+ }
+
+ @Autowired
+ public void setRedisCache(RedisCache redisCache) {
+ ChatWebSocketHandler.redisCache = redisCache;
+ }
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
@@ -42,7 +74,7 @@
ObjectMapper mapper = new ObjectMapper();
SocketMessage parsedMessage = mapper.readValue(payload, SocketMessage.class);
if (parsedMessage != null) {
- sendMessageToUser(parsedMessage.getUserId(), parsedMessage.getContent());
+ sendMessageToUser(parsedMessage.getUserId(), parsedMessage);
}
}
@@ -79,12 +111,295 @@
return userId;
}
- private void sendMessageToUser(String userId, String message) throws IOException {
+ private void sendMessageToUser(String userId, SocketMessage socketMessage) throws IOException {
WebSocketSession session = sessions.get(userId);
if (session != null && session.isOpen()) {
- session.sendMessage(new TextMessage(message));
+ if (socketMessage.getTemplateId() != null) {
+ //閫氳繃妯℃澘ID鑾峰彇妯℃澘闂
+ IvrTaskTemplateVO ivrTaskTemplateVO = new IvrTaskTemplateVO();
+ ivrTaskTemplateVO.setId(socketMessage.getTemplateId());
+ IvrTaskTemplateVO ivrTaskTemplateVO1 = ivrTaskTemplateService.selectInfoByCondition(ivrTaskTemplateVO);
+ redisCache.setCacheObject(userId + "ivrTaskTemplateVO1", ivrTaskTemplateVO1, 120, TimeUnit.MINUTES);
+ //灏嗘煡鍑烘潵鐨勯棶棰�,鏀惧埌鍏ㄥ眬鍙橀噺涓幓
+ List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVOList = ivrTaskTemplateVO1.getIvrTaskTemplateScriptVOList();
+ //鏍规嵁搴忓彿杩涜鎺掑簭
+ Collections.sort(ivrTaskTemplateScriptVOList, Comparator.comparing(IvrTaskTemplateScriptVO::getTargetid));
+
+ //灏嗘煡鍑烘潵鐨勬暟鎹斁鍒皉edis涓�
+ redisCache.setCacheObject(userId + "ivrTaskTemplateScriptVOList", ivrTaskTemplateScriptVOList, 120, TimeUnit.MINUTES);
+ //鐢ㄦ潵杩斿洖璋冩煡鐨勬�荤粨鏋�
+ redisCache.setCacheObject(userId + "backQuset", new ArrayList<>(), 120, TimeUnit.MINUTES);
+ //鐢ㄦ潵璁板綍鏃犲0鍝嶅簲娆℃暟
+ redisCache.setCacheObject(userId + "noVoice", 0, 120, TimeUnit.MINUTES);
+ //鐢ㄦ潵璁板綍鏃犲尮閰嶆鏁�
+ redisCache.setCacheObject(userId + "mateNum", 0, 120, TimeUnit.MINUTES);
+ //鐢ㄦ潵璁板綍鏁翠釜闂嵎鏄惁缁撴潫 0 锛氭湭缁撴潫 1锛氱粨鏉�
+ redisCache.setCacheObject(userId + "isOver", 0, 120, TimeUnit.MINUTES);
+
+ //鐢ㄦ潵杩斿洖褰撳墠闇�瑕侀棶鐨勯棶棰樹俊鎭�
+ QuestionMessage returnQues = new QuestionMessage();
+
+ for (IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO : ivrTaskTemplateScriptVOList) {
+ if (ivrTaskTemplateScriptVO.getTargetid() == ivrTaskTemplateVO1.getFirstQuestionNum().intValue())
+ //鑾峰彇绗竴棰樼殑闂
+ returnQues.setNowQuestion(ivrTaskTemplateScriptVO);
+// returnQues.setCode(ivrTaskTemplateScriptVO.getTargetid() + 1);
+ }
+// 璁剧疆寮�鍦虹櫧
+ returnQues.setKcb(ivrTaskTemplateVO1.getRevisitBefore());
+
+ //璁板綍鍝嶅簲
+ redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
+ } else {
+ //鑾峰彇socketMessage閲岀殑QuestionMessage,瀵圭瓟妗堣繘琛屽鐞嗙劧鍚�,鍐嶉棶涓嬩竴閬�
+ Gson gson = new Gson();
+ if (!StringUtils.isEmpty(socketMessage.getContent())) {
+ socketMessage.setQuestionMessage(gson.fromJson(socketMessage.getContent(), QuestionMessage.class));
+ }
+
+ QuestionMessage questionMessage = socketMessage.getQuestionMessage();
+ List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVOList = redisCache.getCacheObject(userId + "ivrTaskTemplateScriptVOList");
+ //鏍规嵁鍓嶇浼犲洖鐨勬潯浠讹紝鑾峰彇褰撳墠棰樼洰
+ IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO = questionMessage.getNowQuestion();
+ if (ivrTaskTemplateScriptVO.getID() == null) {
+ QuestionMessage returnQues = redisCache.getCacheObject(userId + "returnQues");
+ ivrTaskTemplateScriptVO = returnQues.getNowQuestion();
+ }
+ //鑾峰彇妯℃澘淇℃伅
+ IvrTaskTemplateVO ivrTaskTemplateVO1 = redisCache.getCacheObject(userId + "ivrTaskTemplateVO1");
+
+ if (StringUtils.isEmpty(questionMessage.getContent())) {
+ //璋冪敤ivrTaskTemplateScriptVO涓殑slienceText(闈欓粯璇濇湳)
+ Integer noVoice = redisCache.getCacheObject(userId + "noVoice");
+ //瀹為檯闈欓粯娆℃暟鏄惁 绛変簬 妯℃澘涓厤缃殑娆℃暟
+ if (noVoice == ivrTaskTemplateVO1.getNoVoiceNum().intValue()) {
+ //鐢ㄦ潵杩斿洖璋冩煡鐨勬�荤粨鏋�
+ List<IvrTaskTemplateScriptVO> backQuset = new ArrayList<>();
+ backQuset.add(ivrTaskTemplateScriptVO);
+ redisCache.setCacheObject(userId + "backQuset", backQuset, 120, TimeUnit.MINUTES);
+
+ //濡傛灉鍑犳閮芥病鍝嶅簲锛屽氨涓嬩竴棰橈紙闇�瑕佸厛鍒ゆ柇鏄惁鏈変笅涓�棰橈級
+ if (ivrTaskTemplateScriptVO.getTargetid() == ivrTaskTemplateScriptVOList.size()) {
+ //濡傛灉涓嬩竴棰樻病鏈変簡锛屽氨缁撴潫浜�
+ QuestionMessage returnQues = new QuestionMessage();
+// returnQues.setCode(null);
+ 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 {
+ //濡傛灉鏈変笅涓�棰橈紝灏辨牴鎹綋鍓峵eagetID+1 鑾峰彇涓嬩竴棰�
+ QuestionMessage returnQues = getNextQuestion(ivrTaskTemplateScriptVOList, ivrTaskTemplateScriptVO);
+ redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
+ redisCache.setCacheObject(userId + "noVoice", 0, 120, TimeUnit.MINUTES);
+ }
+ } else {
+ //瀹為檯闈欓粯娆℃暟鏄惁 涓嶇瓑浜� 妯℃澘涓厤缃殑娆℃暟
+// QuestionMessage returnQues = redisCache.getCacheObject(userId + "returnQues");
+// returnQues.setContent(null);
+// redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
+
+ Integer noVoice2 = redisCache.getCacheObject(userId + "noVoice");
+ noVoice2 = noVoice2 + 1;
+ redisCache.setCacheObject(userId + "noVoice", noVoice2, 120, TimeUnit.MINUTES);
+ }
+ } else {
+ //閫氳繃valueType鍒ゆ柇鏄粈涔堥鍨嬶紙鍊肩被鍨嬶紙1 閫夐」 2 鏂囨湰 3 鏁板�硷級锛�
+ if (ivrTaskTemplateScriptVO.getValueType() == 2 || ivrTaskTemplateScriptVO.getValueType() == 3) {
+ ivrTaskTemplateScriptVO.setQuestionResult(questionMessage.getContent());
+
+ 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);
+ }
+ }
+ }
+
+ } 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(true);
+ List<IvrTaskTemplateScriptVO> backQuset = redisCache.getCacheObject(userId + "backQuset");
+ //鍖归厤瀹屾垚鍚�,灏嗙粨鏋滀繚瀛樺埌鏂扮殑鏁扮粍
+ backQuset.add(ivrTaskTemplateScriptVO);
+ redisCache.setCacheObject(userId + "backQuset", backQuset, 120, TimeUnit.MINUTES);
+ //灏嗛潤榛樼疆涓�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 + "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;
+ }
+ }
+ }
+ 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 = ivrTaskTemplateVO1.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");
+ IvrTaskTemplateScriptVO nowQuestion = returnQues.getNowQuestion();
+ nowQuestion.setSubmoduleText(ivrLibaExtemplatescript.getSwitchText());
+ nowQuestion.setSubmoduleVoice(ivrLibaExtemplatescript.getSwitchWav());
+ redisCache.setCacheObject(userId + "returnQues", returnQues, 120, TimeUnit.MINUTES);
+ if (ivrLibaExtemplatescript.getIsEnd() == 1) {
+ //灏嗛棶棰樼疆绌�
+ IvrTaskTemplateScriptVO 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");
+ 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 + "ivrTaskTemplateScriptVOList");
+ redisCache.deleteObject(userId + "backQuset");
+ redisCache.deleteObject(userId + "noVoice");
+ redisCache.deleteObject(userId + "returnQues");
+ redisCache.deleteObject(userId + "isOver");
+ redisCache.deleteObject(userId + "ivrTaskTemplateVO1");
+ try {
+ //鏂紑閾炬帴
+ afterConnectionClosed(session, null);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
}
}
+ //鑾峰彇涓嬩竴棰橈紙杩欎釜鏂规硶涓嶉�傚悎閫夐」涓殑nextQuestion锛�
+ private QuestionMessage getNextQuestion(List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVOList, IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO) {
+ QuestionMessage returnQues = new QuestionMessage();
+ for (int j = 0; j < ivrTaskTemplateScriptVOList.size(); j++) {
+ if (ivrTaskTemplateScriptVOList.get(j).getTargetid() == ivrTaskTemplateScriptVO.getTargetid() + 1) {
+ // 瀵硅鏉emplateScriptVO杩涜澶勭悊
+ returnQues.setNowQuestion(ivrTaskTemplateScriptVOList.get(j));
+ }
+ }
+ return returnQues;
+ }
-}
\ No newline at end of file
+}
--
Gitblit v1.9.3