Переглянути джерело

Merge branch 'dev' of http://git.qmth.com.cn/themis/backend-service.git into dev

xiatian 4 роки тому
батько
коміт
042f559691

+ 31 - 34
themis-backend/src/main/java/com/qmth/themis/backend/start/StartRunning.java

@@ -1,13 +1,7 @@
 package com.qmth.themis.backend.start;
 
-import com.qmth.themis.backend.config.DictionaryConfig;
-import com.qmth.themis.business.constant.SpringContextHolder;
-import com.qmth.themis.business.constant.SystemConstant;
-import com.qmth.themis.mq.enums.MqGroupEnum;
-import com.qmth.themis.mq.enums.MqTagEnum;
-import com.qmth.themis.mq.enums.MqTopicEnum;
-import com.qmth.themis.mq.listener.RocketMessageConsumer;
-import com.qmth.themis.mq.templete.impl.*;
+import javax.annotation.Resource;
+
 import org.apache.rocketmq.common.protocol.heartbeat.MessageModel;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -15,9 +9,18 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.CommandLineRunner;
 import org.springframework.stereotype.Component;
 
-import javax.annotation.Resource;
-import java.util.Map;
-import java.util.Objects;
+import com.qmth.themis.business.constant.SpringContextHolder;
+import com.qmth.themis.business.constant.SystemConstant;
+import com.qmth.themis.mq.enums.MqGroupEnum;
+import com.qmth.themis.mq.enums.MqTagEnum;
+import com.qmth.themis.mq.enums.MqTopicEnum;
+import com.qmth.themis.mq.listener.RocketMessageConsumer;
+import com.qmth.themis.mq.templete.impl.CalculateObjectiveScoreConcurrentlyImpl;
+import com.qmth.themis.mq.templete.impl.FaceVerifyConcurrentlyImpl;
+import com.qmth.themis.mq.templete.impl.SessionConcurrentlyImpl;
+import com.qmth.themis.mq.templete.impl.TaskConcurrentlyImpl;
+import com.qmth.themis.mq.templete.impl.UserLogConcurrentlyImpl;
+import com.qmth.themis.mq.templete.impl.WebsocketUnNormalConcurrentlyImpl;
 
 /**
  * @Description: 服务启动时初始化运行,哪个微服务模块需要则拿此模版去用
@@ -33,25 +36,21 @@ public class StartRunning implements CommandLineRunner {
     @Resource
     RocketMessageConsumer rocketMessageConsumer;
 
-    @Value("${rocketmq.name-server}")
+    @Value("rocketmq.name-server")
     String nameServer;
 
-    @Resource
-    DictionaryConfig dictionaryConfig;
-
     @Override
     public void run(String... args) throws Exception {
         log.info("服务器启动时执行 start");
-        Map<String, String> map = dictionaryConfig.mqDomain().getGroupMap();
         /**
          * session mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerWebGroup.getCode() : map.get(MqGroupEnum.sessionConsumerWebGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.web.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerWinGroup.getCode() : map.get(MqGroupEnum.sessionConsumerWinGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.win.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerMacGroup.getCode() : map.get(MqGroupEnum.sessionConsumerMacGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.mac.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerWxappGroup.getCode() : map.get(MqGroupEnum.sessionConsumerWxappGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.wxapp.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerIosGroup.getCode() : map.get(MqGroupEnum.sessionConsumerIosGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.ios.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerAndroidGroup.getCode() : map.get(MqGroupEnum.sessionConsumerAndroidGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.android.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerWebGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.web.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerWinGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.win.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerMacGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.mac.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerWxappGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.wxapp.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerIosGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.ios.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerAndroidGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.android.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
         /**
          * session mq end
          */
@@ -59,8 +58,8 @@ public class StartRunning implements CommandLineRunner {
         /**
          * userLog mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.userLogConsumerUserGroup.getCode() : map.get(MqGroupEnum.userLogConsumerUserGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.user.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.userLogConsumerStudentGroup.getCode() : map.get(MqGroupEnum.userLogConsumerStudentGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.student.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.userLogConsumerUserGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.user.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.userLogConsumerStudentGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.student.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
         /**
          * userLog mq end
          */
@@ -68,10 +67,10 @@ public class StartRunning implements CommandLineRunner {
         /**
          * task mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerExamStudentImportGroup.getCode() : map.get(MqGroupEnum.taskConsumerExamStudentImportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.examStudentImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerRoomCodeImportGroup.getCode() : map.get(MqGroupEnum.taskConsumerRoomCodeImportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.roomCodeImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerRoomCodeExportGroup.getCode() : map.get(MqGroupEnum.taskConsumerRoomCodeExportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.roomCodeExport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerExamPaperImportGroup.getCode() : map.get(MqGroupEnum.taskConsumerExamPaperImportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.examPaperImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerExamStudentImportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.examStudentImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerRoomCodeImportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.roomCodeImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerRoomCodeExportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.roomCodeExport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerExamPaperImportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.examPaperImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
         /**
          * task mq end
          */
@@ -79,21 +78,19 @@ public class StartRunning implements CommandLineRunner {
         /**
          * websocket mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.websocketConsumerUnNormalGroup.getCode() : map.get(MqGroupEnum.websocketConsumerUnNormalGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.unNormal.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(WebsocketUnNormalConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.websocketConsumerUnNormalGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.unNormal.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(WebsocketUnNormalConcurrentlyImpl.class));
         /**
          * websocket mq end
          */
         //计算客观分
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.calculateObjectiveScoreGroup.getCode() : map.get(MqGroupEnum.calculateObjectiveScoreGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.calculateObjectiveScore.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(CalculateObjectiveScoreConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.calculateObjectiveScoreGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.calculateObjectiveScore.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(CalculateObjectiveScoreConcurrentlyImpl.class));
 
         //人脸验证保存
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.faceVerifySaveGroup.getCode() : map.get(MqGroupEnum.faceVerifySaveGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.faceVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(FaceVerifyConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.faceVerifySaveGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.faceVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(FaceVerifyConcurrentlyImpl.class));
 
         //活体验证保存
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.livenessVerifySaveGroup.getCode() : map.get(MqGroupEnum.livenessVerifySaveGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.livenessVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(LivenessVerifyConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.livenessVerifySaveGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.livenessVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(FaceVerifyConcurrentlyImpl.class));
 
-        //考试断点记录
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.examBreakHistoryGroup.getCode() : map.get(MqGroupEnum.examBreakHistoryGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.examBreakHistory.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(ExamBreakHistoryConcurrentlyImpl.class));
         SystemConstant.initTempFiles();
         log.info("服务器启动时执行 end");
     }

+ 10 - 9
themis-exam/src/main/java/com/qmth/themis/exam/api/TEExamController.java

@@ -7,6 +7,7 @@ import java.util.Objects;
 
 import javax.annotation.Resource;
 
+import com.qmth.themis.business.dto.cache.TEStudentCacheDto;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -75,7 +76,7 @@ public class TEExamController {
     @RequestMapping(value = "/waiting", method = RequestMethod.GET)
     @ApiResponses({@ApiResponse(code = 200, message = "考试信息", response = TEExamResultDto.class)})
     public Result waiting() {
-        TEStudent teStudent = (TEStudent) ServletUtil.getRequestStudentAccount();
+        TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
         List<TEExamDto> list = teExamService.getWaitingExam(teStudent.getId(), null, teStudent.getOrgId());
         Map<String, Object> map = new HashMap<>();
         if (Objects.nonNull(list) && list.size() > 0) {
@@ -88,7 +89,7 @@ public class TEExamController {
     @RequestMapping(value = "/prepare", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "试卷信息")})
     public Result prepare(@ApiParam(value = "考生ID", required = true) @RequestParam Long examStudentId) {
-        TEStudent teStudent = (TEStudent) ServletUtil.getRequestStudentAccount();
+        TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
         String lockKey = SystemConstant.REDIS_LOCK_STUDENT_PREFIX + teStudent.getId();
         Boolean lock = redisUtil.lock(lockKey, SystemConstant.REDIS_CACHE_TIME_OUT);
         if (!lock) {
@@ -106,7 +107,7 @@ public class TEExamController {
     @ApiResponses({@ApiResponse(code = 200, message = "试卷信息")})
     public Result start(@ApiParam(value = "考试记录ID", required = true) @RequestParam Long recordId,
                                @ApiParam(value = "断点续考原因", required = false) @RequestParam String reason) {
-        TEStudent teStudent = (TEStudent) ServletUtil.getRequestStudentAccount();
+        TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
         String lockKey = SystemConstant.REDIS_LOCK_STUDENT_PREFIX + teStudent.getId();
         Boolean lock = redisUtil.lock(lockKey, SystemConstant.REDIS_CACHE_TIME_OUT);
         if (!lock) {
@@ -124,7 +125,7 @@ public class TEExamController {
     @ApiResponses({@ApiResponse(code = 200, message = "试卷信息")})
     public Result studentPaperStruct(@ApiParam(value = "考试记录ID", required = true) @RequestParam Long recordId,
                                    @ApiParam(value = "试卷结构json字符串", required = true) @RequestParam String content) {
-        TEStudent teStudent = (TEStudent) ServletUtil.getRequestStudentAccount();
+        TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
         String lockKey = SystemConstant.REDIS_LOCK_STUDENT_PREFIX + teStudent.getId();
         Boolean lock = redisUtil.lock(lockKey, SystemConstant.REDIS_CACHE_TIME_OUT);
         if (!lock) {
@@ -147,7 +148,7 @@ public class TEExamController {
                              @ApiParam(value = "答案json字符串", required = true) @RequestParam String answer,
                              @ApiParam(value = "时间戳", required = true) @RequestParam Long version,
                              @ApiParam(value = "作答累计秒数", required = false) @RequestParam Integer durationSeconds) {
-        TEStudent teStudent = (TEStudent) ServletUtil.getRequestStudentAccount();
+        TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
         String lockKey = SystemConstant.REDIS_LOCK_STUDENT_PREFIX + teStudent.getId();
         Boolean lock = redisUtil.lock(lockKey, SystemConstant.REDIS_CACHE_TIME_OUT);
         if (!lock) {
@@ -169,7 +170,7 @@ public class TEExamController {
     public Result audioLeftPlayCountSubmit(@ApiParam(value = "考试记录ID", required = true) @RequestParam Long recordId,
                                             @ApiParam(value = "音频标识", required = true) @RequestParam String key,
                                             @ApiParam(value = "剩余播放次数", required = true) @RequestParam Integer count) {
-        TEStudent teStudent = (TEStudent) ServletUtil.getRequestStudentAccount();
+        TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
         String lockKey = SystemConstant.REDIS_LOCK_STUDENT_PREFIX + teStudent.getId();
         Boolean lock = redisUtil.lock(lockKey, SystemConstant.REDIS_CACHE_TIME_OUT);
         if (!lock) {
@@ -189,7 +190,7 @@ public class TEExamController {
                                          @ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file,
                                          @ApiParam(value = "后缀名", required = true) @RequestParam String suffix,
                                          @ApiParam(value = "md5", required = true) @RequestParam String md5) {
-        TEStudent teStudent = (TEStudent) ServletUtil.getRequestStudentAccount();
+        TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
         String lockKey = SystemConstant.REDIS_LOCK_STUDENT_PREFIX + teStudent.getId();
         Boolean lock = redisUtil.lock(lockKey, SystemConstant.REDIS_CACHE_TIME_OUT);
         if (!lock) {
@@ -206,7 +207,7 @@ public class TEExamController {
     @RequestMapping(value = "/resume", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "试卷信息")})
     public Result resume(@ApiParam(value = "考试记录ID", required = true) @RequestParam Long recordId) {
-        TEStudent teStudent = (TEStudent) ServletUtil.getRequestStudentAccount();
+        TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
         String lockKey = SystemConstant.REDIS_LOCK_STUDENT_PREFIX + teStudent.getId();
         Boolean lock = redisUtil.lock(lockKey, SystemConstant.REDIS_CACHE_TIME_OUT);
         if (!lock) {
@@ -225,7 +226,7 @@ public class TEExamController {
     public Result finish(@ApiParam(value = "考试记录ID", required = true) @RequestParam Long recordId,
                                  @ApiParam(value = "结束类型", required = true) @RequestParam String type,
                                  @ApiParam(value = "总用时秒数", required = true) @RequestParam Integer durationSeconds) {
-        TEStudent teStudent = (TEStudent) ServletUtil.getRequestStudentAccount();
+        TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
         String lockKey = SystemConstant.REDIS_LOCK_STUDENT_PREFIX + teStudent.getId();
         Boolean lock = redisUtil.lock(lockKey, SystemConstant.REDIS_CACHE_TIME_OUT);
         if (!lock) {

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

@@ -239,7 +239,7 @@ public class TEStudentController {
     @RequestMapping(value = "/logout", method = RequestMethod.GET)
     @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class)})
     public Result logout() throws NoSuchAlgorithmException {
-        TEStudent teStudent = (TEStudent) ServletUtil.getRequestStudentAccount();
+        TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
         TBSession tbSession = (TBSession) ServletUtil.getRequestSession();
         if (Objects.isNull(tbSession)) {
             throw new BusinessException(ExceptionResultEnum.LOGIN_NO);

+ 30 - 32
themis-exam/src/main/java/com/qmth/themis/exam/start/StartRunning.java

@@ -1,13 +1,9 @@
 package com.qmth.themis.exam.start;
 
+import javax.annotation.Resource;
+
 import com.qmth.themis.business.constant.SpringContextHolder;
-import com.qmth.themis.business.constant.SystemConstant;
-import com.qmth.themis.exam.config.DictionaryConfig;
 import com.qmth.themis.exam.websocket.WebSocketOeServer;
-import com.qmth.themis.mq.enums.MqGroupEnum;
-import com.qmth.themis.mq.enums.MqTagEnum;
-import com.qmth.themis.mq.enums.MqTopicEnum;
-import com.qmth.themis.mq.listener.RocketMessageConsumer;
 import com.qmth.themis.mq.templete.impl.*;
 import org.apache.rocketmq.common.protocol.heartbeat.MessageModel;
 import org.slf4j.Logger;
@@ -16,9 +12,11 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.CommandLineRunner;
 import org.springframework.stereotype.Component;
 
-import javax.annotation.Resource;
-import java.util.Map;
-import java.util.Objects;
+import com.qmth.themis.business.constant.SystemConstant;
+import com.qmth.themis.mq.enums.MqGroupEnum;
+import com.qmth.themis.mq.enums.MqTagEnum;
+import com.qmth.themis.mq.enums.MqTopicEnum;
+import com.qmth.themis.mq.listener.RocketMessageConsumer;
 
 /**
  * @Description: 服务启动时初始化运行,哪个微服务模块需要则拿此模版去用
@@ -34,25 +32,21 @@ public class StartRunning implements CommandLineRunner {
     @Resource
     RocketMessageConsumer rocketMessageConsumer;
 
-    @Value("${rocketmq.name-server}")
+    @Value("rocketmq.name-server")
     String nameServer;
 
-    @Resource
-    DictionaryConfig dictionaryConfig;
-
     @Override
     public void run(String... args) throws Exception {
         log.info("服务器启动时执行 start");
-        Map<String, String> map = dictionaryConfig.mqDomain().getGroupMap();
         /**
          * session mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerWebGroup.getCode() : map.get(MqGroupEnum.sessionConsumerWebGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.web.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerWinGroup.getCode() : map.get(MqGroupEnum.sessionConsumerWinGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.win.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerMacGroup.getCode() : map.get(MqGroupEnum.sessionConsumerMacGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.mac.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerWxappGroup.getCode() : map.get(MqGroupEnum.sessionConsumerWxappGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.wxapp.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerIosGroup.getCode() : map.get(MqGroupEnum.sessionConsumerIosGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.ios.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerAndroidGroup.getCode() : map.get(MqGroupEnum.sessionConsumerAndroidGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.android.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerWebGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.web.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerWinGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.win.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerMacGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.mac.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerWxappGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.wxapp.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerIosGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.ios.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerAndroidGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.android.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
         /**
          * session mq end
          */
@@ -60,8 +54,8 @@ public class StartRunning implements CommandLineRunner {
         /**
          * userLog mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.userLogConsumerUserGroup.getCode() : map.get(MqGroupEnum.userLogConsumerUserGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.user.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.userLogConsumerStudentGroup.getCode() : map.get(MqGroupEnum.userLogConsumerStudentGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.student.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.userLogConsumerUserGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.user.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.userLogConsumerStudentGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.student.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
         /**
          * userLog mq end
          */
@@ -69,10 +63,10 @@ public class StartRunning implements CommandLineRunner {
         /**
          * task mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerExamStudentImportGroup.getCode() : map.get(MqGroupEnum.taskConsumerExamStudentImportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.examStudentImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerRoomCodeImportGroup.getCode() : map.get(MqGroupEnum.taskConsumerRoomCodeImportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.roomCodeImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerRoomCodeExportGroup.getCode() : map.get(MqGroupEnum.taskConsumerRoomCodeExportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.roomCodeExport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerExamPaperImportGroup.getCode() : map.get(MqGroupEnum.taskConsumerExamPaperImportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.examPaperImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerExamStudentImportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.examStudentImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerRoomCodeImportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.roomCodeImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerRoomCodeExportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.roomCodeExport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerExamPaperImportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.examPaperImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
         /**
          * task mq end
          */
@@ -80,22 +74,26 @@ public class StartRunning implements CommandLineRunner {
         /**
          * websocket mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.websocketConsumerUnNormalGroup.getCode() : map.get(MqGroupEnum.websocketConsumerUnNormalGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.unNormal.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(WebsocketUnNormalConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.websocketConsumerOeGroup.getCode() : map.get(MqGroupEnum.websocketConsumerOeGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.oe.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(WebSocketOeServer.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.websocketConsumerUnNormalGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.unNormal.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(WebsocketUnNormalConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.websocketConsumerOeGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.oe.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(WebSocketOeServer.class));
         /**
          * websocket mq end
          */
         //计算客观分
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.calculateObjectiveScoreGroup.getCode() : map.get(MqGroupEnum.calculateObjectiveScoreGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.calculateObjectiveScore.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(CalculateObjectiveScoreConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.calculateObjectiveScoreGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.calculateObjectiveScore.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(CalculateObjectiveScoreConcurrentlyImpl.class));
 
         //人脸验证保存
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.faceVerifySaveGroup.getCode() : map.get(MqGroupEnum.faceVerifySaveGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.faceVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(FaceVerifyConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.faceVerifySaveGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.faceVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(FaceVerifyConcurrentlyImpl.class));
 
         //活体验证保存
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.livenessVerifySaveGroup.getCode() : map.get(MqGroupEnum.livenessVerifySaveGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.livenessVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(LivenessVerifyConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.livenessVerifySaveGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.livenessVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(LivenessVerifyConcurrentlyImpl.class));
+
+        //考试记录数据持久化
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.examRecordPersistedGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.examRecordPersisted.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(ExamRecordPersistedConcurrentlyImpl.class));
 
         //考试断点记录
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.examBreakHistoryGroup.getCode() : map.get(MqGroupEnum.examBreakHistoryGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.examBreakHistory.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(ExamBreakHistoryConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.examBreakHistoryGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.examBreakHistory.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(ExamBreakHistoryConcurrentlyImpl.class));
+
         SystemConstant.initTempFiles();
         log.info("服务器启动时执行 end");
     }

+ 33 - 38
themis-task/src/main/java/com/qmth/themis/task/start/StartRunning.java

@@ -1,27 +1,27 @@
 package com.qmth.themis.task.start;
 
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import com.qmth.themis.mq.templete.impl.*;
+import org.apache.rocketmq.common.protocol.heartbeat.MessageModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.stereotype.Component;
+
 import com.qmth.themis.business.constant.SpringContextHolder;
 import com.qmth.themis.mq.enums.MqGroupEnum;
 import com.qmth.themis.mq.enums.MqTagEnum;
 import com.qmth.themis.mq.enums.MqTopicEnum;
 import com.qmth.themis.mq.listener.RocketMessageConsumer;
-import com.qmth.themis.mq.templete.impl.*;
-import com.qmth.themis.task.config.DictionaryConfig;
 import com.qmth.themis.task.enums.QuartzTaskEnum;
 import com.qmth.themis.task.listener.QuartzOrderlyImpl;
 import com.qmth.themis.task.quartz.MqJob;
 import com.qmth.themis.task.service.QuartzService;
-import org.apache.rocketmq.common.protocol.heartbeat.MessageModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.CommandLineRunner;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
 
 /**
  * @Description: 服务启动时初始化运行,哪个微服务模块需要则拿此模版去用
@@ -40,12 +40,9 @@ public class StartRunning implements CommandLineRunner {
     @Resource
     RocketMessageConsumer rocketMessageConsumer;
 
-    @Value("${rocketmq.name-server}")
+    @Value("rocketmq.name-server")
     String nameServer;
 
-    @Resource
-    DictionaryConfig dictionaryConfig;
-
     @Override
     public void run(String... args) throws Exception {
         log.info("服务器启动时执行 start");
@@ -56,16 +53,15 @@ public class StartRunning implements CommandLineRunner {
         quartzService.addJob(MqJob.class, QuartzTaskEnum.mqJobName.name(), QuartzTaskEnum.mqJobGroupName.name(), "0 0/1 * * * ?", mqMap);
         log.info("增加mqjob end");
 
-        Map<String, String> map = dictionaryConfig.mqDomain().getGroupMap();
         /**
          * session mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerWebGroup.getCode() : map.get(MqGroupEnum.sessionConsumerWebGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.web.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerWinGroup.getCode() : map.get(MqGroupEnum.sessionConsumerWinGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.win.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerMacGroup.getCode() : map.get(MqGroupEnum.sessionConsumerMacGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.mac.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerWxappGroup.getCode() : map.get(MqGroupEnum.sessionConsumerWxappGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.wxapp.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerIosGroup.getCode() : map.get(MqGroupEnum.sessionConsumerIosGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.ios.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerAndroidGroup.getCode() : map.get(MqGroupEnum.sessionConsumerAndroidGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.android.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerWebGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.web.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerWinGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.win.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerMacGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.mac.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerWxappGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.wxapp.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerIosGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.ios.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerAndroidGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.android.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
         /**
          * session mq end
          */
@@ -73,8 +69,8 @@ public class StartRunning implements CommandLineRunner {
         /**
          * userLog mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.userLogConsumerUserGroup.getCode() : map.get(MqGroupEnum.userLogConsumerUserGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.user.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.userLogConsumerStudentGroup.getCode() : map.get(MqGroupEnum.userLogConsumerStudentGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.student.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.userLogConsumerUserGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.user.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.userLogConsumerStudentGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.student.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
         /**
          * userLog mq end
          */
@@ -82,10 +78,10 @@ public class StartRunning implements CommandLineRunner {
         /**
          * task mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerExamStudentImportGroup.getCode() : map.get(MqGroupEnum.taskConsumerExamStudentImportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.examStudentImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerRoomCodeImportGroup.getCode() : map.get(MqGroupEnum.taskConsumerRoomCodeImportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.roomCodeImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerRoomCodeExportGroup.getCode() : map.get(MqGroupEnum.taskConsumerRoomCodeExportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.roomCodeExport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerExamPaperImportGroup.getCode() : map.get(MqGroupEnum.taskConsumerExamPaperImportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.examPaperImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerExamStudentImportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.examStudentImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerRoomCodeImportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.roomCodeImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerRoomCodeExportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.roomCodeExport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerExamPaperImportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.examPaperImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
         /**
          * task mq end
          */
@@ -93,29 +89,28 @@ public class StartRunning implements CommandLineRunner {
         /**
          * websocket mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.websocketConsumerUnNormalGroup.getCode() : map.get(MqGroupEnum.websocketConsumerUnNormalGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.unNormal.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(WebsocketUnNormalConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.websocketConsumerUnNormalGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.unNormal.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(WebsocketUnNormalConcurrentlyImpl.class));
         /**
          * websocket mq end
          */
         //计算客观分
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.calculateObjectiveScoreGroup.getCode() : map.get(MqGroupEnum.calculateObjectiveScoreGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.calculateObjectiveScore.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(CalculateObjectiveScoreConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.calculateObjectiveScoreGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.calculateObjectiveScore.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(CalculateObjectiveScoreConcurrentlyImpl.class));
 
         //人脸验证保存
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.faceVerifySaveGroup.getCode() : map.get(MqGroupEnum.faceVerifySaveGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.faceVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(FaceVerifyConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.faceVerifySaveGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.faceVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(FaceVerifyConcurrentlyImpl.class));
 
         //活体验证保存
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.livenessVerifySaveGroup.getCode() : map.get(MqGroupEnum.livenessVerifySaveGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.livenessVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(LivenessVerifyConcurrentlyImpl.class));
-
-        //考试断点记录
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.examBreakHistoryGroup.getCode() : map.get(MqGroupEnum.examBreakHistoryGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.examBreakHistory.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(ExamBreakHistoryConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.livenessVerifySaveGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.livenessVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(LivenessVerifyConcurrentlyImpl.class));
 
         /**
          * quartz mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.quartzConsumerExamActivityGroup.getCode() : map.get(MqGroupEnum.quartzConsumerExamActivityGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.examActivity.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(QuartzOrderlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.quartzConsumerExamActivityGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.examActivity.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(QuartzOrderlyImpl.class));
         /**
          * quartz mq end
          */
+        //考试断点记录
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.examBreakHistoryGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.examBreakHistory.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(ExamBreakHistoryConcurrentlyImpl.class));
         log.info("服务器启动时执行 end");
     }
 }