Selaa lähdekoodia

监考端接口

wangliang 4 vuotta sitten
vanhempi
commit
352a3f61cc
24 muutettua tiedostoa jossa 90 lisäystä ja 88 poistoa
  1. 2 5
      themis-backend/src/main/java/com/qmth/themis/backend/api/SysController.java
  2. 2 2
      themis-backend/src/main/java/com/qmth/themis/backend/api/TBExamInvigilateUserController.java
  3. 3 2
      themis-backend/src/main/java/com/qmth/themis/backend/api/TBOrgController.java
  4. 6 6
      themis-backend/src/main/java/com/qmth/themis/backend/api/TBUserController.java
  5. 7 5
      themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamActivityController.java
  6. 5 7
      themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamController.java
  7. 2 1
      themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamCourseController.java
  8. 2 5
      themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamPaperController.java
  9. 2 2
      themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamReexamController.java
  10. 3 3
      themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamStudentController.java
  11. 3 2
      themis-backend/src/main/java/com/qmth/themis/backend/api/TEStudentController.java
  12. 2 5
      themis-backend/src/main/java/com/qmth/themis/backend/api/TIeInvigilateCallMobileController.java
  13. 15 7
      themis-backend/src/main/java/com/qmth/themis/backend/api/TIeInvigilateController.java
  14. 2 3
      themis-backend/src/main/java/com/qmth/themis/backend/api/TIeInvigilateWarnInfoController.java
  15. 2 3
      themis-business/src/main/java/com/qmth/themis/business/constant/SystemConstant.java
  16. 10 9
      themis-business/src/main/java/com/qmth/themis/business/service/impl/ProducerServerImpl.java
  17. 2 8
      themis-business/src/main/java/com/qmth/themis/business/templete/impl/TaskExamPaperImportTemplete.java
  18. 1 1
      themis-business/src/main/java/com/qmth/themis/business/templete/impl/TaskExamStudentImportTemplete.java
  19. 1 1
      themis-business/src/main/java/com/qmth/themis/business/templete/impl/TaskRoomCodeExportTemplete.java
  20. 1 1
      themis-business/src/main/java/com/qmth/themis/business/templete/impl/TaskRoomCodeImportTemplete.java
  21. 11 1
      themis-business/src/main/java/com/qmth/themis/business/util/RedisUtil.java
  22. 1 1
      themis-exam/src/main/java/com/qmth/themis/exam/api/TEStudentController.java
  23. 2 5
      themis-exam/src/main/java/com/qmth/themis/exam/websocketTemplete/WebSocketOeMessageTemplete.java
  24. 3 3
      themis-task/src/main/java/com/qmth/themis/task/listener/service/impl/MqTaskLogicServiceImpl.java

+ 2 - 5
themis-backend/src/main/java/com/qmth/themis/backend/api/SysController.java

@@ -31,10 +31,7 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.annotation.Resource;
 import java.io.File;
 import java.io.IOException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 
 /**
  * @Description: 系统信息 前端控制器
@@ -100,7 +97,7 @@ public class SysController {
 //        Map map = new HashMap();
 //        map.put(SystemConstant.ENV_FILEHOST, schoolDto.getFileHost());
 //        return ResultUtil.ok(map);
-        return ResultUtil.ok(SystemConstant.SUCCESS);
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     @ApiOperation(value = "上传文件接口")

+ 2 - 2
themis-backend/src/main/java/com/qmth/themis/backend/api/TBExamInvigilateUserController.java

@@ -119,7 +119,7 @@ public class TBExamInvigilateUserController {
                 throw new RuntimeException(e);
             }
         }
-        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     @ApiOperation(value = "监考员导入接口")
@@ -190,7 +190,7 @@ public class TBExamInvigilateUserController {
                 mqDtoService.assembleSendOneWayMsg(mqDto);
                 //mq发送消息end
             } else {
-                return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.EXPORT_NO_DATA));
+                return ResultUtil.ok(Collections.singletonMap("success", true));
             }
         } catch (Exception e) {
             e.printStackTrace();

+ 3 - 2
themis-backend/src/main/java/com/qmth/themis/backend/api/TBOrgController.java

@@ -25,6 +25,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
@@ -80,7 +81,7 @@ public class TBOrgController {
         redisUtil.setOrg(tbOrg.getId(), tbOrg);
         EhcacheUtil.put(SystemConstant.orgCodeCache, tbOrg.getCode(), tbOrg);
         tbOrgService.saveOrUpdate(tbOrg);
-        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     @ApiOperation(value = "机构停用/启用接口")
@@ -111,6 +112,6 @@ public class TBOrgController {
         tbOrgService.updateById(tbOrg);
         redisUtil.setOrg(orgId, tbOrg);
         EhcacheUtil.put(SystemConstant.orgCodeCache, tbOrg.getCode(), tbOrg);
-        return ResultUtil.ok(JSONObject.parseObject(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 }

+ 6 - 6
themis-backend/src/main/java/com/qmth/themis/backend/api/TBUserController.java

@@ -530,7 +530,7 @@ public class TBUserController {
         //mq发送消息start
         mqDtoService.assembleSendOneWayMsg(MqTopicEnum.themisTopic.getCode(), MqTagEnum.USER.name(), SystemOperationEnum.LOGOUT, MqTagEnum.USER.name(), tbUser.getId(), tbUser.getLoginName());
         //mq发送消息end
-        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     //    @CachePut(value = "user_cache", key = "'userCacheQuery'")
@@ -619,7 +619,7 @@ public class TBUserController {
                 throw new RuntimeException(e);
             }
         }
-        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     @ApiOperation(value = "获取短信验证码接口")
@@ -640,14 +640,14 @@ public class TBUserController {
         if (Objects.isNull(verifyCode) || Objects.equals(verifyCode, "")) {
             throw new BusinessException(ExceptionResultEnum.VERIFYCODE_IS_NULL);
         }
-        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     @ApiOperation(value = "二次验证获取短信验证码接口")
     @RequestMapping(value = "/validate/getVerifyCode", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class)})
     public Result validateGetVerifyCode() {
-        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     @ApiOperation(value = "用户停用/启用接口")
@@ -674,7 +674,7 @@ public class TBUserController {
         tbUser.setEnable(enable);
         tbUserService.updateById(tbUser);
         redisUtil.setUser(tbUser.getId(), tbUser);
-        return ResultUtil.ok(JSONObject.parseObject(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     @ApiOperation(value = "用户修改密码接口")
@@ -702,6 +702,6 @@ public class TBUserController {
         tbUser.setUpdateId(currentUser.getId());
         tbUserService.updateById(tbUser);
         redisUtil.deleteUser(tbUser.getId());
-        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 }

+ 7 - 5
themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamActivityController.java

@@ -16,6 +16,7 @@ import com.qmth.themis.business.service.MqDtoService;
 import com.qmth.themis.business.service.TEExamActivityService;
 import com.qmth.themis.business.service.TEExamService;
 import com.qmth.themis.business.util.JacksonUtil;
+import com.qmth.themis.business.util.RedisUtil;
 import com.qmth.themis.business.util.ServletUtil;
 import com.qmth.themis.common.contanst.Constants;
 import com.qmth.themis.common.enums.ExceptionResultEnum;
@@ -28,10 +29,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 
 /**
  * @Description: 考试场次 前端控制器
@@ -54,6 +52,9 @@ public class TEExamActivityController {
     @Resource
     TEExamService teExamService;
 
+    @Resource
+    RedisUtil redisUtil;
+
     @ApiOperation(value = "考试场次修改/新增接口")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @Transactional
@@ -70,6 +71,7 @@ public class TEExamActivityController {
                 } else {
                     s.setId(Constants.idGen.next());
                     s.setCreateId(tbUser.getId());
+                    s.setCode(String.valueOf(redisUtil.getRedisActivityCodeSequence()));
                 }
             });
             teExamActivityService.saveOrUpdateBatch(teExamActivityList);
@@ -98,7 +100,7 @@ public class TEExamActivityController {
                 throw new RuntimeException(e);
             }
         }
-        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     @ApiOperation(value = "考试场次查询接口")

+ 5 - 7
themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamController.java

@@ -181,7 +181,7 @@ public class TEExamController {
             }
         }
         teExamService.updateExamCacheBean(teExam.getId());
-        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     @ApiOperation(value = "考试批次统计接口")
@@ -199,9 +199,7 @@ public class TEExamController {
             teExamQueryWrapper.lambda().eq(TEExam::getMode, mode);
         }
         int count = teExamService.count(teExamQueryWrapper);
-        Map map = new HashMap<>();
-        map.put(SystemConstant.COUNT, count);
-        return ResultUtil.ok(map);
+        return ResultUtil.ok(Collections.singletonMap(SystemConstant.COUNT, count));
     }
 
     @ApiOperation(value = "考试批次查询接口")
@@ -238,7 +236,7 @@ public class TEExamController {
         teExam.setUpdateId(tbUser.getId());
         teExamService.updateById(teExam);
         teExamService.updateExamCacheBean(teExam.getId());
-        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     @ApiOperation(value = "考试批次详情接口")
@@ -315,7 +313,7 @@ public class TEExamController {
                 throw new RuntimeException(e);
             }
         }
-        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     @ApiOperation(value = "监考端获取考试批次接口")
@@ -333,7 +331,7 @@ public class TEExamController {
 
     @ApiOperation(value = "考试属性统计接口")
     @RequestMapping(value = "/prop/count", method = RequestMethod.POST)
-    @ApiResponses({@ApiResponse(code = 200, message = "考试批次信息", response = TEExam.class)})
+    @ApiResponses({@ApiResponse(code = 200, message = "考试属性信息", response = ExamPropCountDto.class)})
     public Result propCount(@ApiParam(value = "考试id", required = true) @RequestParam Long examId) {
         if (Objects.isNull(examId) || Objects.equals(examId, "")) {
             throw new BusinessException(ExceptionResultEnum.EXAM_ID_IS_NULL);

+ 2 - 1
themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamCourseController.java

@@ -23,6 +23,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
@@ -71,7 +72,7 @@ public class TEExamCourseController {
             }
         }
         teExamCourseService.updateExamCourseCacheBean(teExamCourse.getExamId(), teExamCourse.getCourseCode());
-        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     @ApiOperation(value = "考试科目查询接口")

+ 2 - 5
themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamPaperController.java

@@ -20,10 +20,7 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 
 /**
  * @Description: 考试试卷 前端控制器
@@ -99,7 +96,7 @@ public class TEExamPaperController {
         teExamPaperList.forEach(s -> {
             teExamPaperService.updateExamPaperCacheBean(s.getId());
         });
-        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     @ApiOperation(value = "考试试卷数据包上传接口")

+ 2 - 2
themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamReexamController.java

@@ -127,7 +127,7 @@ public class TEExamReexamController {
         if (Objects.nonNull(teExamReexamAuditingList) && teExamReexamAuditingList.size() > 0) {
             teExamReexamAuditingService.saveBatch(teExamReexamAuditingList);
         }
-        return ResultUtil.ok(SystemConstant.SUCCESS);
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     @ApiOperation(value = "重考审核接口")
@@ -186,7 +186,7 @@ public class TEExamReexamController {
                 });
             }
         }
-        return ResultUtil.ok(SystemConstant.SUCCESS);
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     @ApiOperation(value = "重考审核明细接口")

+ 3 - 3
themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamStudentController.java

@@ -108,7 +108,7 @@ public class TEExamStudentController {
         teExamStudentList.forEach(s -> {
             teExamStudentService.updateExamStudentCacheBean(s.getId());
         });
-        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     @ApiOperation(value = "考生修改接口")
@@ -127,7 +127,7 @@ public class TEExamStudentController {
         teExamStudentList.forEach(s -> {
             teExamStudentService.updateExamStudentCacheBean(s.getId());
         });
-        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     @ApiOperation(value = "考生删除接口")
@@ -142,7 +142,7 @@ public class TEExamStudentController {
         ids.forEach(s -> {
             teExamStudentService.deleteExamStudentCacheBean(s);
         });
-        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     @ApiOperation(value = "考生导入接口")

+ 3 - 2
themis-backend/src/main/java/com/qmth/themis/backend/api/TEStudentController.java

@@ -26,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
@@ -84,7 +85,7 @@ public class TEStudentController {
         Gson gson = new Gson();
         TEStudentCacheDto teStudentCacheDto = gson.fromJson(gson.toJson(teStudent), TEStudentCacheDto.class);
         redisUtil.setStudent(teStudent.getId(), teStudentCacheDto);
-        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     @ApiOperation(value = "学生修改密码接口")
@@ -114,7 +115,7 @@ public class TEStudentController {
         Gson gson = new Gson();
         TEStudentCacheDto teStudentCacheDto = gson.fromJson(gson.toJson(teStudent), TEStudentCacheDto.class);
         redisUtil.setStudent(teStudent.getId(), teStudentCacheDto);
-        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     @ApiOperation(value = "学生考试记录查询接口")

+ 2 - 5
themis-backend/src/main/java/com/qmth/themis/backend/api/TIeInvigilateCallMobileController.java

@@ -29,10 +29,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 
 /**
  * @Description: mobile监考监控通话信息 前端控制器
@@ -103,6 +100,6 @@ public class TIeInvigilateCallMobileController {
         MqDto mqDto = new MqDto(MqTopicEnum.themisTopic.getCode(), MqTagEnum.MONITOR_LOG.name(), tIeExamInvigilateCallLog, MqTagEnum.MONITOR_LOG, String.valueOf(tIeExamInvigilateCallLog.getId()), source.name());
         mqDtoService.assembleSendOneWayMsg(mqDto);
         //监考监控通话信息 发送mq end
-        return ResultUtil.ok(SystemConstant.SUCCESS);
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 }

+ 15 - 7
themis-backend/src/main/java/com/qmth/themis/backend/api/TIeInvigilateController.java

@@ -30,10 +30,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 
 /**
  * @Description: 监考信息 前端控制器
@@ -270,7 +267,7 @@ public class TIeInvigilateController {
         MqDto mqDto = new MqDto(MqTopicEnum.themisTopic.getCode(), mqTagEnum.name(), JacksonUtil.parseJson(recordIdList), mqTagEnum, String.valueOf(tbUser.getId()), mapParameter, tbUser.getName());
         mqDtoService.assembleSendOneWayMsg(mqDto);
         //发送mq给客户端强制收卷end
-        return ResultUtil.ok(SystemConstant.SUCCESS);
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     @ApiOperation(value = "在线巡考列表接口")
@@ -395,7 +392,7 @@ public class TIeInvigilateController {
         }
         teExamBreachLogService.saveOrUpdateBatch(teExamBreachLogList);
         //todo 这里是否需要收卷处理
-        return ResultUtil.ok(SystemConstant.SUCCESS);
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     @ApiOperation(value = "监考消息通知接口")
@@ -423,6 +420,17 @@ public class TIeInvigilateController {
         mqDto = new MqDto(MqTopicEnum.themisTopic.getCode(), MqTagEnum.OE_LIVENESS_VERIFY.name(), recordId, MqTagEnum.OE_LIVENESS_VERIFY, String.valueOf(tbUser.getId()), mapParameter, tbUser.getName());
         mqDtoService.assembleSendOneWayMsg(mqDto);
         //发送mq给客户端监考强制活体验证end
-        return ResultUtil.ok(SystemConstant.SUCCESS);
+        return ResultUtil.ok(Collections.singletonMap("success", true));
+    }
+
+    @ApiOperation(value = "结束监考接口")
+    @RequestMapping(value = "/exam/finish", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class)})
+    public Result examFinish(@ApiJsonObject(name = "invigilateExamFinish", value = {
+            @ApiJsonProperty(key = "examId", type = "long", example = "1", description = "考试批次id", required = true),
+            @ApiJsonProperty(key = "examActivityId", type = "long", example = "1", description = "考试场次id", required = true),
+            @ApiJsonProperty(key = "roomCode", description = "虚拟考场代码", required = true)
+    }) @ApiParam(value = "考试记录信息", required = true) @RequestBody Map<String, Object> mapParameter) {
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 }

+ 2 - 3
themis-backend/src/main/java/com/qmth/themis/backend/api/TIeInvigilateWarnInfoController.java

@@ -23,6 +23,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
@@ -65,9 +66,7 @@ public class TIeInvigilateWarnInfoController {
             userId = tbUser.getId();
         }
         Integer count = tIeInvigilateWarnInfoService.warningCount(examId, examActivityId, roomCode, userId);
-        Map map = new HashMap<>();
-        map.put(SystemConstant.COUNT, count);
-        return ResultUtil.ok(map);
+        return ResultUtil.ok(Collections.singletonMap(SystemConstant.COUNT, count));
     }
 
     @ApiOperation(value = "预警提醒列表接口")

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

@@ -37,8 +37,6 @@ public class SystemConstant {
     /**
      * 系统相关
      */
-    public static final String SUCCESS = "{'success':true}";
-    public static final String EXPORT_NO_DATA = "{'noData':'没有数据'}";
     public static final String IMPORT_INIT = "准备开始处理导入数据";
     public static final String EXPORT_INIT = "准备开始处理导出数据";
     public static final String RECORD_ID = "recordId";
@@ -78,7 +76,8 @@ public class SystemConstant {
     public static String TEMP_FILES_DIR;
     public static final String MONITOR_LIVE_URL_ = "monitorLiveUrl_";
     public static final String MONITOR_STATUS_ = "monitorStatus_";
-    public final static String REDIS_SEQUENCE = "redis:seq";
+    public final static String REDIS_MONITOR_SEQUENCE = "redis:seq:monitor";
+    public final static String REDIS_ACTIVITY_CODE_SEQUENCE = "redis:seq:activity:code";
 
     /**
      * session过期时间

+ 10 - 9
themis-business/src/main/java/com/qmth/themis/business/service/impl/ProducerServerImpl.java

@@ -18,6 +18,7 @@ import org.springframework.messaging.support.MessageBuilder;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.Collections;
 
 /**
  * @Description: mq 服务实现类
@@ -45,7 +46,7 @@ public class ProducerServerImpl implements ProducerServer {
         SendResult sendResult = rocketMQTemplate.syncSend(mqDto.getTopic() + ":" + mqDto.getTag(), mqDto);
         // 同步消息发送成功会有一个返回值,我们可以用这个返回值进行判断和获取一些信息
         log.info("sendResult:{}", JacksonUtil.parseJson(sendResult));
-        return ResultUtil.ok(SystemConstant.SUCCESS);
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     /**
@@ -60,7 +61,7 @@ public class ProducerServerImpl implements ProducerServer {
         SendResult sendResult = rocketMQTemplate.syncSendOrderly(mqDto.getTopic() + ":" + mqDto.getTag(), mqDto, mqDto.getObjId());
         // 同步顺序消息发送成功会有一个返回值,我们可以用这个返回值进行判断和获取一些信息
         log.info("sendResult:{}", JacksonUtil.parseJson(sendResult));
-        return ResultUtil.ok(SystemConstant.SUCCESS);
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     /**
@@ -75,7 +76,7 @@ public class ProducerServerImpl implements ProducerServer {
         Message message = assembleMessage(mqDto);
         org.springframework.messaging.Message messageTran = MessageBuilder.withPayload(message).build();
         rocketMQTemplate.syncSend(mqDto.getTopic() + ":" + mqDto.getTag(), messageTran, SystemConstant.MESSAGE_TIMEOUT, Integer.parseInt(String.valueOf(mqDto.getProperties().get("timeOut"))));
-        return ResultUtil.ok(SystemConstant.SUCCESS);
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     /**
@@ -100,7 +101,7 @@ public class ProducerServerImpl implements ProducerServer {
                 throw new BusinessException(throwable.getMessage());
             }
         });
-        return ResultUtil.ok(SystemConstant.SUCCESS);
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     /**
@@ -125,7 +126,7 @@ public class ProducerServerImpl implements ProducerServer {
                 throw new BusinessException(throwable.getMessage());
             }
         });
-        return ResultUtil.ok(SystemConstant.SUCCESS);
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     /**
@@ -152,7 +153,7 @@ public class ProducerServerImpl implements ProducerServer {
                 throw new BusinessException(throwable.getMessage());
             }
         }, SystemConstant.MESSAGE_TIMEOUT, Integer.parseInt(String.valueOf(mqDto.getProperties().get("timeOut"))));
-        return ResultUtil.ok(SystemConstant.SUCCESS);
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     /**
@@ -165,7 +166,7 @@ public class ProducerServerImpl implements ProducerServer {
     public Result sendOneWay(MqDto mqDto) {
         log.info("sendOneWay mqDto:{}", JacksonUtil.parseJson(mqDto));
         rocketMQTemplate.sendOneWay(mqDto.getTopic() + ":" + mqDto.getTag(), mqDto);
-        return ResultUtil.ok(SystemConstant.SUCCESS);
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     /**
@@ -178,7 +179,7 @@ public class ProducerServerImpl implements ProducerServer {
     public Result sendOneWayOrderly(MqDto mqDto) {
         log.info("sendOneWayOrderly mqDto:{}", JacksonUtil.parseJson(mqDto));
         rocketMQTemplate.sendOneWayOrderly(mqDto.getTopic() + ":" + mqDto.getTag(), mqDto, mqDto.getObjId());
-        return ResultUtil.ok(SystemConstant.SUCCESS);
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     /**
@@ -195,7 +196,7 @@ public class ProducerServerImpl implements ProducerServer {
         //发送事务消息
         TransactionSendResult transactionSendResult = rocketMQTemplate.sendMessageInTransaction(mqDto.getTopic() + ":" + mqDto.getTag(), messageTran, null);
         log.info("transactionSendResult:{}", JacksonUtil.parseJson(transactionSendResult));
-        return ResultUtil.ok(SystemConstant.SUCCESS);
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     /**

+ 2 - 8
themis-business/src/main/java/com/qmth/themis/business/templete/impl/TaskExamPaperImportTemplete.java

@@ -5,13 +5,7 @@ import java.io.FilenameFilter;
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.UUID;
+import java.util.*;
 
 import javax.annotation.Resource;
 
@@ -91,7 +85,7 @@ public class TaskExamPaperImportTemplete implements TaskImportTemplete {
             addResult(result, "耗时(秒):" + ((end - start) / 1000));
             taskImportCommon.writeImportResultTxt(result.toString());
         }
-        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     private void dispose(File file, Map<String, Object> map, StringBuilder result) throws IOException {

+ 1 - 1
themis-business/src/main/java/com/qmth/themis/business/templete/impl/TaskExamStudentImportTemplete.java

@@ -103,6 +103,6 @@ public class TaskExamStudentImportTemplete implements TaskImportTemplete {
                 taskImportCommon.writeImportResultTxt(taskImportCommon.getTxtList().toString());
             }
         }
-        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 }

+ 1 - 1
themis-business/src/main/java/com/qmth/themis/business/templete/impl/TaskRoomCodeExportTemplete.java

@@ -143,6 +143,6 @@ public class TaskRoomCodeExportTemplete implements TaskExportTemplete {
             //这里写入txt文件
             taskExportCommon.writeExportResultTxt(mkdir.getPath(), taskExportCommon.getTxtList().toString(), file);
         }
-        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 }

+ 1 - 1
themis-business/src/main/java/com/qmth/themis/business/templete/impl/TaskRoomCodeImportTemplete.java

@@ -98,6 +98,6 @@ public class TaskRoomCodeImportTemplete implements TaskImportTemplete {
                 taskImportCommon.writeImportResultTxt(taskImportCommon.getTxtList().toString());
             }
         }
-        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 }

+ 11 - 1
themis-business/src/main/java/com/qmth/themis/business/util/RedisUtil.java

@@ -331,7 +331,17 @@ public class RedisUtil {
      * @return
      */
     public Integer getRedisSequence() {
-        RedisAtomicInteger entityIdCounter = new RedisAtomicInteger(SystemConstant.REDIS_SEQUENCE, redisTemplate.getConnectionFactory());
+        RedisAtomicInteger entityIdCounter = new RedisAtomicInteger(SystemConstant.REDIS_MONITOR_SEQUENCE, redisTemplate.getConnectionFactory());
+        return entityIdCounter.incrementAndGet();
+    }
+
+    /**
+     * 获取redis activity code序列
+     *
+     * @return
+     */
+    public Integer getRedisActivityCodeSequence() {
+        RedisAtomicInteger entityIdCounter = new RedisAtomicInteger(SystemConstant.REDIS_ACTIVITY_CODE_SEQUENCE, redisTemplate.getConnectionFactory());
         return entityIdCounter.incrementAndGet();
     }
 }

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

@@ -283,7 +283,7 @@ public class TEStudentController {
         //mq发送消息start
         mqDtoService.assembleSendOneWayMsg(MqTopicEnum.themisTopic.getCode(), MqTagEnum.STUDENT.name(), SystemOperationEnum.LOGOUT, MqTagEnum.STUDENT.name(), teStudent.getId(), teStudent.getIdentity());
         //mq发送消息end
-        return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
+        return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
     /**

+ 2 - 5
themis-exam/src/main/java/com/qmth/themis/exam/websocketTemplete/WebSocketOeMessageTemplete.java

@@ -13,10 +13,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 
 /**
  * @Description: 考生端oe websocket模版
@@ -51,7 +48,7 @@ public class WebSocketOeMessageTemplete {
         }
         objectMap.put("paperDownload", 0);
         redisUtil.setForHash(RedisKeyHelper.examRecordCacheKey(recordId), objectMap);
-        return new WebsocketDto(SystemConstant.SUCCESS);
+        return new WebsocketDto(Collections.singletonMap("success", true));
     }
 
     /**

+ 3 - 3
themis-task/src/main/java/com/qmth/themis/task/listener/service/impl/MqTaskLogicServiceImpl.java

@@ -79,10 +79,10 @@ public class MqTaskLogicServiceImpl implements MqTaskLogicService {
             if (Objects.equals("delete", oper)) {
                 quartzService.deleteJob(teExamActivity.getCode(), QuartzTaskEnum.examActivityJobGroupName.name());
             } else {
-                Integer forceFinish = teExam.getForceFinish();
+//                Integer forceFinish = teExam.getForceFinish();
                 Date startTime = teExamActivity.getStartTime();
                 Date finishTime = teExamActivity.getFinishTime();
-                if (Objects.nonNull(forceFinish) && forceFinish.intValue() == 1) {//强制收卷
+//                if (Objects.nonNull(forceFinish) && forceFinish.intValue() == 1) {//强制收卷
                     Integer activityMaxDurationSeconds = Objects.nonNull(teExamActivity.getMaxDurationSeconds()) ? teExamActivity.getMaxDurationSeconds() : null;
                     Integer maxDurationSeconds = Objects.nonNull(teExam.getMaxDurationSeconds()) ? teExam.getMaxDurationSeconds() : null;
                     Integer finalMaxDurationSeconds = Objects.nonNull(activityMaxDurationSeconds) ? activityMaxDurationSeconds : maxDurationSeconds;
@@ -111,7 +111,7 @@ public class MqTaskLogicServiceImpl implements MqTaskLogicService {
                         quartzService.deleteJob(activityCode, QuartzTaskEnum.examActivityJobGroupName.name());
                         quartzService.addJob(ExamActivityJob.class, activityCode, QuartzTaskEnum.examActivityJobGroupName.name(), cron, mapJob);
                     }
-                }
+//                }
             }
         }
         TMRocketMessage tmRocketMessage = gson.fromJson(gson.toJson(mqDto), TMRocketMessage.class);