Forráskód Böngészése

考生端websocket

wangliang 4 éve
szülő
commit
d99426cdbc

+ 2 - 2
themis-business/src/main/java/com/qmth/themis/business/constant/SystemConstant.java

@@ -126,8 +126,8 @@ public class SystemConstant {
     public static final String WEBSOCKET_OE_ONLINE_COUNT = "websocket:oe:online:count";
     public static final String WEBSOCKET_UN_NORMAL_LIST = "websocket:oe:unnormal:list";
     public static final String GET = "get";
-    //    public static final long WEBSOCKET_MAX_TIME_OUT = 1 * 60 * 1000;
-    public static final long WEBSOCKET_MAX_TIME_OUT = 10 * 1000;
+        public static final long WEBSOCKET_MAX_TIME_OUT = 3 * 60 * 1000;
+//    public static final long WEBSOCKET_MAX_TIME_OUT = 10 * 1000;
     public static final String ACK_MESSAGE = "ackMessage";
     /**
      * 缓存配置

+ 3 - 1
themis-business/src/main/java/com/qmth/themis/business/dao/TEExamMapper.java

@@ -36,7 +36,9 @@ public interface TEExamMapper extends BaseMapper<TEExam> {
      * 获取考试待考列表
      *
      * @param studentId
+     * @param examId
+     * @param orgId
      * @return
      */
-    public List<Map> getWaitingExam(@Param("studentId") Long studentId);
+    public List<Map> getWaitingExam(@Param("studentId") Long studentId, @Param("examId") Long examId, @Param("orgId") Long orgId);
 }

+ 3 - 1
themis-business/src/main/java/com/qmth/themis/business/dao/TOeExamRecordMapper.java

@@ -22,7 +22,9 @@ public interface TOeExamRecordMapper extends BaseMapper<TOeExamRecord> {
      * 获取考试未完列表
      *
      * @param studentId
+     * @param examId
+     * @param orgId
      * @return
      */
-    public Map getUnFinishExam(@Param("studentId") Long studentId);
+    public Map getUnFinishExam(@Param("studentId") Long studentId, @Param("examId") Long examId, @Param("orgId") Long orgId);
 }

+ 3 - 1
themis-business/src/main/java/com/qmth/themis/business/service/TEExamService.java

@@ -34,9 +34,11 @@ public interface TEExamService extends IService<TEExam> {
      * 获取考试待考列表
      *
      * @param studentId
+	 * @param examId
+	 * @param orgId
      * @return
      */
-    public List<Map> getWaitingExam(Long studentId);
+    public List<Map> getWaitingExam(Long studentId, Long examId, Long orgId);
 
 	/** 开始候考
 	 * @param studentId

+ 4 - 2
themis-business/src/main/java/com/qmth/themis/business/service/TOeExamRecordService.java

@@ -18,9 +18,11 @@ public interface TOeExamRecordService extends IService<TOeExamRecord> {
      * 获取考试未完列表
      *
      * @param studentId
+     * @param examId
+     * @param orgId
      * @return
      */
-    public Map getUnFinishExam(Long studentId);
+    public Map getUnFinishExam(Long studentId, Long examId, Long orgId);
 
-	Long saveByPrepare(Long examId, Long examActivityId, Long examStudentId, Long paperId, Integer serialNumber);
+    Long saveByPrepare(Long examId, Long examActivityId, Long examStudentId, Long paperId, Integer serialNumber);
 }

+ 175 - 180
themis-business/src/main/java/com/qmth/themis/business/service/impl/TEExamServiceImpl.java

@@ -1,16 +1,5 @@
 package com.qmth.themis.business.service.impl;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-
-import javax.annotation.Resource;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.themis.business.bean.exam.ExamPrepareBean;
@@ -22,15 +11,19 @@ import com.qmth.themis.business.cache.bean.ExamStudentCacheBean;
 import com.qmth.themis.business.config.SystemConfig;
 import com.qmth.themis.business.dao.TEExamMapper;
 import com.qmth.themis.business.entity.TEExam;
-import com.qmth.themis.business.service.TEExamActivityService;
-import com.qmth.themis.business.service.TEExamCourseService;
-import com.qmth.themis.business.service.TEExamPaperService;
-import com.qmth.themis.business.service.TEExamService;
-import com.qmth.themis.business.service.TEExamStudentService;
-import com.qmth.themis.business.service.TOeExamRecordService;
+import com.qmth.themis.business.service.*;
 import com.qmth.themis.business.util.OssUtil;
 import com.qmth.themis.business.util.RedisUtil;
 import com.qmth.themis.common.exception.BusinessException;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 
 /**
  * @Description: 考试批次 服务实现类
@@ -42,167 +35,169 @@ import com.qmth.themis.common.exception.BusinessException;
 @Service
 public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> implements TEExamService {
 
-	@Resource
-	TEExamMapper teExamMapper;
-
-	@Resource
-	TEExamActivityService teExamActivityService;
-
-	@Resource
-	TEExamStudentService teExamStudentService;
-
-	@Resource
-	TEExamCourseService teExamCourseService;
-
-	@Resource
-	TEExamPaperService teExamPaperService;
-
-	@Resource
-	TOeExamRecordService toeExamRecordService;
-
-	@Resource
-	RedisUtil redisUtil;
-
-	@Resource
-	SystemConfig systemConfig;
-
-	/**
-	 * 查询考试批次
-	 *
-	 * @param iPage
-	 * @param id
-	 * @param code
-	 * @param name
-	 * @param mode
-	 * @param enable
-	 * @return
-	 */
-	@Override
-	public IPage<TEExam> examQuery(IPage<Map> iPage, Long id, String code, String name, Integer mode, Integer enable) {
-		return teExamMapper.examQuery(iPage, id, code, name, mode, enable);
-	}
-
-	/**
-	 * 获取考试待考列表
-	 *
-	 * @param studentId
-	 * @return
-	 */
-	@Override
-	public List<Map> getWaitingExam(Long studentId) {
-		List<Map> list = teExamMapper.getWaitingExam(studentId);
-		if (Objects.nonNull(list) && list.size() > 0) {
-			for (int i = 0; i < list.size(); i++) {
-				Map m = list.get(i);
-				List<Map> teExamActivityList = teExamActivityService.getWaitingExam(studentId,
-						Long.parseLong(String.valueOf(m.get("id"))),
-						Long.parseLong(String.valueOf(m.get("examActivityId"))));
-				m.put("activities", teExamActivityList);
-			}
-		}
-		return list;
-	}
-
-	@Transactional
-	@Override
-	public ExamPrepareBean prepare(Long studentId, Long examStudentId) {
-		ExamPrepareBean ret = null;
-		ExamStudentCacheBean es = null;
-		es = (ExamStudentCacheBean) redisUtil.get(RedisKeyHelper.examStudentCacheKey(examStudentId));
-		if (es == null) {
-			es = teExamStudentService.getExamStudnetCacheBean(examStudentId);
-		}
-		if (es == null) {
-			throw new BusinessException("未找到考试");
-		}
-
-		if (studentId.equals(es.getStudentId())) {
-			throw new BusinessException("考生Id和当前登录用户不一致");
-		}
-		if (es.getLeftExamCount() == 0) {
-			throw new BusinessException("没有剩余考试次数");
-		}
-		Long activityId = es.getExamActivityId();
-		ExamActivityCacheBean ac = teExamActivityService.getExamActivityCacheBean(activityId);
-		if (ac == null) {
-			throw new BusinessException("未找到场次");
-		}
-		Date now = new Date();
-		Long start = ac.getStartTime().getTime() - (ac.getPrepareSeconds() * 1000);
-		Long end = ac.getStartTime().getTime() + (ac.getOpeningSeconds() * 1000);
-		if (now.getTime() < start) {
-			throw new BusinessException("没有到允许开考的时间");
-		}
-		if (now.getTime() > end) {
-			throw new BusinessException("允许开考的时间已结束");
-		}
-		ExamCourseCacheBean ec = teExamCourseService.getExamCourseCacheBean(es.getExamId(), es.getCourseCode());
-		if (ec == null) {
-			throw new BusinessException("未找到考试科目");
-		}
-		if (ec.getPaperIds() == null) {
-			throw new BusinessException("考试科目未绑定试卷");
-		}
-		if (ec.getHasAnswer() == null || ec.getHasAnswer().intValue() == 0) {
-			throw new BusinessException("考试科目答案未补全");
-		}
-		// 根据权重选中试卷
-		Long paperId = ec.getPaperIds().get(getPaperByWeight(ec.getPaperWeight()));
-		ExamPaperCacheBean ep = teExamPaperService.getExamPaperCacheBean(paperId);
-		if (ep == null) {
-			throw new BusinessException("未找到试卷:" + paperId);
-		}
-		if (StringUtils.isBlank(ep.getAnswerPath())) {
-			throw new BusinessException("试卷答案未上传:" + paperId);
-		}
-
-		// 写入次数
-		Integer serialNumber = es.getCurrentSerialNumber();
-		if (serialNumber == null) {
-			serialNumber = 0;
-		}
-		es.setCurrentSerialNumber(serialNumber + 1);
-
-		Long recordId = toeExamRecordService.saveByPrepare(es.getExamId(), es.getExamActivityId(), examStudentId,
-				paperId, es.getCurrentSerialNumber());
-
-		Integer leftExamCount = es.getLeftExamCount();
-		es.setLeftExamCount(leftExamCount - 1);
-
-		es.setCurrentRecordId(recordId);
-
-		ExamPrepareBean prepare = new ExamPrepareBean();
-		prepare.setRecordId(recordId);
-		prepare.setAudioPlayTime(ep.getAudioPlayTime());
-		prepare.setHasAudio((ep.getHasAudio() == null || ep.getHasAudio().intValue() == 0 ? false : true));
-		prepare.setObjectiveShuffle(
-				(ec.getObjectiveShuffle() == null || ec.getObjectiveShuffle().intValue() == 0 ? false : true));
-		prepare.setOptionShuffle(
-				(ec.getOptionShuffle() == null || ec.getOptionShuffle().intValue() == 0 ? false : true));
-		String paperurl = OssUtil.getUrlForPrivateBucket(systemConfig.getOssEnv(3), ep.getPaperPath());
-		String structurl = OssUtil.getUrlForPrivateBucket(systemConfig.getOssEnv(3), ep.getStructPath());
-		prepare.setPaperUrl(paperurl);
-		prepare.setStructUrl(structurl);
-
-		// 更新考生缓存
-		redisUtil.set(RedisKeyHelper.examStudentCacheKey(examStudentId), es);
-
-		return ret;
-	}
-
-	/**
-	 * 根据设定几率取出一套试卷
-	 */
-	private int getPaperByWeight(List<Double> paperWeight) {
-		// 从1开始
-		double r = Math.random();
-		for (int i = 0; i < paperWeight.size(); i++) {
-			r -= paperWeight.get(i);
-			if (r <= 0.0d) {
-				return i;// 选中
-			}
-		}
-
-		return -1;
-	}
+    @Resource
+    TEExamMapper teExamMapper;
+
+    @Resource
+    TEExamActivityService teExamActivityService;
+
+    @Resource
+    TEExamStudentService teExamStudentService;
+
+    @Resource
+    TEExamCourseService teExamCourseService;
+
+    @Resource
+    TEExamPaperService teExamPaperService;
+
+    @Resource
+    TOeExamRecordService toeExamRecordService;
+
+    @Resource
+    RedisUtil redisUtil;
+
+    @Resource
+    SystemConfig systemConfig;
+
+    /**
+     * 查询考试批次
+     *
+     * @param iPage
+     * @param id
+     * @param code
+     * @param name
+     * @param mode
+     * @param enable
+     * @return
+     */
+    @Override
+    public IPage<TEExam> examQuery(IPage<Map> iPage, Long id, String code, String name, Integer mode, Integer enable) {
+        return teExamMapper.examQuery(iPage, id, code, name, mode, enable);
+    }
+
+    /**
+     * 获取考试待考列表
+     *
+     * @param studentId
+     * @param examId
+     * @param orgId
+     * @return
+     */
+    @Override
+    public List<Map> getWaitingExam(Long studentId, Long examId, Long orgId) {
+        List<Map> list = teExamMapper.getWaitingExam(studentId, examId, orgId);
+        if (Objects.nonNull(list) && list.size() > 0) {
+            for (int i = 0; i < list.size(); i++) {
+                Map m = list.get(i);
+                List<Map> teExamActivityList = teExamActivityService.getWaitingExam(studentId,
+                        Long.parseLong(String.valueOf(m.get("id"))),
+                        Long.parseLong(String.valueOf(m.get("examActivityId"))));
+                m.put("activities", teExamActivityList);
+            }
+        }
+        return list;
+    }
+
+    @Transactional
+    @Override
+    public ExamPrepareBean prepare(Long studentId, Long examStudentId) {
+        ExamPrepareBean ret = null;
+        ExamStudentCacheBean es = null;
+        es = (ExamStudentCacheBean) redisUtil.get(RedisKeyHelper.examStudentCacheKey(examStudentId));
+        if (es == null) {
+            es = teExamStudentService.getExamStudnetCacheBean(examStudentId);
+        }
+        if (es == null) {
+            throw new BusinessException("未找到考试");
+        }
+
+        if (studentId.equals(es.getStudentId())) {
+            throw new BusinessException("考生Id和当前登录用户不一致");
+        }
+        if (es.getLeftExamCount() == 0) {
+            throw new BusinessException("没有剩余考试次数");
+        }
+        Long activityId = es.getExamActivityId();
+        ExamActivityCacheBean ac = teExamActivityService.getExamActivityCacheBean(activityId);
+        if (ac == null) {
+            throw new BusinessException("未找到场次");
+        }
+        Date now = new Date();
+        Long start = ac.getStartTime().getTime() - (ac.getPrepareSeconds() * 1000);
+        Long end = ac.getStartTime().getTime() + (ac.getOpeningSeconds() * 1000);
+        if (now.getTime() < start) {
+            throw new BusinessException("没有到允许开考的时间");
+        }
+        if (now.getTime() > end) {
+            throw new BusinessException("允许开考的时间已结束");
+        }
+        ExamCourseCacheBean ec = teExamCourseService.getExamCourseCacheBean(es.getExamId(), es.getCourseCode());
+        if (ec == null) {
+            throw new BusinessException("未找到考试科目");
+        }
+        if (ec.getPaperIds() == null) {
+            throw new BusinessException("考试科目未绑定试卷");
+        }
+        if (ec.getHasAnswer() == null || ec.getHasAnswer().intValue() == 0) {
+            throw new BusinessException("考试科目答案未补全");
+        }
+        // 根据权重选中试卷
+        Long paperId = ec.getPaperIds().get(getPaperByWeight(ec.getPaperWeight()));
+        ExamPaperCacheBean ep = teExamPaperService.getExamPaperCacheBean(paperId);
+        if (ep == null) {
+            throw new BusinessException("未找到试卷:" + paperId);
+        }
+        if (StringUtils.isBlank(ep.getAnswerPath())) {
+            throw new BusinessException("试卷答案未上传:" + paperId);
+        }
+
+        // 写入次数
+        Integer serialNumber = es.getCurrentSerialNumber();
+        if (serialNumber == null) {
+            serialNumber = 0;
+        }
+        es.setCurrentSerialNumber(serialNumber + 1);
+
+        Long recordId = toeExamRecordService.saveByPrepare(es.getExamId(), es.getExamActivityId(), examStudentId,
+                paperId, es.getCurrentSerialNumber());
+
+        Integer leftExamCount = es.getLeftExamCount();
+        es.setLeftExamCount(leftExamCount - 1);
+
+        es.setCurrentRecordId(recordId);
+
+        ExamPrepareBean prepare = new ExamPrepareBean();
+        prepare.setRecordId(recordId);
+        prepare.setAudioPlayTime(ep.getAudioPlayTime());
+        prepare.setHasAudio((ep.getHasAudio() == null || ep.getHasAudio().intValue() == 0 ? false : true));
+        prepare.setObjectiveShuffle(
+                (ec.getObjectiveShuffle() == null || ec.getObjectiveShuffle().intValue() == 0 ? false : true));
+        prepare.setOptionShuffle(
+                (ec.getOptionShuffle() == null || ec.getOptionShuffle().intValue() == 0 ? false : true));
+        String paperurl = OssUtil.getUrlForPrivateBucket(systemConfig.getOssEnv(3), ep.getPaperPath());
+        String structurl = OssUtil.getUrlForPrivateBucket(systemConfig.getOssEnv(3), ep.getStructPath());
+        prepare.setPaperUrl(paperurl);
+        prepare.setStructUrl(structurl);
+
+        // 更新考生缓存
+        redisUtil.set(RedisKeyHelper.examStudentCacheKey(examStudentId), es);
+
+        return ret;
+    }
+
+    /**
+     * 根据设定几率取出一套试卷
+     */
+    private int getPaperByWeight(List<Double> paperWeight) {
+        // 从1开始
+        double r = Math.random();
+        for (int i = 0; i < paperWeight.size(); i++) {
+            r -= paperWeight.get(i);
+            if (r <= 0.0d) {
+                return i;// 选中
+            }
+        }
+
+        return -1;
+    }
 }

+ 11 - 2
themis-business/src/main/java/com/qmth/themis/business/service/impl/TOeExamRecordServiceImpl.java

@@ -32,13 +32,22 @@ public class TOeExamRecordServiceImpl extends ServiceImpl<TOeExamRecordMapper, T
     @Resource
     RedisUtil redisUtil;
 
+    /**
+     * 获取考试未完列表
+     *
+     * @param studentId
+     * @param examId
+     * @param orgId
+     * @return
+     */
     @Override
-    public Map getUnFinishExam(Long studentId) {
-        Map unFinishExam = tOeExamRecordMapper.getUnFinishExam(studentId);
+    public Map getUnFinishExam(Long studentId, Long examId, Long orgId) {
+        Map unFinishExam = tOeExamRecordMapper.getUnFinishExam(studentId, examId, orgId);
         if (Objects.nonNull(unFinishExam)) {
             Map finalMap = new HashMap();
             Map<String, Object> waitingMap = new HashMap();
             waitingMap.put("id", unFinishExam.get("id"));
+            waitingMap.put("examActivityId", unFinishExam.get("examActivityId"));
             waitingMap.put("name", unFinishExam.get("name"));
             waitingMap.put("mode", unFinishExam.get("mode"));
             waitingMap.put("preNotice", unFinishExam.get("preNotice"));

+ 7 - 1
themis-business/src/main/resources/mapper/TEExamMapper.xml

@@ -29,7 +29,7 @@
         from
         (
             select
-            distinct tee.id, tee.name, tee.mode, tee.pre_notice as preNotice, tee.pre_notice_stay_seconds as
+            distinct tee.id, teea.id as examActivityId,tee.name, tee.mode, tee.pre_notice as preNotice, tee.pre_notice_stay_seconds as
             preNoticeStaySeconds, tee.post_notice as postNotice, datediff(now(), teea.start_time) as reallyTime
         from
         t_e_exam_student tees
@@ -46,6 +46,12 @@
                 and tee.enable = 1
                 and teea.enable = 1
                 and tees.enable = 1
+                <if test="orgId != null and orgId != ''">
+                    and tee.org_id = #{orgId}
+                </if>
+                <if test="examId != null and examId != ''">
+                    and tee.id = #{examId}
+                </if>
                 and teea.start_time <![CDATA[ >= ]]> date_add(now(), interval IFNULL(teea.opening_seconds, tee.opening_seconds) second)
         </where>
             ) t

+ 6 - 0
themis-business/src/main/resources/mapper/TOeExamRecordMapper.xml

@@ -55,6 +55,12 @@
             and tee.enable = 1
             and teea.enable = 1
             and tees.enable = 1
+            <if test="orgId != null and orgId != ''">
+                and tee.org_id = #{orgId}
+            </if>
+            <if test="examId != null and examId != ''">
+                and tee.id = #{examId}
+            </if>
         </where>
     </select>
 </mapper>

+ 23 - 10
themis-exam/src/main/java/com/qmth/themis/exam/api/TEStudentController.java

@@ -76,18 +76,29 @@ public class TEStudentController {
     @ApiOperation(value = "学生登录接口")
     @RequestMapping(value = "/login", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "学生信息", response = TEStudent.class)})
-    public Result login(@ApiParam(value = "学生信息", required = true) @RequestBody TEStudent teStudent) throws NoSuchAlgorithmException {
-        if (Objects.isNull(teStudent)) {
+    public Result login(@ApiParam(value = "学生信息", required = true) @RequestBody Map map) throws NoSuchAlgorithmException {
+        if (Objects.isNull(map)) {
             throw new BusinessException(ExceptionResultEnum.STUDENT_IS_NULL);
         }
-        if (Objects.isNull(teStudent.getIdentity()) || Objects.equals(teStudent.getIdentity(), "")) {
+        if (Objects.isNull(map.get("identity")) || Objects.equals(map.get("identity"), "")) {
             throw new BusinessException(ExceptionResultEnum.LOGIN_NAME_IS_NULL);
         }
-        if (Objects.isNull(teStudent.getPassword()) || Objects.equals(teStudent.getPassword(), "")) {
+        if (Objects.isNull(map.get("password")) || Objects.equals(map.get("password"), "")) {
             throw new BusinessException(ExceptionResultEnum.PASSWORD_IS_NULL);
         }
-        String identity = teStudent.getIdentity();
-        String password = teStudent.getPassword();
+        Long orgId = null;
+        if (Objects.nonNull(map.get("orgId"))) {
+            orgId = Long.parseLong(String.valueOf(map.get("orgId")));
+        }
+        Long examId = null;
+        if (Objects.nonNull(map.get("examId"))) {
+            examId = Long.parseLong(String.valueOf(map.get("examId")));
+        }
+        if (Objects.isNull(orgId) && Objects.isNull(examId)) {
+            throw new BusinessException("机构id或考试id必须有一个");
+        }
+        String identity = String.valueOf(map.get("identity"));
+        String password = String.valueOf(map.get("password"));
 
         QueryWrapper<TEStudent> wrapper = new QueryWrapper<>();
         wrapper.lambda().eq(TEStudent::getIdentity, identity);
@@ -102,17 +113,19 @@ public class TEStudentController {
         if (!Objects.equals(loginPassword, aesPassword)) {
             throw new BusinessException(ExceptionResultEnum.PASSWORD_NO);
         }
-        return userLoginCommon(user);
+        return userLoginCommon(user, examId, orgId);
     }
 
     /**
      * 学生登录公用
      *
      * @param teStudent
+     * @param examId
+     * @param orgId
      * @return
      * @throws NoSuchAlgorithmException
      */
-    public Result userLoginCommon(TEStudent teStudent) throws NoSuchAlgorithmException {
+    public Result userLoginCommon(TEStudent teStudent, Long examId, Long orgId) throws NoSuchAlgorithmException {
         //停用
         if (teStudent.getEnable().intValue() == 0) {
             throw new BusinessException(ExceptionResultEnum.STUDENT_ENABLE);
@@ -139,9 +152,9 @@ public class TEStudentController {
         String test = SignatureInfo.build(SignatureType.TOKEN, sessionId, token);
         Map<String, Object> map = new HashMap<>();
         //获取未完/待考列表
-        Map unFinishExam = tOeExamRecordService.getUnFinishExam(teStudent.getId());
+        Map unFinishExam = tOeExamRecordService.getUnFinishExam(teStudent.getId(), examId, orgId);
         if (Objects.isNull(unFinishExam)) {
-            List<Map> list = teExamService.getWaitingExam(teStudent.getId());
+            List<Map> list = teExamService.getWaitingExam(teStudent.getId(), examId, orgId);
             if (Objects.nonNull(list) && list.size() > 0) {
                 map.put("waiting", list);
             }

+ 1 - 1
themis-exam/src/main/java/com/qmth/themis/exam/websocket/WebSocketServer.java

@@ -148,7 +148,7 @@ public class WebSocketServer
                 //发送延时mq消息start
                 MqDtoService mqDtoService = SpringContextHolder.getBean(MqDtoService.class);
                 DictionaryConfig dictionaryConfig = SpringContextHolder.getBean(DictionaryConfig.class);
-                tranMap.put("timeOut", SystemConstant.mqDelayLevel.get("10s"));
+                tranMap.put("timeOut", SystemConstant.mqDelayLevel.get("2m"));
                 MqDto mqDto = new MqDto(dictionaryConfig.mqConfigDomain().getWebsocketUnNormalTopic(), dictionaryConfig.mqConfigDomain().getWebsocketUnNormalTopicOeTag(), SystemOperationEnum.OE_NET_UN_NORMAL, MqEnum.WEBSOCKET_UN_NORMAL_LOG, String.valueOf(this.recordId), this.tranMap, this.sessionId);
                 mqDtoService.assembleSendAsyncDelayMsg(mqDto);
                 //发送延时mq消息end