瀏覽代碼

Merge branch 'dev'

# Conflicts:
#	themis-business/src/main/java/com/qmth/themis/business/cache/ExamRecordCacheUtil.java
#	themis-business/src/main/resources/mapper/TEExamMapper.xml
wangliang 4 年之前
父節點
當前提交
4fb9b49842
共有 100 個文件被更改,包括 1086 次插入989 次删除
  1. 1 6
      themis-backend/src/main/java/com/qmth/themis/backend/api/TBExamInvigilateUserController.java
  2. 1 6
      themis-backend/src/main/java/com/qmth/themis/backend/api/TBOrgController.java
  3. 1 11
      themis-backend/src/main/java/com/qmth/themis/backend/api/TBTaskHistoryController.java
  4. 3 6
      themis-backend/src/main/java/com/qmth/themis/backend/api/TBUserController.java
  5. 2 7
      themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamActivityController.java
  6. 3 8
      themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamController.java
  7. 4 14
      themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamCourseController.java
  8. 8 18
      themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamReexamController.java
  9. 259 246
      themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamStudentController.java
  10. 29 47
      themis-backend/src/main/java/com/qmth/themis/backend/api/TEStudentController.java
  11. 1 3
      themis-backend/src/main/java/com/qmth/themis/backend/api/TIeInvigilateCallMobileController.java
  12. 9 21
      themis-backend/src/main/java/com/qmth/themis/backend/api/TIeInvigilateController.java
  13. 1 5
      themis-backend/src/main/java/com/qmth/themis/backend/api/TIeInvigilateWarnInfoController.java
  14. 23 32
      themis-backend/src/main/java/com/qmth/themis/backend/config/WebMvcConfig.java
  15. 3 4
      themis-backend/src/main/java/com/qmth/themis/backend/interceptor/AuthInterceptor.java
  16. 1 1
      themis-backend/src/main/java/com/qmth/themis/backend/start/StartRunning.java
  17. 1 1
      themis-backend/src/main/java/com/qmth/themis/backend/websocket/WebSocketAdminServer.java
  18. 11 6
      themis-business/src/main/java/com/qmth/themis/business/base/BaseEntity.java
  19. 6 2
      themis-business/src/main/java/com/qmth/themis/business/bean/backend/ExamBreachListBean.java
  20. 5 1
      themis-business/src/main/java/com/qmth/themis/business/bean/backend/ExamDeficiencyListBean.java
  21. 5 1
      themis-business/src/main/java/com/qmth/themis/business/bean/backend/ExamExceptionListBean.java
  22. 5 1
      themis-business/src/main/java/com/qmth/themis/business/bean/backend/ExamReexamListBean.java
  23. 5 1
      themis-business/src/main/java/com/qmth/themis/business/bean/backend/ExamStudentLogListBean.java
  24. 5 1
      themis-business/src/main/java/com/qmth/themis/business/bean/backend/ExamViewCountListBean.java
  25. 19 17
      themis-business/src/main/java/com/qmth/themis/business/bean/backend/ExaminationMonitorWarnMsgBean.java
  26. 9 3
      themis-business/src/main/java/com/qmth/themis/business/bean/backend/InvigilateListBean.java
  27. 6 0
      themis-business/src/main/java/com/qmth/themis/business/bean/backend/InvigilateListDetailBean.java
  28. 9 3
      themis-business/src/main/java/com/qmth/themis/business/bean/backend/InvigilateListHistoryBean.java
  29. 9 3
      themis-business/src/main/java/com/qmth/themis/business/bean/backend/InvigilateListPatrolBean.java
  30. 6 0
      themis-business/src/main/java/com/qmth/themis/business/bean/backend/InvigilateListProgressBean.java
  31. 9 3
      themis-business/src/main/java/com/qmth/themis/business/bean/backend/InvigilateListVideoBean.java
  32. 10 3
      themis-business/src/main/java/com/qmth/themis/business/bean/backend/InvigilateListWarningBean.java
  33. 7 0
      themis-business/src/main/java/com/qmth/themis/business/bean/backend/ReexamListBean.java
  34. 7 0
      themis-business/src/main/java/com/qmth/themis/business/bean/backend/ReexamListRequestBean.java
  35. 13 9
      themis-business/src/main/java/com/qmth/themis/business/bean/backend/WarningNotifyBean.java
  36. 4 1
      themis-business/src/main/java/com/qmth/themis/business/bean/exam/AnswerReadyParamBean.java
  37. 4 1
      themis-business/src/main/java/com/qmth/themis/business/bean/exam/AnswerSubmitParamBean.java
  38. 4 1
      themis-business/src/main/java/com/qmth/themis/business/bean/exam/AudioLeftPlayCountSubmitParamBean.java
  39. 3 0
      themis-business/src/main/java/com/qmth/themis/business/bean/exam/ExamActivityUnFinishBean.java
  40. 4 0
      themis-business/src/main/java/com/qmth/themis/business/bean/exam/ExamPrepareBean.java
  41. 4 1
      themis-business/src/main/java/com/qmth/themis/business/bean/exam/ExamStartParamBean.java
  42. 4 0
      themis-business/src/main/java/com/qmth/themis/business/bean/exam/ExamUnFinishBean.java
  43. 4 0
      themis-business/src/main/java/com/qmth/themis/business/bean/exam/FaceVerifyBean.java
  44. 3 0
      themis-business/src/main/java/com/qmth/themis/business/bean/exam/FaceVerifyParamBean.java
  45. 3 0
      themis-business/src/main/java/com/qmth/themis/business/bean/exam/FinishParamBean.java
  46. 3 0
      themis-business/src/main/java/com/qmth/themis/business/bean/exam/LivenessVerifyBean.java
  47. 3 0
      themis-business/src/main/java/com/qmth/themis/business/bean/exam/LivenessVerifyParamBean.java
  48. 4 1
      themis-business/src/main/java/com/qmth/themis/business/bean/exam/MobileAnswerSubmitParamBean.java
  49. 4 1
      themis-business/src/main/java/com/qmth/themis/business/bean/exam/PrepareParamBean.java
  50. 4 1
      themis-business/src/main/java/com/qmth/themis/business/bean/exam/QrMobileMonitorParamBean.java
  51. 4 1
      themis-business/src/main/java/com/qmth/themis/business/bean/exam/QrUploadParamBean.java
  52. 3 0
      themis-business/src/main/java/com/qmth/themis/business/bean/exam/ResultParamBean.java
  53. 3 0
      themis-business/src/main/java/com/qmth/themis/business/bean/exam/ResumeParamBean.java
  54. 0 142
      themis-business/src/main/java/com/qmth/themis/business/bean/exam/StudentBean.java
  55. 4 1
      themis-business/src/main/java/com/qmth/themis/business/bean/exam/StudentPaperStructParamBean.java
  56. 4 1
      themis-business/src/main/java/com/qmth/themis/business/bean/mobile/MobileAuthorizationBean.java
  57. 10 12
      themis-business/src/main/java/com/qmth/themis/business/cache/ExamBreakCacheUtil.java
  58. 32 35
      themis-business/src/main/java/com/qmth/themis/business/cache/ExamRecordCacheUtil.java
  59. 11 6
      themis-business/src/main/java/com/qmth/themis/business/cache/bean/ExamActivityCacheBean.java
  60. 40 36
      themis-business/src/main/java/com/qmth/themis/business/cache/bean/ExamCacheBean.java
  61. 5 0
      themis-business/src/main/java/com/qmth/themis/business/cache/bean/ExamCourseCacheBean.java
  62. 4 0
      themis-business/src/main/java/com/qmth/themis/business/cache/bean/ExamPaperCacheBean.java
  63. 8 0
      themis-business/src/main/java/com/qmth/themis/business/cache/bean/ExamStudentCacheBean.java
  64. 87 80
      themis-business/src/main/java/com/qmth/themis/business/cache/bean/FaceVerifyCacheBean.java
  65. 24 20
      themis-business/src/main/java/com/qmth/themis/business/cache/bean/LivenessVerifyCacheBean.java
  66. 3 5
      themis-business/src/main/java/com/qmth/themis/business/config/MetaHandler.java
  67. 21 21
      themis-business/src/main/java/com/qmth/themis/business/constant/SystemConstant.java
  68. 1 1
      themis-business/src/main/java/com/qmth/themis/business/dao/TEExamActivityMapper.java
  69. 4 4
      themis-business/src/main/java/com/qmth/themis/business/dao/TEExamReexamMapper.java
  70. 1 1
      themis-business/src/main/java/com/qmth/themis/business/dao/TOeExamRecordMapper.java
  71. 3 0
      themis-business/src/main/java/com/qmth/themis/business/dto/ExamPropCountDto.java
  72. 3 3
      themis-business/src/main/java/com/qmth/themis/business/dto/MqDto.java
  73. 3 0
      themis-business/src/main/java/com/qmth/themis/business/dto/WarningDto.java
  74. 4 0
      themis-business/src/main/java/com/qmth/themis/business/dto/cache/TEStudentCacheDto.java
  75. 9 6
      themis-business/src/main/java/com/qmth/themis/business/dto/request/TEExamDto.java
  76. 3 0
      themis-business/src/main/java/com/qmth/themis/business/dto/response/TBExamInvigilateUserDto.java
  77. 7 3
      themis-business/src/main/java/com/qmth/themis/business/dto/response/TBOrgDto.java
  78. 14 9
      themis-business/src/main/java/com/qmth/themis/business/dto/response/TBTaskDto.java
  79. 8 3
      themis-business/src/main/java/com/qmth/themis/business/dto/response/TBUserDto.java
  80. 18 13
      themis-business/src/main/java/com/qmth/themis/business/dto/response/TEExamActivityDto.java
  81. 13 9
      themis-business/src/main/java/com/qmth/themis/business/dto/response/TEExamActivityQueryDto.java
  82. 34 4
      themis-business/src/main/java/com/qmth/themis/business/dto/response/TEExamCourseDto.java
  83. 4 0
      themis-business/src/main/java/com/qmth/themis/business/dto/response/TEExamDto.java
  84. 12 9
      themis-business/src/main/java/com/qmth/themis/business/dto/response/TEExamQueryDto.java
  85. 5 0
      themis-business/src/main/java/com/qmth/themis/business/dto/response/TEExamStudentDto.java
  86. 27 21
      themis-business/src/main/java/com/qmth/themis/business/dto/response/TEExamUnFinishDto.java
  87. 9 6
      themis-business/src/main/java/com/qmth/themis/business/dto/response/TEStudentDto.java
  88. 5 0
      themis-business/src/main/java/com/qmth/themis/business/dto/response/TEStudentExamRecordDto.java
  89. 6 0
      themis-business/src/main/java/com/qmth/themis/business/dto/response/TIeWarningNotifyDto.java
  90. 3 3
      themis-business/src/main/java/com/qmth/themis/business/entity/TBApp.java
  91. 7 3
      themis-business/src/main/java/com/qmth/themis/business/entity/TBAttachment.java
  92. 6 0
      themis-business/src/main/java/com/qmth/themis/business/entity/TBExamInvigilateUser.java
  93. 3 0
      themis-business/src/main/java/com/qmth/themis/business/entity/TBOrg.java
  94. 7 3
      themis-business/src/main/java/com/qmth/themis/business/entity/TBPrivilege.java
  95. 6 3
      themis-business/src/main/java/com/qmth/themis/business/entity/TBRole.java
  96. 4 0
      themis-business/src/main/java/com/qmth/themis/business/entity/TBRolePrivilege.java
  97. 20 17
      themis-business/src/main/java/com/qmth/themis/business/entity/TBSession.java
  98. 16 11
      themis-business/src/main/java/com/qmth/themis/business/entity/TBTaskHistory.java
  99. 3 0
      themis-business/src/main/java/com/qmth/themis/business/entity/TBUser.java
  100. 4 0
      themis-business/src/main/java/com/qmth/themis/business/entity/TBUserRole.java

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

@@ -1,11 +1,9 @@
 package com.qmth.themis.backend.api;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.themis.business.annotation.ApiJsonObject;
 import com.qmth.themis.business.annotation.ApiJsonProperty;
-import com.qmth.themis.business.base.BasePage;
 import com.qmth.themis.business.config.SystemConfig;
 import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.dto.MqDto;
@@ -16,7 +14,6 @@ import com.qmth.themis.business.service.MqDtoService;
 import com.qmth.themis.business.service.TBAttachmentService;
 import com.qmth.themis.business.service.TBExamInvigilateUserService;
 import com.qmth.themis.business.service.TBTaskHistoryService;
-import com.qmth.themis.business.util.JacksonUtil;
 import com.qmth.themis.business.util.ServletUtil;
 import com.qmth.themis.common.enums.ExceptionResultEnum;
 import com.qmth.themis.common.exception.BusinessException;
@@ -66,9 +63,7 @@ public class TBExamInvigilateUserController {
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "监考员信息", response = TBExamInvigilateUserDto.class)})
     public Result query(@ApiParam(value = "考试批次id", required = true) @RequestParam(required = false) Long examId, @ApiParam(value = "考场代码", required = false) @RequestParam(required = false) String roomCode, @ApiParam(value = "用户id", required = false) @RequestParam(required = false) Long userId, @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber, @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
-        IPage<TBExamInvigilateUserDto> examInvigilateUserDtoIPage = tbExamInvigilateUserService.examInvigilateUserQuery(new Page<>(pageNumber, pageSize), examId, roomCode, userId);
-        BasePage basePage = new BasePage(examInvigilateUserDtoIPage.getRecords(), examInvigilateUserDtoIPage.getCurrent(), examInvigilateUserDtoIPage.getSize(), examInvigilateUserDtoIPage.getTotal());
-        return ResultUtil.ok(basePage);
+        return ResultUtil.ok(tbExamInvigilateUserService.examInvigilateUserQuery(new Page<>(pageNumber, pageSize), examId, roomCode, userId));
     }
 
     @ApiOperation(value = "监考员修改接口")

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

@@ -1,10 +1,8 @@
 package com.qmth.themis.backend.api;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.themis.business.annotation.ApiJsonObject;
 import com.qmth.themis.business.annotation.ApiJsonProperty;
-import com.qmth.themis.business.base.BasePage;
 import com.qmth.themis.business.config.SystemConfig;
 import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.dto.response.TBOrgDto;
@@ -24,7 +22,6 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
-import java.io.File;
 import java.util.Collections;
 import java.util.Map;
 import java.util.Objects;
@@ -59,9 +56,7 @@ public class TBOrgController {
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "机构信息", response = TBOrgDto.class)})
     public Result queryByPage(@ApiParam(value = "机构代码", required = false) @RequestParam(required = false) String code, @ApiParam(value = "机构名称", required = false) @RequestParam(required = false) String name, @ApiParam(value = "是否启用", required = false) @RequestParam(required = false) Integer enable, @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber, @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
-        IPage<TBOrgDto> tborgIPage = tbOrgService.queryByPage(new Page<>(pageNumber, pageSize), code, name, enable);
-        BasePage basePage = new BasePage(tborgIPage.getRecords(), tborgIPage.getCurrent(), tborgIPage.getSize(), tborgIPage.getTotal());
-        return ResultUtil.ok(basePage);
+        return ResultUtil.ok(tbOrgService.queryByPage(new Page<>(pageNumber, pageSize), code, name, enable));
     }
 
     //    @CacheEvict(value = "org_cache", key = "'orgCacheQuery'")

+ 1 - 11
themis-backend/src/main/java/com/qmth/themis/backend/api/TBTaskHistoryController.java

@@ -1,15 +1,10 @@
 package com.qmth.themis.backend.api;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.qmth.themis.business.base.BasePage;
-import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.dto.response.TBTaskDto;
 import com.qmth.themis.business.enums.TaskStatusEnum;
 import com.qmth.themis.business.enums.TaskTypeEnum;
 import com.qmth.themis.business.service.TBTaskHistoryService;
-import com.qmth.themis.common.enums.ExceptionResultEnum;
-import com.qmth.themis.common.exception.BusinessException;
 import com.qmth.themis.common.util.Result;
 import com.qmth.themis.common.util.ResultUtil;
 import io.swagger.annotations.*;
@@ -19,9 +14,6 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
 
 /**
  * @Description: 任务 前端控制器
@@ -42,8 +34,6 @@ public class TBTaskHistoryController {
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "任务信息", response = TBTaskDto.class)})
     public Result query(@ApiParam(value = "任务id", required = false) @RequestParam(required = false) Long id, @ApiParam(value = "业务对象id", required = false) @RequestParam(required = false) Long entityId, @ApiParam(value = "任务类型", required = false) @RequestParam(required = false) TaskTypeEnum type, @ApiParam(value = "任务状态", required = false) @RequestParam(required = false) TaskStatusEnum status, @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber, @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
-        IPage<TBTaskDto> taskDtoIPage = tbTaskHistoryService.taskQuery(new Page<>(pageNumber, pageSize), id, entityId, type, status);
-        BasePage basePage = new BasePage(taskDtoIPage.getRecords(), taskDtoIPage.getCurrent(), taskDtoIPage.getSize(), taskDtoIPage.getTotal());
-        return ResultUtil.ok(basePage);
+        return ResultUtil.ok(tbTaskHistoryService.taskQuery(new Page<>(pageNumber, pageSize), id, entityId, type, status));
     }
 }

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

@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.google.gson.Gson;
 import com.qmth.themis.business.annotation.ApiJsonObject;
 import com.qmth.themis.business.annotation.ApiJsonProperty;
-import com.qmth.themis.business.base.BasePage;
 import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.dto.AuthDto;
 import com.qmth.themis.business.dto.MqDto;
@@ -188,7 +187,7 @@ public class TBUserController {
         Map<String, Object> expireMap = SystemConstant.getExpireTime(platform);
         Date expire = (Date) expireMap.get("date");
         Long redisExpire = Long.parseLong(String.valueOf(expireMap.get("redisExpire")));
-        TBSession tbSession = new TBSession(sessionId, String.valueOf(user.getId()), authDto.getRoleCodes().toString(), source, platform.name(), deviceId, ServletUtil.getRequest().getLocalAddr(), token, expire);
+        TBSession tbSession = new TBSession(sessionId, String.valueOf(user.getId()), authDto.getRoleCodes().toString(), source, platform.name(), deviceId, ServletUtil.getRequest().getLocalAddr(), token, expire.getTime());
         redisUtil.setUserSession(sessionId, tbSession, redisExpire);
         //mq发送消息start
         MqDto mqDto = new MqDto(MqTopicEnum.THEMIS_TOPIC.getCode(), platform.name(), tbSession, MqTagEnum.valueOf(platform.name()), tbSession.getId(), user.getLoginName());
@@ -546,9 +545,7 @@ public class TBUserController {
     @ApiResponses({@ApiResponse(code = 200, message = "用户信息", response = TBUserDto.class)})
     public Result query(@ApiParam(value = "用户id", required = false) @RequestParam(required = false) Long id, @ApiParam(value = "登录名", required = false) @RequestParam(required = false) String loginName, @ApiParam(value = "姓名", required = false) @RequestParam(required = false) String name, @ApiParam(value = "角色", required = false) @RequestParam(required = false) String roleCode, @ApiParam(value = "是否启用", required = false) @RequestParam(required = false) Integer enable, @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber, @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
         IPage<TBUserDto> tbUserIPage = tbUserService.userQuery(new Page<>(pageNumber, pageSize), id, loginName, name, roleCode, enable);
-        List<TBUserDto> tbUserDtoList = tbUserIPage.getRecords();
-        BasePage basePage = new BasePage(tbUserDtoList, tbUserIPage.getCurrent(), tbUserIPage.getSize(), tbUserIPage.getTotal());
-        tbUserDtoList.forEach(s -> {
+        tbUserIPage.getRecords().forEach(s -> {
             if (Objects.nonNull(s.getRoleNameStr())) {
                 s.setRoleName(Arrays.asList(s.getRoleNameStr().split(",")));
             }
@@ -556,7 +553,7 @@ public class TBUserController {
                 s.setRoleCode(Arrays.asList(s.getRoleCodeStr().split(",")));
             }
         });
-        return ResultUtil.ok(basePage);
+        return ResultUtil.ok(tbUserIPage);
     }
 
     //    @CacheEvict(value = "user_cache", key = "'userCacheQuery'")

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

@@ -1,10 +1,7 @@
 package com.qmth.themis.backend.api;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.qmth.themis.business.base.BasePage;
 import com.qmth.themis.business.dto.MqDto;
-import com.qmth.themis.business.dto.response.TEExamActivityQueryDto;
 import com.qmth.themis.business.entity.TBUser;
 import com.qmth.themis.business.entity.TEExam;
 import com.qmth.themis.business.entity.TEExamActivity;
@@ -113,9 +110,7 @@ public class TEExamActivityController {
     @ApiOperation(value = "考试场次查询接口")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "考试场次信息", response = TEExamActivity.class)})
-    public Result query(@ApiParam(value = "主键", required = false) @RequestParam(required = false) Long id, @ApiParam(value = "考试批次id", required = false) @RequestParam(required = false) Long examId, @ApiParam(value = "考试场次编码", required = false) @RequestParam(required = false) String code, @ApiParam(value = "开始日期", required = false) @RequestParam(required = false) String startDate, @ApiParam(value = "结束日期", required = false) @RequestParam(required = false) String finishDate, @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber, @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
-        IPage<TEExamActivityQueryDto> teExamActivityIPage = teExamActivityService.examActivityQuery(new Page<>(pageNumber, pageSize), id, examId, code, startDate, finishDate);
-        BasePage basePage = new BasePage(teExamActivityIPage.getRecords(), teExamActivityIPage.getCurrent(), teExamActivityIPage.getSize(), teExamActivityIPage.getTotal());
-        return ResultUtil.ok(basePage);
+    public Result query(@ApiParam(value = "主键", required = false) @RequestParam(required = false) Long id, @ApiParam(value = "考试批次id", required = false) @RequestParam(required = false) Long examId, @ApiParam(value = "考试场次编码", required = false) @RequestParam(required = false) String code, @ApiParam(value = "开始日期", required = false) @RequestParam(required = false) Long startDate, @ApiParam(value = "结束日期", required = false) @RequestParam(required = false) Long finishDate, @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber, @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
+        return ResultUtil.ok(teExamActivityService.examActivityQuery(new Page<>(pageNumber, pageSize), id, examId, code, startDate, finishDate));
     }
 }

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

@@ -1,11 +1,9 @@
 package com.qmth.themis.backend.api;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.themis.business.annotation.ApiJsonObject;
 import com.qmth.themis.business.annotation.ApiJsonProperty;
-import com.qmth.themis.business.base.BasePage;
 import com.qmth.themis.business.cache.ExamRecordCacheUtil;
 import com.qmth.themis.business.cache.RedisKeyHelper;
 import com.qmth.themis.business.constant.SystemConstant;
@@ -13,7 +11,6 @@ import com.qmth.themis.business.dto.AuthDto;
 import com.qmth.themis.business.dto.ExamPropCountDto;
 import com.qmth.themis.business.dto.MqDto;
 import com.qmth.themis.business.dto.request.TEExamDto;
-import com.qmth.themis.business.dto.response.TEExamQueryDto;
 import com.qmth.themis.business.entity.*;
 import com.qmth.themis.business.enums.*;
 import com.qmth.themis.business.service.*;
@@ -141,7 +138,7 @@ public class TEExamController {
                     teExamActivityList.forEach(s -> {
                         s.setPrepareSeconds(finalTeExam.getPrepareSeconds());
                         s.setMaxDurationSeconds(finalTeExam.getMaxDurationSeconds());
-                        s.setOpeningSeconds((int) ((finalTeExam.getEndTime().getTime() - finalTeExam.getStartTime().getTime()) / 1000));
+                        s.setOpeningSeconds((int) ((finalTeExam.getEndTime() - finalTeExam.getStartTime()) / 1000));
                         s.setStartTime(finalTeExam.getStartTime());
                         s.setFinishTime(finalTeExam.getEndTime());
                         s.setUpdateId(tbUser.getId());
@@ -160,7 +157,7 @@ public class TEExamController {
                         teExamActivityService.updateExamActivityCacheBean(s.getId());
                     });
                 } else {
-                    TEExamActivity teExamActivity = new TEExamActivity(teExam.getId(), teExam.getPrepareSeconds(), teExam.getMaxDurationSeconds(), (int) ((teExam.getEndTime().getTime() - teExam.getStartTime().getTime()) / 1000), teExam.getStartTime(), teExam.getEndTime(), tbUser.getId());
+                    TEExamActivity teExamActivity = new TEExamActivity(teExam.getId(), teExam.getPrepareSeconds(), teExam.getMaxDurationSeconds(), (int) ((teExam.getEndTime() - teExam.getStartTime()) / 1000), teExam.getStartTime(), teExam.getEndTime(), tbUser.getId());
                     teExamActivity.setCode(String.valueOf(redisUtil.getRedisActivityCodeSequence(teExam.getId())));
                     activityCode = teExamActivity.getCode();
                     teExamActivity.setEnable(1);
@@ -218,9 +215,7 @@ public class TEExamController {
     @ApiResponses({@ApiResponse(code = 200, message = "考试批次信息", response = TEExam.class)})
     public Result query(@ApiParam(value = "用户id", required = false) @RequestParam(required = false) Long userId, @ApiParam(value = "考试批次id", required = false) @RequestParam(required = false) Long id, @ApiParam(value = "考试批次编码", required = false) @RequestParam(required = false) String code, @ApiParam(value = "考试批次名称", required = false) @RequestParam(required = false) String name, @ApiParam(value = "考试批次模式", required = false) @RequestParam(required = false) String mode, @ApiParam(value = "是否启用", required = false) @RequestParam(required = false) Integer enable, @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber, @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
         TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
-        IPage<TEExamQueryDto> teExamQueryDtoIPage = teExamService.examQuery(new Page<>(pageNumber, pageSize), userId, id, code, name, mode, enable, tbUser.getOrgId());
-        BasePage basePage = new BasePage(teExamQueryDtoIPage.getRecords(), teExamQueryDtoIPage.getCurrent(), teExamQueryDtoIPage.getSize(), teExamQueryDtoIPage.getTotal());
-        return ResultUtil.ok(basePage);
+        return ResultUtil.ok(teExamService.examQuery(new Page<>(pageNumber, pageSize), userId, id, code, name, mode, enable, tbUser.getOrgId()));
     }
 
     @ApiOperation(value = "考试批次停用/启用接口")

+ 4 - 14
themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamCourseController.java

@@ -1,18 +1,12 @@
 package com.qmth.themis.backend.api;
 
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.qmth.themis.business.base.BasePage;
-import com.qmth.themis.business.constant.SystemConstant;
-import com.qmth.themis.business.dto.response.TEExamCourseDto;
 import com.qmth.themis.business.entity.TBUser;
 import com.qmth.themis.business.entity.TEExamCourse;
 import com.qmth.themis.business.enums.FieldUniqueEnum;
 import com.qmth.themis.business.service.TEExamCourseService;
-import com.qmth.themis.business.util.JacksonUtil;
 import com.qmth.themis.business.util.ServletUtil;
-import com.qmth.themis.common.contanst.Constants;
 import com.qmth.themis.common.enums.ExceptionResultEnum;
 import com.qmth.themis.common.exception.BusinessException;
 import com.qmth.themis.common.util.Result;
@@ -26,8 +20,6 @@ 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;
 
 /**
@@ -57,9 +49,9 @@ public class TEExamCourseController {
         try {
             TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
             UpdateWrapper<TEExamCourse> teExamCourseUpdateWrapper = new UpdateWrapper<>();
-            teExamCourseUpdateWrapper.lambda().set(TEExamCourse::getObjectiveShuffle,teExamCourse.getObjectiveShuffle())
-                    .set(TEExamCourse::getOptionShuffle,teExamCourse.getOptionShuffle())
-                    .set(TEExamCourse::getUpdateId,tbUser.getId())
+            teExamCourseUpdateWrapper.lambda().set(TEExamCourse::getObjectiveShuffle, teExamCourse.getObjectiveShuffle())
+                    .set(TEExamCourse::getOptionShuffle, teExamCourse.getOptionShuffle())
+                    .set(TEExamCourse::getUpdateId, tbUser.getId())
                     .eq(TEExamCourse::getExamId, teExamCourse.getExamId()).eq(TEExamCourse::getCourseCode, teExamCourse.getCourseCode());
             teExamCourseService.update(teExamCourseUpdateWrapper);
         } catch (Exception e) {
@@ -85,8 +77,6 @@ public class TEExamCourseController {
         if (Objects.isNull(examId) || Objects.equals(examId, "")) {
             throw new BusinessException(ExceptionResultEnum.EXAM_ID_IS_NULL);
         }
-        IPage<TEExamCourseDto> examCourseIPage = teExamCourseService.examCourseQuery(new Page<>(pageNumber, pageSize), id, examId, courseCode, courseName, hasPaper);
-        BasePage basePage = new BasePage(examCourseIPage.getRecords(), examCourseIPage.getCurrent(), examCourseIPage.getSize(), examCourseIPage.getTotal());
-        return ResultUtil.ok(basePage);
+        return ResultUtil.ok(teExamCourseService.examCourseQuery(new Page<>(pageNumber, pageSize), id, examId, courseCode, courseName, hasPaper));
     }
 }

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

@@ -1,12 +1,8 @@
 package com.qmth.themis.backend.api;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.themis.business.annotation.ApiJsonObject;
 import com.qmth.themis.business.annotation.ApiJsonProperty;
-import com.qmth.themis.business.base.BasePage;
-import com.qmth.themis.business.bean.backend.ReexamListDoneBean;
-import com.qmth.themis.business.bean.backend.ReexamListNotDoneBean;
 import com.qmth.themis.business.bean.backend.ReexamListRequestBean;
 import com.qmth.themis.business.cache.ExamRecordCacheUtil;
 import com.qmth.themis.business.cache.RedisKeyHelper;
@@ -167,7 +163,7 @@ public class TEExamReexamController {
                     } else {
                         teExamReexam.setAuditingId(tbUser.getId());
                         teExamReexam.setAuditingStatus(auditingStatus);
-                        teExamReexam.setAuditingTime(new Date());
+                        teExamReexam.setAuditingTime(System.currentTimeMillis());
                         teExamReexam.setAuditingSuggest(Objects.isNull(mapParameter.get("auditingSuggest")) ? null : String.valueOf(mapParameter.get("auditingSuggest")));
                         teExamReexam.setStatus(2);
                         teExamReexam.setUpdateId(tbUser.getId());
@@ -222,9 +218,7 @@ public class TEExamReexamController {
         if (authDto.getRoleCodes().toString().contains(RoleEnum.INVIGILATE.name())) {
             userId = tbUser.getId();
         }
-        IPage<ReexamListRequestBean> reexamListRequestBeanIPage = teExamReexamService.reexamPageRequestList(new Page<>(pageNumber, pageSize), examId, examActivityId, roomCode, courseCode, name, identity, userId);
-        BasePage basePage = new BasePage(reexamListRequestBeanIPage.getRecords(), reexamListRequestBeanIPage.getCurrent(), reexamListRequestBeanIPage.getSize(), reexamListRequestBeanIPage.getTotal());
-        return ResultUtil.ok(basePage);
+        return ResultUtil.ok(teExamReexamService.reexamPageRequestList(new Page<>(pageNumber, pageSize), examId, examActivityId, roomCode, courseCode, name, identity, userId));
     }
 
     @ApiOperation(value = "重考待审列表接口")
@@ -237,15 +231,13 @@ public class TEExamReexamController {
                               @ApiParam(value = "姓名", required = false) @RequestParam(required = false) String name,
                               @ApiParam(value = "证件号", required = false) @RequestParam(required = false) String identity,
                               @ApiParam(value = "申请理由", required = false) @RequestParam(required = false) String reason,
-                              @ApiParam(value = "申请开始时间", required = false) @RequestParam(required = false) String reasonStartTime,
-                              @ApiParam(value = "申请结束时间", required = false) @RequestParam(required = false) String reasonEndTime,
+                              @ApiParam(value = "申请开始时间", required = false) @RequestParam(required = false) Long reasonStartTime,
+                              @ApiParam(value = "申请结束时间", required = false) @RequestParam(required = false) Long reasonEndTime,
                               @ApiParam(value = "申请人", required = false) @RequestParam(required = false) String applyName,
                               @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber,
                               @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
         TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
-        IPage<ReexamListNotDoneBean> reexamListNotDongBeanIPage = teExamReexamService.reexamPageNotDoneList(new Page<>(pageNumber, pageSize), examId, examActivityId, roomCode, courseCode, name, identity, reason, reasonStartTime, reasonEndTime, applyName, tbUser.getId());
-        BasePage basePage = new BasePage(reexamListNotDongBeanIPage.getRecords(), reexamListNotDongBeanIPage.getCurrent(), reexamListNotDongBeanIPage.getSize(), reexamListNotDongBeanIPage.getTotal());
-        return ResultUtil.ok(basePage);
+        return ResultUtil.ok(teExamReexamService.reexamPageNotDoneList(new Page<>(pageNumber, pageSize), examId, examActivityId, roomCode, courseCode, name, identity, reason, reasonStartTime, reasonEndTime, applyName, tbUser.getId()));
     }
 
     @ApiOperation(value = "重考待审提醒接口")
@@ -267,14 +259,12 @@ public class TEExamReexamController {
                            @ApiParam(value = "姓名", required = false) @RequestParam(required = false) String name,
                            @ApiParam(value = "证件号", required = false) @RequestParam(required = false) String identity,
                            @ApiParam(value = "审核状态", required = false) @RequestParam(required = false) Integer auditingStatus,
-                           @ApiParam(value = "申请开始时间", required = false) @RequestParam(required = false) String reasonStartTime,
-                           @ApiParam(value = "申请结束时间", required = false) @RequestParam(required = false) String reasonEndTime,
+                           @ApiParam(value = "申请开始时间", required = false) @RequestParam(required = false) Long reasonStartTime,
+                           @ApiParam(value = "申请结束时间", required = false) @RequestParam(required = false) Long reasonEndTime,
                            @ApiParam(value = "申请人", required = false) @RequestParam(required = false) String applyName,
                            @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber,
                            @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
         TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
-        IPage<ReexamListDoneBean> reexamListRequestBeanIPage = teExamReexamService.reexamPageDoneList(new Page<>(pageNumber, pageSize), examId, examActivityId, roomCode, courseCode, name, identity, auditingStatus,reasonStartTime,reasonEndTime,applyName,tbUser.getId());
-        BasePage basePage = new BasePage(reexamListRequestBeanIPage.getRecords(), reexamListRequestBeanIPage.getCurrent(), reexamListRequestBeanIPage.getSize(), reexamListRequestBeanIPage.getTotal());
-        return ResultUtil.ok(basePage);
+        return ResultUtil.ok(teExamReexamService.reexamPageDoneList(new Page<>(pageNumber, pageSize), examId, examActivityId, roomCode, courseCode, name, identity, auditingStatus, reasonStartTime, reasonEndTime, applyName, tbUser.getId()));
     }
 }

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

@@ -30,7 +30,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.themis.business.annotation.ApiJsonObject;
 import com.qmth.themis.business.annotation.ApiJsonProperty;
-import com.qmth.themis.business.base.BasePage;
 import com.qmth.themis.business.config.SystemConfig;
 import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.dto.MqDto;
@@ -49,7 +48,6 @@ import com.qmth.themis.business.enums.MqTopicEnum;
 import com.qmth.themis.business.enums.TaskStatusEnum;
 import com.qmth.themis.business.enums.TaskTypeEnum;
 import com.qmth.themis.business.enums.UploadFileEnum;
-import com.qmth.themis.business.excel.ExportUtils;
 import com.qmth.themis.business.service.MqDtoService;
 import com.qmth.themis.business.service.TBAttachmentService;
 import com.qmth.themis.business.service.TBExamInvigilateUserService;
@@ -81,268 +79,283 @@ import io.swagger.annotations.ApiResponses;
 @RestController
 @RequestMapping("/${prefix.url.admin}/examStudent")
 public class TEExamStudentController {
-	private final static Logger log = LoggerFactory.getLogger(TEExamStudentController.class);
+    private final static Logger log = LoggerFactory.getLogger(TEExamStudentController.class);
 
-	@Resource
-	TEExamStudentService teExamStudentService;
+    @Resource
+    TEExamStudentService teExamStudentService;
 
-	@Resource
-	TBAttachmentService tbAttachmentService;
+    @Resource
+    TBAttachmentService tbAttachmentService;
 
-	@Resource
-	TBTaskHistoryService taskHistoryService;
+    @Resource
+    TBTaskHistoryService taskHistoryService;
 
-	@Resource
-	TEExamService teExamService;
+    @Resource
+    TEExamService teExamService;
 
-	@Resource
-	TEExamActivityService teExamActivityService;
+    @Resource
+    TEExamActivityService teExamActivityService;
 
-	@Resource
-	TBExamInvigilateUserService tbExamInvigilateUserService;
+    @Resource
+    TBExamInvigilateUserService tbExamInvigilateUserService;
 
-	@Resource
-	MqDtoService mqDtoService;
+    @Resource
+    MqDtoService mqDtoService;
 
-	@Resource
-	SystemConfig systemConfig;
+    @Resource
+    SystemConfig systemConfig;
+
+    @Resource
+    TEStudentService teStudentService;
 
-	@Resource
-	TEStudentService teStudentService;
-	
     @ApiOperation(value = "考生导出")
-	@RequestMapping(value = "/export", method = RequestMethod.POST)
-    public void export(@ApiParam(value = "考试批次id", required = true) @RequestParam Long examId,
-			@ApiParam(value = "考试场次id", required = false) @RequestParam(required = false) Long activityId,
-			@ApiParam(value = "证件号", required = false) @RequestParam(required = false) String identity,
-			@ApiParam(value = "姓名", required = false) @RequestParam(required = false) String name,
-			@ApiParam(value = "考场代码", required = false) @RequestParam(required = false) String roomCode,
-			@ApiParam(value = "科目代码", required = false) @RequestParam(required = false) String courseCode,
-			@ApiParam(value = "年级", required = false) @RequestParam(required = false) String grade,
-			@ApiParam(value = "是否启用", required = false) @RequestParam(required = false) Integer enable,
-			@ApiParam(value = "教学班级", required = false) @RequestParam(required = false) String classNo,
-			@ApiParam(value = "底照是否上传", required = false) @RequestParam(required = false) Integer hasPhoto,
-			HttpServletResponse response) throws Exception {
-		if (Objects.isNull(examId) || Objects.equals(examId, "")) {
-			throw new BusinessException(ExceptionResultEnum.EXAM_ID_IS_NULL);
-		}
-		List<TEExamStudentDto> list = teExamStudentService.examStudentList(examId, activityId, identity, name, roomCode, courseCode, grade,
-				enable, classNo,hasPhoto);
-		if(list!=null&&list.size()>0) {
-			for(TEExamStudentDto dto:list) {
-				if(StringUtils.isNotBlank(dto.getBasePhotoUrl())) {
-					dto.setBasePhotoUrl(systemConfig.getProperty("aliyun.oss.url") + "/" +dto.getBasePhotoUrl());
-				}
-			}
-		}
-		ExportUtils.exportEXCEL("考生信息", TEExamStudentDto.class, list, response);
-	}
+    @RequestMapping(value = "/export", method = RequestMethod.POST)
+    public Result export(@ApiParam(value = "考试批次id", required = true) @RequestParam Long examId,
+                       @ApiParam(value = "考试场次id", required = false) @RequestParam(required = false) Long activityId,
+                       @ApiParam(value = "证件号", required = false) @RequestParam(required = false) String identity,
+                       @ApiParam(value = "姓名", required = false) @RequestParam(required = false) String name,
+                       @ApiParam(value = "考场代码", required = false) @RequestParam(required = false) String roomCode,
+                       @ApiParam(value = "科目代码", required = false) @RequestParam(required = false) String courseCode,
+                       @ApiParam(value = "年级", required = false) @RequestParam(required = false) String grade,
+                       @ApiParam(value = "是否启用", required = false) @RequestParam(required = false) Integer enable,
+                       @ApiParam(value = "教学班级", required = false) @RequestParam(required = false) String classNo,
+                       @ApiParam(value = "底照是否上传", required = false) @RequestParam(required = false) Integer hasPhoto,
+                       HttpServletResponse response) throws Exception {
+    	TBTaskHistory tbTaskHistory = null;
+        Map<String, Object> transMap = new HashMap<String, Object>();
+        TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
+        //往任务表里插一条数据
+        tbTaskHistory = new TBTaskHistory(TaskTypeEnum.EXPORT_EXAM_STUDENT, TaskStatusEnum.INIT, SystemConstant.EXPORT_INIT, 0d, tbUser.getId());
+        taskHistoryService.save(tbTaskHistory);
+        transMap.put("tbTaskHistory", tbTaskHistory);
+        
+        transMap.put("examId", examId);
+        transMap.put("activityId", activityId);
+        transMap.put("identity", identity);
+        transMap.put("name", name);
+        transMap.put("roomCode", roomCode);
+        transMap.put("courseCode", courseCode);
+        transMap.put("grade", grade);
+        transMap.put("enable", enable);
+        transMap.put("classNo", classNo);
+        transMap.put("hasPhoto", hasPhoto);
+        
+        transMap.put("createId", tbUser.getId());
+
+        //mq发送消息start
+        MqDto mqDto = new MqDto(MqTopicEnum.THEMIS_TOPIC.getCode(), MqTagEnum.EXAM_STUDENT_EXPORT.name(), transMap, MqTagEnum.EXAM_STUDENT_EXPORT, String.valueOf(tbTaskHistory.getId()), tbUser.getName());
+        
+        mqDtoService.assembleSendOneWayMsg(mqDto);
+        //mq发送消息end
+        Map<String, Long> map = new HashMap<String, Long>();
+        map.put(SystemConstant.TASK_ID, tbTaskHistory.getId());
+        return ResultUtil.ok(map);
+
+    }
 
-	@ApiOperation(value = "考生查询接口")
-	@RequestMapping(value = "/query", method = RequestMethod.POST)
-	@ApiResponses({ @ApiResponse(code = 200, message = "考生信息", response = TEExamStudentDto.class) })
-	public Result query(@ApiParam(value = "考试批次id", required = true) @RequestParam Long examId,
-			@ApiParam(value = "考试场次id", required = false) @RequestParam(required = false) Long activityId,
-			@ApiParam(value = "证件号", required = false) @RequestParam(required = false) String identity,
-			@ApiParam(value = "姓名", required = false) @RequestParam(required = false) String name,
-			@ApiParam(value = "考场代码", required = false) @RequestParam(required = false) String roomCode,
-			@ApiParam(value = "科目代码", required = false) @RequestParam(required = false) String courseCode,
-			@ApiParam(value = "年级", required = false) @RequestParam(required = false) String grade,
-			@ApiParam(value = "是否启用", required = false) @RequestParam(required = false) Integer enable,
-			@ApiParam(value = "教学班级", required = false) @RequestParam(required = false) String classNo,
-			@ApiParam(value = "底照是否上传", required = false) @RequestParam(required = false) Integer hasPhoto,
-			@ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber,
-			@ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
-		if (Objects.isNull(examId) || Objects.equals(examId, "")) {
-			throw new BusinessException(ExceptionResultEnum.EXAM_ID_IS_NULL);
-		}
-		IPage<TEExamStudentDto> teExamStudentIPage = teExamStudentService.examStudentQuery(
-				new Page<>(pageNumber, pageSize), examId, activityId, identity, name, roomCode, courseCode, grade,
-				enable, classNo,hasPhoto);
-		if(teExamStudentIPage.getRecords()!=null&&teExamStudentIPage.getRecords().size()>0) {
-			for(TEExamStudentDto dto:teExamStudentIPage.getRecords()) {
-				if(StringUtils.isNotBlank(dto.getBasePhotoUrl())) {
-					dto.setBasePhotoUrl(systemConfig.getProperty("aliyun.oss.url") + "/" +dto.getBasePhotoUrl());
-				}
-			}
-		}
-		BasePage basePage = new BasePage(teExamStudentIPage.getRecords(), teExamStudentIPage.getCurrent(),
-				teExamStudentIPage.getSize(), teExamStudentIPage.getTotal());
-		return ResultUtil.ok(basePage);
-	}
+    @ApiOperation(value = "考生查询接口")
+    @RequestMapping(value = "/query", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "考生信息", response = TEExamStudentDto.class)})
+    public Result query(@ApiParam(value = "考试批次id", required = true) @RequestParam Long examId,
+                        @ApiParam(value = "考试场次id", required = false) @RequestParam(required = false) Long activityId,
+                        @ApiParam(value = "证件号", required = false) @RequestParam(required = false) String identity,
+                        @ApiParam(value = "姓名", required = false) @RequestParam(required = false) String name,
+                        @ApiParam(value = "考场代码", required = false) @RequestParam(required = false) String roomCode,
+                        @ApiParam(value = "科目代码", required = false) @RequestParam(required = false) String courseCode,
+                        @ApiParam(value = "年级", required = false) @RequestParam(required = false) String grade,
+                        @ApiParam(value = "是否启用", required = false) @RequestParam(required = false) Integer enable,
+                        @ApiParam(value = "教学班级", required = false) @RequestParam(required = false) String classNo,
+                        @ApiParam(value = "底照是否上传", required = false) @RequestParam(required = false) Integer hasPhoto,
+                        @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber,
+                        @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
+        if (Objects.isNull(examId) || Objects.equals(examId, "")) {
+            throw new BusinessException(ExceptionResultEnum.EXAM_ID_IS_NULL);
+        }
+        IPage<TEExamStudentDto> teExamStudentIPage = teExamStudentService.examStudentQuery(
+                new Page<>(pageNumber, pageSize), examId, activityId, identity, name, roomCode, courseCode, grade,
+                enable, classNo, hasPhoto);
+        if (teExamStudentIPage.getRecords() != null && teExamStudentIPage.getRecords().size() > 0) {
+            for (TEExamStudentDto dto : teExamStudentIPage.getRecords()) {
+                if (StringUtils.isNotBlank(dto.getBasePhotoUrl())) {
+                    dto.setBasePhotoUrl(systemConfig.getProperty("aliyun.oss.url") + "/" + dto.getBasePhotoUrl());
+                }
+            }
+        }
+        return ResultUtil.ok(teExamStudentIPage);
+    }
 
-	@ApiOperation(value = "考生停用/启用接口")
-	@RequestMapping(value = "/toggle", method = RequestMethod.POST)
-	@ApiResponses({ @ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class) })
-	@Transactional
-	public Result examStudentToggle(@ApiJsonObject(name = "examStudentToggle", value = {
-			@ApiJsonProperty(key = "id", type = "long", example = "1", description = "考生ID"),
-			@ApiJsonProperty(key = "enable", type = "int", example = "1", description = "是否启用") }) @ApiParam(value = "考生信息", required = true) @RequestBody List<Map<String, Object>> mapParameter) {
-		if (Objects.isNull(mapParameter) || mapParameter.size() == 0) {
-			throw new BusinessException(ExceptionResultEnum.EXAM_STUDENT_INFO_IS_NULL);
-		}
-		TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
-		List<TEExamStudent> teExamStudentList = new ArrayList<>();
-		for (int i = 0; i < mapParameter.size(); i++) {
-			Map map = mapParameter.get(i);
-			TEExamStudent teExamStudent = teExamStudentService.getById(Long.parseLong(String.valueOf(map.get("id"))));
-			if (Objects.isNull(teExamStudent)) {
-				throw new BusinessException(ExceptionResultEnum.EXAM_STUDENT_NO);
-			}
-			teExamStudent.setEnable(Integer.parseInt(String.valueOf(map.get("enable"))));
-			teExamStudent.setUpdateId(tbUser.getId());
-			teExamStudentList.add(teExamStudent);
-		}
-		teExamStudentService.updateBatchById(teExamStudentList);
-		teExamStudentList.forEach(s -> {
-			teExamStudentService.updateExamStudentCacheBean(s.getId());
-		});
-		return ResultUtil.ok(Collections.singletonMap("success", true));
-	}
+    @ApiOperation(value = "考生停用/启用接口")
+    @RequestMapping(value = "/toggle", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class)})
+    @Transactional
+    public Result examStudentToggle(@ApiJsonObject(name = "examStudentToggle", value = {
+            @ApiJsonProperty(key = "id", type = "long", example = "1", description = "考生ID"),
+            @ApiJsonProperty(key = "enable", type = "int", example = "1", description = "是否启用")}) @ApiParam(value = "考生信息", required = true) @RequestBody List<Map<String, Object>> mapParameter) {
+        if (Objects.isNull(mapParameter) || mapParameter.size() == 0) {
+            throw new BusinessException(ExceptionResultEnum.EXAM_STUDENT_INFO_IS_NULL);
+        }
+        TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
+        List<TEExamStudent> teExamStudentList = new ArrayList<>();
+        for (int i = 0; i < mapParameter.size(); i++) {
+            Map map = mapParameter.get(i);
+            TEExamStudent teExamStudent = teExamStudentService.getById(Long.parseLong(String.valueOf(map.get("id"))));
+            if (Objects.isNull(teExamStudent)) {
+                throw new BusinessException(ExceptionResultEnum.EXAM_STUDENT_NO);
+            }
+            teExamStudent.setEnable(Integer.parseInt(String.valueOf(map.get("enable"))));
+            teExamStudent.setUpdateId(tbUser.getId());
+            teExamStudentList.add(teExamStudent);
+        }
+        teExamStudentService.updateBatchById(teExamStudentList);
+        teExamStudentList.forEach(s -> {
+            teExamStudentService.updateExamStudentCacheBean(s.getId());
+        });
+        return ResultUtil.ok(Collections.singletonMap("success", true));
+    }
 
-	@ApiOperation(value = "考生修改接口")
-	@RequestMapping(value = "/save", method = RequestMethod.POST)
-	@ApiResponses({ @ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class) })
-	@Transactional
-	public Result save(@ApiParam(value = "考生信息", required = true) @RequestBody List<TEExamStudent> teExamStudentList) {
-		if (Objects.isNull(teExamStudentList) || teExamStudentList.size() == 0) {
-			throw new BusinessException(ExceptionResultEnum.EXAM_STUDENT_INFO_IS_NULL);
-		}
-		TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
-		TBOrg tbOrg = (TBOrg) ServletUtil.getRequestOrg();
-		teExamStudentList.forEach(s -> {
-			if (Objects.isNull(s.getId())) {
-				QueryWrapper<TEStudent> teExamStudentQueryWrapper = new QueryWrapper<>();
-				teExamStudentQueryWrapper.lambda().eq(TEStudent::getName, s.getName())
-						.eq(TEStudent::getIdentity, s.getIdentity()).eq(TEStudent::getOrgId, tbOrg.getId());
-				int count = teStudentService.count(teExamStudentQueryWrapper);
-				if (count == 0) {
-					TEStudent teStudent = new TEStudent(tbOrg.getId(), s.getIdentity(), s.getName(), tbUser.getId());
-					teStudentService.save(teStudent);
-					s.setStudentId(teStudent.getId());
-					s.setCreateId(tbUser.getId());
-				}
-			} else {
-				UpdateWrapper<TEExamStudent> teExamStudentUpdateWrapper = new UpdateWrapper<>();
-				teExamStudentUpdateWrapper.lambda().set(TEExamStudent::getName, s.getName())
-						.eq(TEExamStudent::getIdentity, s.getIdentity());
-				teExamStudentService.update(teExamStudentUpdateWrapper);
+    @ApiOperation(value = "考生修改接口")
+    @RequestMapping(value = "/save", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class)})
+    @Transactional
+    public Result save(@ApiParam(value = "考生信息", required = true) @RequestBody List<TEExamStudent> teExamStudentList) {
+        if (Objects.isNull(teExamStudentList) || teExamStudentList.size() == 0) {
+            throw new BusinessException(ExceptionResultEnum.EXAM_STUDENT_INFO_IS_NULL);
+        }
+        TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
+        TBOrg tbOrg = (TBOrg) ServletUtil.getRequestOrg();
+        teExamStudentList.forEach(s -> {
+            if (Objects.isNull(s.getId())) {
+                QueryWrapper<TEStudent> teExamStudentQueryWrapper = new QueryWrapper<>();
+                teExamStudentQueryWrapper.lambda().eq(TEStudent::getName, s.getName())
+                        .eq(TEStudent::getIdentity, s.getIdentity()).eq(TEStudent::getOrgId, tbOrg.getId());
+                int count = teStudentService.count(teExamStudentQueryWrapper);
+                if (count == 0) {
+                    TEStudent teStudent = new TEStudent(tbOrg.getId(), s.getIdentity(), s.getName(), tbUser.getId());
+                    teStudentService.save(teStudent);
+                    s.setStudentId(teStudent.getId());
+                    s.setCreateId(tbUser.getId());
+                }
+            } else {
+                UpdateWrapper<TEExamStudent> teExamStudentUpdateWrapper = new UpdateWrapper<>();
+                teExamStudentUpdateWrapper.lambda().set(TEExamStudent::getName, s.getName())
+                        .eq(TEExamStudent::getIdentity, s.getIdentity());
+                teExamStudentService.update(teExamStudentUpdateWrapper);
 
-				UpdateWrapper<TEStudent> teStudentUpdateWrapper = new UpdateWrapper<>();
-				teStudentUpdateWrapper.lambda().set(TEStudent::getName, s.getName()).eq(TEStudent::getIdentity,
-						s.getIdentity());
-				teStudentService.update(teStudentUpdateWrapper);
+                UpdateWrapper<TEStudent> teStudentUpdateWrapper = new UpdateWrapper<>();
+                teStudentUpdateWrapper.lambda().set(TEStudent::getName, s.getName()).eq(TEStudent::getIdentity,
+                        s.getIdentity());
+                teStudentService.update(teStudentUpdateWrapper);
 
-				s.setUpdateId(tbUser.getId());
-			}
-		});
-		teExamStudentService.saveOrUpdateBatch(teExamStudentList);
-		teExamStudentList.forEach(s -> {
-			teExamStudentService.updateExamStudentCacheBean(s.getId());
-		});
-		return ResultUtil.ok(Collections.singletonMap("success", true));
-	}
+                s.setUpdateId(tbUser.getId());
+            }
+        });
+        teExamStudentService.saveOrUpdateBatch(teExamStudentList);
+        teExamStudentList.forEach(s -> {
+            teExamStudentService.updateExamStudentCacheBean(s.getId());
+        });
+        return ResultUtil.ok(Collections.singletonMap("success", true));
+    }
 
-	@ApiOperation(value = "考生删除接口")
-	@RequestMapping(value = "/delete", method = RequestMethod.POST)
-	@ApiResponses({ @ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class) })
-	@Transactional
-	public Result delete(@ApiParam(value = "考生id", required = true) @RequestBody List<Long> ids) {
-		if (Objects.isNull(ids) || ids.size() == 0) {
-			throw new BusinessException(ExceptionResultEnum.EXAM_STUDENT_ID_IS_NULL);
-		}
-		teExamStudentService.removeByIds(ids);
-		ids.forEach(s -> {
-			teExamStudentService.deleteExamStudentCacheBean(s);
-		});
-		return ResultUtil.ok(Collections.singletonMap("success", true));
-	}
+    @ApiOperation(value = "考生删除接口")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class)})
+    @Transactional
+    public Result delete(@ApiParam(value = "考生id", required = true) @RequestBody List<Long> ids) {
+        if (Objects.isNull(ids) || ids.size() == 0) {
+            throw new BusinessException(ExceptionResultEnum.EXAM_STUDENT_ID_IS_NULL);
+        }
+        teExamStudentService.removeByIds(ids);
+        ids.forEach(s -> {
+            teExamStudentService.deleteExamStudentCacheBean(s);
+        });
+        return ResultUtil.ok(Collections.singletonMap("success", true));
+    }
 
-	@ApiOperation(value = "考生导入接口")
-	@RequestMapping(value = "/import", method = RequestMethod.POST)
-	@Transactional
-	@ApiResponses({ @ApiResponse(code = 200, message = "{\"taskId\":0}", response = Result.class) })
-	public Result importData(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file,
-			@ApiParam(value = "考试批次id", required = true) @RequestParam Long examId) throws IOException {
-		if (Objects.isNull(file) || Objects.equals(file, "")) {
-			throw new BusinessException(ExceptionResultEnum.ATTACHMENT_IS_NULL);
-		}
-		if (Objects.isNull(examId) || Objects.equals(examId, "")) {
-			throw new BusinessException(ExceptionResultEnum.EXAM_ID_IS_NULL);
-		}
-		Map<String, Object> mapParameter = systemConfig.getOssEnv(UploadFileEnum.file.getId());
-		TBAttachment tbAttachment = null;
-		TBTaskHistory tbTaskHistory = null;
-		Map transMap = new HashMap();
-		try {
-			TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
-			tbAttachment = tbAttachmentService.saveAttachment(file, ServletUtil.getRequestMd5(),
-					ServletUtil.getRequestPath(), mapParameter, tbUser.getOrgId(), tbUser.getId());
-			if (Objects.isNull(tbAttachment)) {
-				throw new BusinessException(ExceptionResultEnum.ATTACHMENT_ERROR);
-			} else {
-				// 往任务表里插一条数据
-				tbTaskHistory = new TBTaskHistory(TaskTypeEnum.IMPORT_EXAM_STUDENT, examId, TaskStatusEnum.INIT,
-						SystemConstant.IMPORT_INIT, 0d, tbAttachment.getName(), tbAttachment.getRemark(),
-						tbUser.getId());
-				taskHistoryService.save(tbTaskHistory);
-				transMap.put("tbTaskHistory", tbTaskHistory);
-			}
-			transMap.put("examId", examId);
-			transMap.put("createId", tbUser.getId());
+    @ApiOperation(value = "考生导入接口")
+    @RequestMapping(value = "/import", method = RequestMethod.POST)
+    @Transactional
+    @ApiResponses({@ApiResponse(code = 200, message = "{\"taskId\":0}", response = Result.class)})
+    public Result importData(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file,
+                             @ApiParam(value = "考试批次id", required = true) @RequestParam Long examId) throws IOException {
+        if (Objects.isNull(file) || Objects.equals(file, "")) {
+            throw new BusinessException(ExceptionResultEnum.ATTACHMENT_IS_NULL);
+        }
+        if (Objects.isNull(examId) || Objects.equals(examId, "")) {
+            throw new BusinessException(ExceptionResultEnum.EXAM_ID_IS_NULL);
+        }
+        Map<String, Object> mapParameter = systemConfig.getOssEnv(UploadFileEnum.file.getId());
+        TBAttachment tbAttachment = null;
+        TBTaskHistory tbTaskHistory = null;
+        Map transMap = new HashMap();
+        try {
+            TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
+            tbAttachment = tbAttachmentService.saveAttachment(file, ServletUtil.getRequestMd5(),
+                    ServletUtil.getRequestPath(), mapParameter, tbUser.getOrgId(), tbUser.getId());
+            if (Objects.isNull(tbAttachment)) {
+                throw new BusinessException(ExceptionResultEnum.ATTACHMENT_ERROR);
+            } else {
+                // 往任务表里插一条数据
+                tbTaskHistory = new TBTaskHistory(TaskTypeEnum.IMPORT_EXAM_STUDENT, examId, TaskStatusEnum.INIT,
+                        SystemConstant.IMPORT_INIT, 0d, tbAttachment.getName(), tbAttachment.getRemark(),
+                        tbUser.getId());
+                taskHistoryService.save(tbTaskHistory);
+                transMap.put("tbTaskHistory", tbTaskHistory);
+            }
+            transMap.put("examId", examId);
+            transMap.put("createId", tbUser.getId());
 
-			// 先查询考试相关信息
-			TEExam teExam = teExamService.getById(examId);
-			if (Objects.isNull(teExam)) {
-				throw new BusinessException(ExceptionResultEnum.EXAM_NO);
-			}
-			transMap.put("mode", teExam.getMode());
-			transMap.put("orgId", teExam.getOrgId());
-			transMap.put("examCount", teExam.getExamCount());
+            // 先查询考试相关信息
+            TEExam teExam = teExamService.getById(examId);
+            if (Objects.isNull(teExam)) {
+                throw new BusinessException(ExceptionResultEnum.EXAM_NO);
+            }
+            transMap.put("mode", teExam.getMode());
+            transMap.put("orgId", teExam.getOrgId());
+            transMap.put("examCount", teExam.getExamCount());
 
-			// 获取该批次下的所有考场,校验考场id是否存在
-			QueryWrapper<TEExamActivity> teExamActivityQueryWrapper = new QueryWrapper<>();
-			teExamActivityQueryWrapper.lambda().eq(TEExamActivity::getExamId, examId);
-			List<TEExamActivity> teExamActivityList = teExamActivityService.list(teExamActivityQueryWrapper);
-			if (Objects.isNull(teExamActivityList) || teExamActivityList.size() == 0) {
-				throw new BusinessException(ExceptionResultEnum.EXAM_ACTIVITY_NO);
-			}
-			Map<String, TEExamActivity> teExamActivityMap = teExamActivityList.stream()
-					.collect(Collectors.toMap(TEExamActivity::getCode, Function.identity(), (dto1, dto2) -> dto1));
-			transMap.put("teExamActivityMap", teExamActivityMap);
+            // 获取该批次下的所有考场,校验考场id是否存在
+            QueryWrapper<TEExamActivity> teExamActivityQueryWrapper = new QueryWrapper<>();
+            teExamActivityQueryWrapper.lambda().eq(TEExamActivity::getExamId, examId);
+            List<TEExamActivity> teExamActivityList = teExamActivityService.list(teExamActivityQueryWrapper);
+            if (Objects.isNull(teExamActivityList) || teExamActivityList.size() == 0) {
+                throw new BusinessException(ExceptionResultEnum.EXAM_ACTIVITY_NO);
+            }
+            Map<String, TEExamActivity> teExamActivityMap = teExamActivityList.stream()
+                    .collect(Collectors.toMap(TEExamActivity::getCode, Function.identity(), (dto1, dto2) -> dto1));
+            transMap.put("teExamActivityMap", teExamActivityMap);
 
-			// 获取考场代码和考场名称
-			QueryWrapper<TBExamInvigilateUser> tbExamInvigilateUserQueryWrapper = new QueryWrapper<>();
-			tbExamInvigilateUserQueryWrapper.lambda().eq(TBExamInvigilateUser::getOrgId, teExam.getOrgId());
-			List<TBExamInvigilateUser> tbExamInvigilateUserList = tbExamInvigilateUserService
-					.list(tbExamInvigilateUserQueryWrapper);
-			if (Objects.nonNull(tbExamInvigilateUserList) && tbExamInvigilateUserList.size() > 0) {
-				Map<String, String> tbExamInvigilateUserMap = new HashMap();
-				tbExamInvigilateUserList.forEach(s -> {
-					tbExamInvigilateUserMap.put(s.getExamId() + ":" + s.getRoomCode() + ":" + s.getRoomName(),
-							s.getRoomCode() + ":" + s.getRoomName());
-				});
-				transMap.put("tbExamInvigilateUserMap", tbExamInvigilateUserMap);
-			}
-			transMap.put("remark", tbAttachment.getRemark());
-			// mq发送消息start
-			MqDto mqDto = new MqDto(MqTopicEnum.THEMIS_TOPIC.getCode(), MqTagEnum.EXAM_STUDENT_IMPORT.name(), transMap,
-					MqTagEnum.EXAM_STUDENT_IMPORT, String.valueOf(tbTaskHistory.getId()), tbUser.getName());
-			mqDtoService.assembleSendOneWayMsg(mqDto);
-			// mq发送消息end
-		} catch (Exception e) {
-			log.error("请求出错", e);
-			if (Objects.nonNull(tbAttachment)) {
-				tbAttachmentService.deleteAttachment(mapParameter, tbAttachment);
-			}
-			if (e instanceof BusinessException) {
-				throw new BusinessException(e.getMessage());
-			} else {
-				throw new RuntimeException(e);
-			}
-		}
-		Map map = new HashMap();
-		map.put(SystemConstant.TASK_ID, tbTaskHistory.getId());
-		return ResultUtil.ok(map);
-	}
+            // 获取考场代码和考场名称
+            QueryWrapper<TBExamInvigilateUser> tbExamInvigilateUserQueryWrapper = new QueryWrapper<>();
+            tbExamInvigilateUserQueryWrapper.lambda().eq(TBExamInvigilateUser::getOrgId, teExam.getOrgId());
+            List<TBExamInvigilateUser> tbExamInvigilateUserList = tbExamInvigilateUserService
+                    .list(tbExamInvigilateUserQueryWrapper);
+            if (Objects.nonNull(tbExamInvigilateUserList) && tbExamInvigilateUserList.size() > 0) {
+                Map<String, String> tbExamInvigilateUserMap = new HashMap();
+                tbExamInvigilateUserList.forEach(s -> {
+                    tbExamInvigilateUserMap.put(s.getExamId() + ":" + s.getRoomCode() + ":" + s.getRoomName(),
+                            s.getRoomCode() + ":" + s.getRoomName());
+                });
+                transMap.put("tbExamInvigilateUserMap", tbExamInvigilateUserMap);
+            }
+            transMap.put("remark", tbAttachment.getRemark());
+            // mq发送消息start
+            MqDto mqDto = new MqDto(MqTopicEnum.THEMIS_TOPIC.getCode(), MqTagEnum.EXAM_STUDENT_IMPORT.name(), transMap,
+                    MqTagEnum.EXAM_STUDENT_IMPORT, String.valueOf(tbTaskHistory.getId()), tbUser.getName());
+            mqDtoService.assembleSendOneWayMsg(mqDto);
+            // mq发送消息end
+        } catch (Exception e) {
+            log.error("请求出错", e);
+            if (Objects.nonNull(tbAttachment)) {
+                tbAttachmentService.deleteAttachment(mapParameter, tbAttachment);
+            }
+            if (e instanceof BusinessException) {
+                throw new BusinessException(e.getMessage());
+            } else {
+                throw new RuntimeException(e);
+            }
+        }
+        Map map = new HashMap();
+        map.put(SystemConstant.TASK_ID, tbTaskHistory.getId());
+        return ResultUtil.ok(map);
+    }
 }

+ 29 - 47
themis-backend/src/main/java/com/qmth/themis/backend/api/TEStudentController.java

@@ -1,31 +1,13 @@
 package com.qmth.themis.backend.api;
 
-import java.util.Collections;
-import java.util.Map;
-import java.util.Objects;
-
-import javax.annotation.Resource;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.multipart.MultipartFile;
-
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.google.gson.Gson;
 import com.qmth.themis.business.annotation.ApiJsonObject;
 import com.qmth.themis.business.annotation.ApiJsonProperty;
-import com.qmth.themis.business.base.BasePage;
 import com.qmth.themis.business.config.SystemConfig;
 import com.qmth.themis.business.dto.cache.TEStudentCacheDto;
-import com.qmth.themis.business.dto.response.TEExamStudentDto;
 import com.qmth.themis.business.dto.response.TEStudentDto;
-import com.qmth.themis.business.dto.response.TEStudentExamRecordDto;
 import com.qmth.themis.business.entity.TBUser;
 import com.qmth.themis.business.entity.TEStudent;
 import com.qmth.themis.business.entity.TOeExamRecord;
@@ -36,12 +18,16 @@ import com.qmth.themis.common.enums.ExceptionResultEnum;
 import com.qmth.themis.common.exception.BusinessException;
 import com.qmth.themis.common.util.Result;
 import com.qmth.themis.common.util.ResultUtil;
+import io.swagger.annotations.*;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
+import javax.annotation.Resource;
+import java.util.Collections;
+import java.util.Map;
+import java.util.Objects;
 
 /**
  * @Description: 学生档案 前端控制器
@@ -60,25 +46,23 @@ public class TEStudentController {
 
     @Resource
     RedisUtil redisUtil;
-    
-	@Resource
-	SystemConfig systemConfig;
+
+    @Resource
+    SystemConfig systemConfig;
 
     @ApiOperation(value = "学生查询接口")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "考生信息", response = TEStudentDto.class)})
     public Result query(@ApiParam(value = "证件号", required = false) @RequestParam(required = false) String identity, @ApiParam(value = "姓名", required = false) @RequestParam(required = false) String name, @ApiParam(value = "是否启用", required = false) @RequestParam(required = false) Integer enable, @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber, @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
         IPage<TEStudentDto> teExamStudentIPage = teStudentService.studentQuery(new Page<>(pageNumber, pageSize), identity, name, enable);
-        if(teExamStudentIPage.getRecords()!=null&&teExamStudentIPage.getRecords().size()>0) {
-			for(TEStudentDto dto:teExamStudentIPage.getRecords()) {
-				if(StringUtils.isNotBlank(dto.getBasePhotoPath())) {
-					dto.setBasePhotoPath(systemConfig.getProperty("aliyun.oss.url") + "/" +dto.getBasePhotoPath());
-				}
-			}
-		}
-        
-        BasePage basePage = new BasePage(teExamStudentIPage.getRecords(), teExamStudentIPage.getCurrent(), teExamStudentIPage.getSize(), teExamStudentIPage.getTotal());
-        return ResultUtil.ok(basePage);
+        if (teExamStudentIPage.getRecords() != null && teExamStudentIPage.getRecords().size() > 0) {
+            for (TEStudentDto dto : teExamStudentIPage.getRecords()) {
+                if (StringUtils.isNotBlank(dto.getBasePhotoPath())) {
+                    dto.setBasePhotoPath(systemConfig.getProperty("aliyun.oss.url") + "/" + dto.getBasePhotoPath());
+                }
+            }
+        }
+        return ResultUtil.ok(teExamStudentIPage);
     }
 
     @ApiOperation(value = "学生停用/启用接口")
@@ -148,27 +132,25 @@ public class TEStudentController {
         if (Objects.isNull(studentId) || Objects.equals(studentId, "")) {
             throw new BusinessException(ExceptionResultEnum.STUDENT_ID_IS_NULL);
         }
-        IPage<TEStudentExamRecordDto> teStudentExamRecordDtoIPage = teStudentService.studentExamRecordQuery(new Page<>(pageNumber, pageSize), studentId, examId);
-        BasePage basePage = new BasePage(teStudentExamRecordDtoIPage.getRecords(), teStudentExamRecordDtoIPage.getCurrent(), teStudentExamRecordDtoIPage.getSize(), teStudentExamRecordDtoIPage.getTotal());
-        return ResultUtil.ok(basePage);
+        return ResultUtil.ok(teStudentService.studentExamRecordQuery(new Page<>(pageNumber, pageSize), studentId, examId));
     }
-    
+
     @ApiOperation(value = "底照上传")
     @RequestMapping(value = "/base_photo/upload", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "结果信息")})
     public Result photoUpload(@ApiParam(value = "证件号", required = true) @RequestParam String identity,
-                             @ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file,
-                             @ApiParam(value = "md5", required = true) @RequestParam String md5) {
-    	if (StringUtils.isBlank(identity)) {
+                              @ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file,
+                              @ApiParam(value = "md5", required = true) @RequestParam String md5) {
+        if (StringUtils.isBlank(identity)) {
             throw new BusinessException("证件号不能为空");
         }
-    	if (file==null) {
+        if (file == null) {
             throw new BusinessException("文件不能为空");
         }
-    	if (StringUtils.isBlank(md5)) {
+        if (StringUtils.isBlank(md5)) {
             throw new BusinessException("md5不能为空");
         }
-    	TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
-        return ResultUtil.ok(teStudentService.photoUpload(tbUser.getOrgId(), identity, file,  md5));
+        TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
+        return ResultUtil.ok(teStudentService.photoUpload(tbUser.getOrgId(), identity, file, md5));
     }
 }

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

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.themis.business.annotation.ApiJsonObject;
 import com.qmth.themis.business.annotation.ApiJsonProperty;
-import com.qmth.themis.business.base.BasePage;
 import com.qmth.themis.business.bean.mobile.MobileAuthorizationMonitorBean;
 import com.qmth.themis.business.cache.ExamRecordCacheUtil;
 import com.qmth.themis.business.config.SystemConfig;
@@ -90,8 +89,7 @@ public class TIeInvigilateCallMobileController {
         tIeExamInvigilateCallIPage.getRecords().forEach(s -> {
             s.setBasePhotoPath(systemConfig.getProperty("aliyun.oss.url") + File.separator + s.getBasePhotoPath());
         });
-        BasePage basePage = new BasePage(tIeExamInvigilateCallIPage.getRecords(), tIeExamInvigilateCallIPage.getCurrent(), tIeExamInvigilateCallIPage.getSize(), tIeExamInvigilateCallIPage.getTotal());
-        return ResultUtil.ok(basePage);
+        return ResultUtil.ok(tIeExamInvigilateCallIPage);
     }
 
     @ApiOperation(value = "监考监控通话提醒接口")

+ 9 - 21
themis-backend/src/main/java/com/qmth/themis/backend/api/TIeInvigilateController.java

@@ -1,11 +1,9 @@
 package com.qmth.themis.backend.api;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.themis.business.annotation.ApiJsonObject;
 import com.qmth.themis.business.annotation.ApiJsonProperty;
-import com.qmth.themis.business.base.BasePage;
 import com.qmth.themis.business.bean.backend.*;
 import com.qmth.themis.business.cache.ExamRecordCacheUtil;
 import com.qmth.themis.business.cache.RedisKeyHelper;
@@ -117,9 +115,7 @@ public class TIeInvigilateController {
         if (authDto.getRoleCodes().toString().contains(RoleEnum.INVIGILATE.name())) {
             userId = tbUser.getId();
         }
-        IPage<InvigilateListBean> invigilateListBeanIPage = tOeExamRecordService.invigilatePageList(new Page<>(pageNumber, pageSize), examId, examActivityId, roomCode, paperDownload, status, name, identity, minWarningCount, maxWarningCount, clientWebsocketStatus, monitorStatusSource, userId);
-        BasePage basePage = new BasePage(invigilateListBeanIPage.getRecords(), invigilateListBeanIPage.getCurrent(), invigilateListBeanIPage.getSize(), invigilateListBeanIPage.getTotal());
-        return ResultUtil.ok(basePage);
+        return ResultUtil.ok(tOeExamRecordService.invigilatePageList(new Page<>(pageNumber, pageSize), examId, examActivityId, roomCode, paperDownload, status, name, identity, minWarningCount, maxWarningCount, clientWebsocketStatus, monitorStatusSource, userId));
     }
 
     @ApiOperation(value = "实时监控台视频列表接口")
@@ -145,9 +141,7 @@ public class TIeInvigilateController {
         if (authDto.getRoleCodes().toString().contains(RoleEnum.INVIGILATE.name())) {
             userId = tbUser.getId();
         }
-        IPage<InvigilateListVideoBean> invigilateListVideoBeanIPage = tOeExamRecordService.invigilatePageListVideo(new Page<>(pageNumber, pageSize), examId, examActivityId, roomCode, paperDownload, status, name, identity, minWarningCount, maxWarningCount, clientWebsocketStatus, monitorStatusSource, userId);
-        BasePage basePage = new BasePage(invigilateListVideoBeanIPage.getRecords(), invigilateListVideoBeanIPage.getCurrent(), invigilateListVideoBeanIPage.getSize(), invigilateListVideoBeanIPage.getTotal());
-        return ResultUtil.ok(basePage);
+        return ResultUtil.ok(tOeExamRecordService.invigilatePageListVideo(new Page<>(pageNumber, pageSize), examId, examActivityId, roomCode, paperDownload, status, name, identity, minWarningCount, maxWarningCount, clientWebsocketStatus, monitorStatusSource, userId));
     }
 
     @ApiOperation(value = "实时监控台视频随机列表接口")
@@ -196,9 +190,7 @@ public class TIeInvigilateController {
         if (authDto.getRoleCodes().toString().contains(RoleEnum.INVIGILATE.name())) {
             userId = tbUser.getId();
         }
-        IPage<InvigilateListHistoryBean> invigilateListHistoryBeanIPage = tOeExamRecordService.invigilatePageListHistory(new Page<>(pageNumber, pageSize), examId, examActivityId, roomCode, courseCode, status, breachStatus, finishType, name, identity, minMultipleFaceCount, maxMultipleFaceCount, minExceptionCount, maxExceptionCount, minWarningCount, maxWarningCount, clientWebsocketStatus, monitorStatusSource, userId);
-        BasePage basePage = new BasePage(invigilateListHistoryBeanIPage.getRecords(), invigilateListHistoryBeanIPage.getCurrent(), invigilateListHistoryBeanIPage.getSize(), invigilateListHistoryBeanIPage.getTotal());
-        return ResultUtil.ok(basePage);
+        return ResultUtil.ok(tOeExamRecordService.invigilatePageListHistory(new Page<>(pageNumber, pageSize), examId, examActivityId, roomCode, courseCode, status, breachStatus, finishType, name, identity, minMultipleFaceCount, maxMultipleFaceCount, minExceptionCount, maxExceptionCount, minWarningCount, maxWarningCount, clientWebsocketStatus, monitorStatusSource, userId));
     }
 
     @ApiOperation(value = "实时监控台列表明细接口")
@@ -314,9 +306,7 @@ public class TIeInvigilateController {
         if (authDto.getRoleCodes().toString().contains(RoleEnum.INVIGILATE.name())) {
             userId = tbUser.getId();
         }
-        IPage<InvigilateListPatrolBean> invigilateListPatrolBeanIPage = tOeExamRecordService.invigilatePagePatrolList(new Page<>(pageNumber, pageSize), examId, examActivityId, roomCode, status, name, identity, minMultipleFaceCount, maxMultipleFaceCount, minExceptionCount, maxExceptionCount, minWarningCount, maxWarningCount, clientWebsocketStatus, monitorStatusSource, userId);
-        BasePage basePage = new BasePage(invigilateListPatrolBeanIPage.getRecords(), invigilateListPatrolBeanIPage.getCurrent(), invigilateListPatrolBeanIPage.getSize(), invigilateListPatrolBeanIPage.getTotal());
-        return ResultUtil.ok(basePage);
+        return ResultUtil.ok(tOeExamRecordService.invigilatePagePatrolList(new Page<>(pageNumber, pageSize), examId, examActivityId, roomCode, status, name, identity, minMultipleFaceCount, maxMultipleFaceCount, minExceptionCount, maxExceptionCount, minWarningCount, maxWarningCount, clientWebsocketStatus, monitorStatusSource, userId));
     }
 
     @ApiOperation(value = "进度查询列表接口")
@@ -337,9 +327,7 @@ public class TIeInvigilateController {
         if (authDto.getRoleCodes().toString().contains(RoleEnum.INVIGILATE.name())) {
             userId = tbUser.getId();
         }
-        IPage<InvigilateListProgressBean> invigilateListProgressBeanIPage = tOeExamRecordService.invigilatePageProgressList(new Page<>(pageNumber, pageSize), examId, examActivityId, roomCode, courseCode, name, identity, userId);
-        BasePage basePage = new BasePage(invigilateListProgressBeanIPage.getRecords(), invigilateListProgressBeanIPage.getCurrent(), invigilateListProgressBeanIPage.getSize(), invigilateListProgressBeanIPage.getTotal());
-        return ResultUtil.ok(basePage);
+        return ResultUtil.ok(tOeExamRecordService.invigilatePageProgressList(new Page<>(pageNumber, pageSize), examId, examActivityId, roomCode, courseCode, name, identity, userId));
     }
 
     @ApiOperation(value = "进度查询列表导出接口")
@@ -521,21 +509,21 @@ public class TIeInvigilateController {
             //获取已待考、考试中学生
             examActivityIdSet.forEach(s -> {
                 ExamActivityCacheBean examActivityCacheBean = teExamActivityService.getExamActivityCacheBean(s);
-                Date startTime = examActivityCacheBean.getStartTime();
-                Date finishTime = examActivityCacheBean.getFinishTime();
+                Long startTime = examActivityCacheBean.getStartTime();
+                Long finishTime = examActivityCacheBean.getFinishTime();
                 Integer activityMaxDurationSeconds = Objects.nonNull(examActivityCacheBean.getMaxDurationSeconds()) ? examActivityCacheBean.getMaxDurationSeconds() : null;
                 Integer maxDurationSeconds = Objects.nonNull(examCacheBean.getMaxDurationSeconds()) ? examCacheBean.getMaxDurationSeconds() : null;
                 Integer finalMaxDurationSeconds = Objects.nonNull(activityMaxDurationSeconds) ? activityMaxDurationSeconds : maxDurationSeconds;
                 Calendar calendar = Calendar.getInstance();
                 if (Objects.nonNull(finalMaxDurationSeconds)) {
-                    calendar.setTime(startTime);
+                    calendar.setTimeInMillis(startTime);
                     calendar.add(Calendar.SECOND, finalMaxDurationSeconds.intValue());
                 }
 //                Date now = new Date();
 //                if (now.getTime() >= calendar.getTime().getTime() && now.getTime() <= finishTime.getTime()) {
                 examPropCountDto.setMaxDurationSeconds(calendar.getTime().getTime());
                 if (Objects.nonNull(examCacheBean.getForceFinish()) && examCacheBean.getForceFinish() == 1) {
-                    examPropCountDto.setFinishTime(finishTime.getTime());
+                    examPropCountDto.setFinishTime(finishTime);
                 }
                 Map<String, Object> objectMap = redisUtil.getHashEntries(RedisKeyHelper.examActivityRecordCacheKey(s));
                 if (Objects.nonNull(objectMap) && objectMap.size() > 0) {

+ 1 - 5
themis-backend/src/main/java/com/qmth/themis/backend/api/TIeInvigilateWarnInfoController.java

@@ -1,11 +1,9 @@
 package com.qmth.themis.backend.api;
 
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.themis.business.annotation.ApiJsonObject;
 import com.qmth.themis.business.annotation.ApiJsonProperty;
-import com.qmth.themis.business.base.BasePage;
 import com.qmth.themis.business.bean.backend.InvigilateListWarningBean;
 import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.dto.AuthDto;
@@ -91,9 +89,7 @@ public class TIeInvigilateWarnInfoController {
         if (authDto.getRoleCodes().toString().contains(RoleEnum.INVIGILATE.name())) {
             userId = tbUser.getId();
         }
-        IPage<InvigilateListWarningBean> invigilateListWarningBeanIPage = tOeExamRecordService.invigilatePageWarningList(new Page<>(pageNumber, pageSize), examId, examActivityId, roomCode, approveStatus, name, identity, minMultipleFaceCount, maxMultipleFaceCount, minExceptionCount, maxExceptionCount, minWarningCount, maxWarningCount, clientWebsocketStatus, monitorStatusSource, userId);
-        BasePage basePage = new BasePage(invigilateListWarningBeanIPage.getRecords(), invigilateListWarningBeanIPage.getCurrent(), invigilateListWarningBeanIPage.getSize(), invigilateListWarningBeanIPage.getTotal());
-        return ResultUtil.ok(basePage);
+        return ResultUtil.ok(tOeExamRecordService.invigilatePageWarningList(new Page<>(pageNumber, pageSize), examId, examActivityId, roomCode, approveStatus, name, identity, minMultipleFaceCount, maxMultipleFaceCount, minExceptionCount, maxExceptionCount, minWarningCount, maxWarningCount, clientWebsocketStatus, monitorStatusSource, userId));
     }
 
     @ApiOperation(value = "预警消息接口")

+ 23 - 32
themis-backend/src/main/java/com/qmth/themis/backend/config/WebMvcConfig.java

@@ -1,22 +1,13 @@
 package com.qmth.themis.backend.config;
 
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.module.SimpleModule;
-import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.backend.interceptor.AuthInterceptor;
 import com.qmth.themis.business.constant.SystemConstant;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.http.converter.HttpMessageConverter;
-import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
 import javax.annotation.Resource;
-import java.math.BigInteger;
-import java.util.List;
-import java.util.TimeZone;
 
 /**
  * @Description: 路径拦截器
@@ -41,27 +32,27 @@ public class WebMvcConfig implements WebMvcConfigurer {
         registry.addInterceptor(AuthInterceptor()).addPathPatterns(SystemConstant.ALL_PATH).excludePathPatterns(dictionaryConfig.authNoUrlDomain().getUrls());
     }
 
-    @Override
-    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
-        ObjectMapper objectMapper = new ObjectMapper();
-        objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
-        objectMapper.enable(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);
-
-        objectMapper.setTimeZone(TimeZone.getTimeZone("GMT+8"));
-        //objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
-
-        // 处理数字位数超过JS默认最大数字时精度差异问题
-        SimpleModule simpleModule = new SimpleModule();
-        simpleModule.addSerializer(BigInteger.class, ToStringSerializer.instance);
-        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
-        simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
-
-        objectMapper.registerModule(simpleModule);
-
-        for (HttpMessageConverter<?> c : converters) {
-            if (c instanceof MappingJackson2HttpMessageConverter) {
-                ((MappingJackson2HttpMessageConverter) c).setObjectMapper(objectMapper);
-            }
-        }
-    }
+//    @Override
+//    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
+//        ObjectMapper objectMapper = new ObjectMapper();
+//        objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
+//        objectMapper.enable(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);
+//
+//        objectMapper.setTimeZone(TimeZone.getTimeZone("GMT+8"));
+//        //objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
+//
+//        // 处理数字位数超过JS默认最大数字时精度差异问题
+//        SimpleModule simpleModule = new SimpleModule();
+//        simpleModule.addSerializer(BigInteger.class, ToStringSerializer.instance);
+//        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
+//        simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
+//
+//        objectMapper.registerModule(simpleModule);
+//
+//        for (HttpMessageConverter<?> c : converters) {
+//            if (c instanceof MappingJackson2HttpMessageConverter) {
+//                ((MappingJackson2HttpMessageConverter) c).setObjectMapper(objectMapper);
+//            }
+//        }
+//    }
 }

+ 3 - 4
themis-backend/src/main/java/com/qmth/themis/backend/interceptor/AuthInterceptor.java

@@ -22,7 +22,6 @@ import org.springframework.web.servlet.ModelAndView;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.util.Date;
 import java.util.List;
 import java.util.Objects;
 import java.util.Set;
@@ -76,12 +75,12 @@ public class AuthInterceptor implements HandlerInterceptor {
             if (Objects.isNull(tbSession)) {
                 throw new BusinessException(ExceptionResultEnum.LOGIN_NO);
             } else {
-                if (info.validate(tbSession.getAccessToken()) && info.getTimestamp() < tbSession.getExpireTime().getTime()
+                if (info.validate(tbSession.getAccessToken()) && info.getTimestamp() < tbSession.getExpireTime()
                         && platform.name().equalsIgnoreCase(tbSession.getPlatform()) && Objects.equals(deviceId, tbSession.getDeviceId())) {
                     userId = Long.parseLong(tbSession.getIdentity());
-                    Date expireTime = tbSession.getExpireTime();
+                    Long expireTime = tbSession.getExpireTime();
                     //手机端的token时长为一个月,所以会出现缓存没有的情况
-                    if (expireTime.getTime() <= System.currentTimeMillis()) {//先判断时间是否过期
+                    if (expireTime <= System.currentTimeMillis()) {//先判断时间是否过期
                         throw new BusinessException(ExceptionResultEnum.LOGIN_NO);
                     }
                     TBUser tbUser = (TBUser) redisUtil.getUser(userId);

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

@@ -47,7 +47,7 @@ public class StartRunning implements CommandLineRunner {
         /**
          * task
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.TASK_GROUP.getCode(), MqTopicEnum.THEMIS_TOPIC.getCode(), MqTagEnum.EXAM_STUDENT_IMPORT.name() + "||" + MqTagEnum.ROOM_CODE_IMPORT.name() + "||" + MqTagEnum.ROOM_CODE_EXPORT.name() + "||" + MqTagEnum.EXAM_PAPER_IMPORT.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.TASK_GROUP.getCode(), MqTopicEnum.THEMIS_TOPIC.getCode(), MqTagEnum.EXAM_STUDENT_IMPORT.name() + "||" + MqTagEnum.ROOM_CODE_IMPORT.name() + "||" + MqTagEnum.ROOM_CODE_EXPORT.name() + "||" + MqTagEnum.EXAM_PAPER_IMPORT.name() + "||" + MqTagEnum.EXAM_STUDENT_EXPORT.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
         /**
          * log
          */

+ 1 - 1
themis-backend/src/main/java/com/qmth/themis/backend/websocket/WebSocketAdminServer.java

@@ -95,7 +95,7 @@ public class WebSocketAdminServer
             if (Objects.isNull(tbSession)) {
                 throw new BusinessException(ExceptionResultEnum.LOGIN_NO);
             } else {
-                if (info.validate(tbSession.getAccessToken()) && info.getTimestamp() < tbSession.getExpireTime().getTime()
+                if (info.validate(tbSession.getAccessToken()) && info.getTimestamp() < tbSession.getExpireTime()
                         && platform.equalsIgnoreCase(tbSession.getPlatform()) && Objects.equals(deviceId, tbSession.getDeviceId())) {
                     this.session = session;
                     session.setMaxIdleTimeout(SystemConstant.WEBSOCKET_MAX_TIME_OUT);

+ 11 - 6
themis-business/src/main/java/com/qmth/themis/business/base/BaseEntity.java

@@ -3,6 +3,8 @@ package com.qmth.themis.business.base;
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.common.contanst.Constants;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -19,25 +21,28 @@ import java.util.Date;
 public class BaseEntity implements Serializable {
     private static final long serialVersionUID = 1L;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "主键")
     @TableId(value = "id")
     private Long id;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @TableField("create_id")
     @ApiModelProperty(value = "创建人id")
     private Long createId;
 
     @TableField(value = "create_time", fill = FieldFill.INSERT)//新增执行
     @ApiModelProperty(value = "创建时间")
-    private Date createTime;
+    private Long createTime;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @TableField("update_id")
     @ApiModelProperty(value = "修改人id")
     private Long updateId;
 
     @TableField(value = "update_Time", fill = FieldFill.INSERT_UPDATE) // 新增和更新执行
     @ApiModelProperty(value = "修改时间")
-    private Date updateTime;
+    private Long updateTime;
 
     public static long getSerialVersionUID() {
         return serialVersionUID;
@@ -59,11 +64,11 @@ public class BaseEntity implements Serializable {
         this.createId = createId;
     }
 
-    public Date getCreateTime() {
+    public Long getCreateTime() {
         return createTime;
     }
 
-    public void setCreateTime(Date createTime) {
+    public void setCreateTime(Long createTime) {
         this.createTime = createTime;
     }
 
@@ -75,11 +80,11 @@ public class BaseEntity implements Serializable {
         this.updateId = updateId;
     }
 
-    public Date getUpdateTime() {
+    public Long getUpdateTime() {
         return updateTime;
     }
 
-    public void setUpdateTime(Date updateTime) {
+    public void setUpdateTime(Long updateTime) {
         this.updateTime = updateTime;
     }
 }

+ 6 - 2
themis-business/src/main/java/com/qmth/themis/business/bean/backend/ExamBreachListBean.java

@@ -1,20 +1,24 @@
 package com.qmth.themis.business.bean.backend;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
 @ApiModel("报表-违纪名单返回对象")
 public class ExamBreachListBean {
 
-
 	@ApiModelProperty(name = "考生id")
     private String examStudentId;
+
 	@ApiModelProperty(name = "考试名称")
     private String examName;
-	
+
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty(name = "考试id")
     private Long examId;
 
+	@JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "场次id")
     private Long examActivityId;
 

+ 5 - 1
themis-business/src/main/java/com/qmth/themis/business/bean/backend/ExamDeficiencyListBean.java

@@ -2,6 +2,8 @@ package com.qmth.themis.business.bean.backend;
 
 import java.io.Serializable;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -16,10 +18,12 @@ public class ExamDeficiencyListBean implements Serializable {
 
 	@ApiModelProperty(name = "考试名称")
     private String examName;
-	
+
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty(name = "考试id")
     private Long examId;
 
+	@JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "场次id")
     private Long examActivityId;
 

+ 5 - 1
themis-business/src/main/java/com/qmth/themis/business/bean/backend/ExamExceptionListBean.java

@@ -2,6 +2,8 @@ package com.qmth.themis.business.bean.backend;
 
 import java.io.Serializable;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -17,10 +19,12 @@ public class ExamExceptionListBean implements Serializable {
     private String examStudentId;
 	@ApiModelProperty(name = "考试名称")
     private String examName;
-	
+
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty(name = "考试id")
     private Long examId;
 
+	@JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "场次id")
     private Long examActivityId;
 

+ 5 - 1
themis-business/src/main/java/com/qmth/themis/business/bean/backend/ExamReexamListBean.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.bean.backend;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -11,10 +13,12 @@ public class ExamReexamListBean{
     private String examStudentId;
 	@ApiModelProperty(name = "考试名称")
     private String examName;
-	
+
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty(name = "考试id")
     private Long examId;
 
+	@JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "场次id")
     private Long examActivityId;
 

+ 5 - 1
themis-business/src/main/java/com/qmth/themis/business/bean/backend/ExamStudentLogListBean.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.bean.backend;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -11,10 +13,12 @@ public class ExamStudentLogListBean {
     private String examStudentId;
 	@ApiModelProperty(name = "考试名称")
     private String examName;
-	
+
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty(name = "考试id")
     private Long examId;
 
+	@JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "场次id")
     private Long examActivityId;
 

+ 5 - 1
themis-business/src/main/java/com/qmth/themis/business/bean/backend/ExamViewCountListBean.java

@@ -2,6 +2,8 @@ package com.qmth.themis.business.bean.backend;
 
 import java.io.Serializable;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -15,10 +17,12 @@ public class ExamViewCountListBean implements Serializable {
 	
 	@ApiModelProperty(name = "考试名称")
     private String examName;
-	
+
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty(name = "考试id")
     private Long examId;
 
+	@JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "场次id")
     private Long examActivityId;
 

+ 19 - 17
themis-business/src/main/java/com/qmth/themis/business/bean/backend/ExaminationMonitorWarnMsgBean.java

@@ -4,22 +4,24 @@ import io.swagger.annotations.ApiModelProperty;
 
 public class ExaminationMonitorWarnMsgBean {
 
-	@ApiModelProperty(name = "时间")
-	private String time;
-	@ApiModelProperty(name = "预警信息")
-	private String content;
-	public String getTime() {
-		return time;
-	}
-	public void setTime(String time) {
-		this.time = time;
-	}
-	public String getContent() {
-		return content;
-	}
-	public void setContent(String content) {
-		this.content = content;
-	}
+    @ApiModelProperty(name = "时间")
+    private Long time;
+    @ApiModelProperty(name = "预警信息")
+    private String content;
 
-	
+    public Long getTime() {
+        return time;
+    }
+
+    public void setTime(Long time) {
+        this.time = time;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
 }

+ 9 - 3
themis-business/src/main/java/com/qmth/themis/business/bean/backend/InvigilateListBean.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.bean.backend;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.enums.ExamRecordStatusEnum;
 import com.qmth.themis.business.enums.MonitorStatusSourceEnum;
 import com.qmth.themis.business.enums.MonitorVideoSourceEnum;
@@ -22,15 +24,19 @@ public class InvigilateListBean implements Serializable {
     @ApiModelProperty(name = "场次code")
     private String examActivityCode;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试批次id")
     private Long examId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "场次id")
     private Long examActivityId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考生id")
     private Long examStudentId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试记录id")
     private Long examRecordId;
 
@@ -80,7 +86,7 @@ public class InvigilateListBean implements Serializable {
     private Integer breachStatus;
 
     @ApiModelProperty(name = "更新时间")
-    private Date updateTime;
+    private Long updateTime;
 
     @ApiModelProperty(name = "剩余时间")
     private String remainTime;
@@ -136,11 +142,11 @@ public class InvigilateListBean implements Serializable {
         this.roomName = roomName;
     }
 
-    public Date getUpdateTime() {
+    public Long getUpdateTime() {
         return updateTime;
     }
 
-    public void setUpdateTime(Date updateTime) {
+    public void setUpdateTime(Long updateTime) {
         this.updateTime = updateTime;
     }
 

+ 6 - 0
themis-business/src/main/java/com/qmth/themis/business/bean/backend/InvigilateListDetailBean.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.bean.backend;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.entity.TEExamStudentLog;
 import com.qmth.themis.business.enums.ExamRecordStatusEnum;
 import io.swagger.annotations.ApiModel;
@@ -24,15 +26,19 @@ public class InvigilateListDetailBean implements Serializable {
     @ApiModelProperty(name = "场次code")
     private String examActivityCode;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试id")
     private Long examId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "场次id")
     private Long examActivityId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考生id")
     private Long examStudentId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试记录id")
     private Long examRecordId;
 

+ 9 - 3
themis-business/src/main/java/com/qmth/themis/business/bean/backend/InvigilateListHistoryBean.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.bean.backend;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.enums.ExamRecordStatusEnum;
 import com.qmth.themis.business.enums.FinishTypeEnum;
 import io.swagger.annotations.ApiModel;
@@ -27,15 +29,19 @@ public class InvigilateListHistoryBean implements Serializable {
     @ApiModelProperty(name = "场次code")
     private String examActivityCode;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试id")
     private Long examId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "场次id")
     private Long examActivityId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考生id")
     private Long examStudentId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试记录id")
     private Long examRecordId;
 
@@ -73,7 +79,7 @@ public class InvigilateListHistoryBean implements Serializable {
     private Integer breachStatus;
 
     @ApiModelProperty(name = "更新时间")
-    private Date updateTime;
+    private Long updateTime;
 
     @ApiModelProperty(name = "科目代码")
     private String courseCode;
@@ -153,11 +159,11 @@ public class InvigilateListHistoryBean implements Serializable {
         this.roomName = roomName;
     }
 
-    public Date getUpdateTime() {
+    public Long getUpdateTime() {
         return updateTime;
     }
 
-    public void setUpdateTime(Date updateTime) {
+    public void setUpdateTime(Long updateTime) {
         this.updateTime = updateTime;
     }
 

+ 9 - 3
themis-business/src/main/java/com/qmth/themis/business/bean/backend/InvigilateListPatrolBean.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.bean.backend;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.enums.ExamRecordStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -26,15 +28,19 @@ public class InvigilateListPatrolBean implements Serializable {
     @ApiModelProperty(name = "场次code")
     private String examActivityCode;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试id")
     private Long examId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "场次id")
     private Long examActivityId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考生id")
     private Long examStudentId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试记录id")
     private Long examRecordId;
 
@@ -66,7 +72,7 @@ public class InvigilateListPatrolBean implements Serializable {
     private Integer breachStatus;
 
     @ApiModelProperty(name = "更新时间")
-    private Date updateTime;
+    private Long updateTime;
 
     @ApiModelProperty(name = "虚拟考场名称")
     private String roomName;
@@ -163,11 +169,11 @@ public class InvigilateListPatrolBean implements Serializable {
         this.exceptionCount = exceptionCount;
     }
 
-    public Date getUpdateTime() {
+    public Long getUpdateTime() {
         return updateTime;
     }
 
-    public void setUpdateTime(Date updateTime) {
+    public void setUpdateTime(Long updateTime) {
         this.updateTime = updateTime;
     }
 

+ 6 - 0
themis-business/src/main/java/com/qmth/themis/business/bean/backend/InvigilateListProgressBean.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.bean.backend;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -15,15 +17,19 @@ import java.io.Serializable;
 @ApiModel("进度查询返回对象")
 public class InvigilateListProgressBean implements Serializable {
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试id")
     private Long examId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "场次id")
     private Long examActivityId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考生id")
     private Long examStudentId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试记录id")
     private Long examRecordId;
 

+ 9 - 3
themis-business/src/main/java/com/qmth/themis/business/bean/backend/InvigilateListVideoBean.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.bean.backend;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.enums.ExamRecordStatusEnum;
 import com.qmth.themis.business.enums.MonitorVideoSourceEnum;
 import com.qmth.themis.business.enums.WebsocketStatusEnum;
@@ -28,15 +30,19 @@ public class InvigilateListVideoBean implements Serializable {
     @ApiModelProperty(name = "场次code")
     private String examActivityCode;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试id")
     private Long examId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "场次id")
     private Long examActivityId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考生id")
     private Long examStudentId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试记录id")
     private Long examRecordId;
 
@@ -68,7 +74,7 @@ public class InvigilateListVideoBean implements Serializable {
     private String monitorLiveUrl;
 
     @ApiModelProperty(name = "更新时间")
-    private Date updateTime;
+    private Long updateTime;
 
     @ApiModelProperty(name = "答题进度")
     private Double progress;
@@ -135,11 +141,11 @@ public class InvigilateListVideoBean implements Serializable {
         this.roomName = roomName;
     }
 
-    public Date getUpdateTime() {
+    public Long getUpdateTime() {
         return updateTime;
     }
 
-    public void setUpdateTime(Date updateTime) {
+    public void setUpdateTime(Long updateTime) {
         this.updateTime = updateTime;
     }
 

+ 10 - 3
themis-business/src/main/java/com/qmth/themis/business/bean/backend/InvigilateListWarningBean.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.bean.backend;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.enums.ExamRecordStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -20,18 +22,23 @@ public class InvigilateListWarningBean implements Serializable {
     @ApiModelProperty(name = "序号")
     private Integer seq;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "预警id")
     private Long warningId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试id")
     private Long examId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "场次id")
     private Long examActivityId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考生id")
     private Long examStudentId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试记录id")
     private Long examRecordId;
 
@@ -72,7 +79,7 @@ public class InvigilateListWarningBean implements Serializable {
     private Integer breachStatus;
 
     @ApiModelProperty(name = "更新时间")
-    private Date updateTime;
+    private Long updateTime;
 
     @ApiModelProperty(name = "科目名称")
     private String courseName;
@@ -163,11 +170,11 @@ public class InvigilateListWarningBean implements Serializable {
         this.exceptionCount = exceptionCount;
     }
 
-    public Date getUpdateTime() {
+    public Long getUpdateTime() {
         return updateTime;
     }
 
-    public void setUpdateTime(Date updateTime) {
+    public void setUpdateTime(Long updateTime) {
         this.updateTime = updateTime;
     }
 

+ 7 - 0
themis-business/src/main/java/com/qmth/themis/business/bean/backend/ReexamListBean.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.bean.backend;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.enums.ReexamReasonEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -16,18 +18,23 @@ import java.io.Serializable;
 @ApiModel("重考列表返回对象")
 public class ReexamListBean implements Serializable {
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "重考id")
     private Long reexamId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试id")
     private Long examId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "场次id")
     private Long examActivityId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考生id")
     private Long examStudentId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试记录id")
     private Long examRecordId;
 

+ 7 - 0
themis-business/src/main/java/com/qmth/themis/business/bean/backend/ReexamListRequestBean.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.bean.backend;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -15,18 +17,23 @@ import java.io.Serializable;
 @ApiModel("重考申请列表返回对象")
 public class ReexamListRequestBean implements Serializable {
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "重考id")
     private Long reexamId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试id")
     private Long examId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "场次id")
     private Long examActivityId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考生id")
     private Long examStudentId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试记录id")
     private Long examRecordId;
 

+ 13 - 9
themis-business/src/main/java/com/qmth/themis/business/bean/backend/WarningNotifyBean.java

@@ -1,14 +1,18 @@
 package com.qmth.themis.business.bean.backend;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.enums.WarningLevelEnum;
 
 import io.swagger.annotations.ApiModelProperty;
 
 public class WarningNotifyBean  {
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试批次id")
     private Long examId;//考试批次id
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考生id")
     private Long examStudentId;//考生id
 
@@ -24,12 +28,14 @@ public class WarningNotifyBean  {
     @ApiModelProperty(name = "预警等级")
     private WarningLevelEnum level;//预警等级
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "预警id")
     private Long warningId;//预警id
 
     @ApiModelProperty(name = "预警备注")
     private String remark;//预警备注
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试记录id")
     private Long examRecordId;//考试记录id
     
@@ -37,7 +43,7 @@ public class WarningNotifyBean  {
     private String roomCode;//考试记录id
     
     @ApiModelProperty(name = "时间")
-    private String createTime;
+    private Long createTime;
 
     public Long getExamRecordId() {
         return examRecordId;
@@ -119,13 +125,11 @@ public class WarningNotifyBean  {
 		this.roomCode = roomCode;
 	}
 
-	public String getCreateTime() {
-		return createTime;
-	}
+    public Long getCreateTime() {
+        return createTime;
+    }
 
-	public void setCreateTime(String createTime) {
-		this.createTime = createTime;
-	}
-    
-    
+    public void setCreateTime(Long createTime) {
+        this.createTime = createTime;
+    }
 }

+ 4 - 1
themis-business/src/main/java/com/qmth/themis/business/bean/exam/AnswerReadyParamBean.java

@@ -1,11 +1,14 @@
 package com.qmth.themis.business.bean.exam;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
 @ApiModel("拍照/录音答题就绪参数")
 public class AnswerReadyParamBean {
-	
+
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty("考试记录id")
 	private Long recordId;
 	

+ 4 - 1
themis-business/src/main/java/com/qmth/themis/business/bean/exam/AnswerSubmitParamBean.java

@@ -1,11 +1,14 @@
 package com.qmth.themis.business.bean.exam;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
 @ApiModel("提交作答结果参数")
 public class AnswerSubmitParamBean {
-	
+
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty("考试记录id")
 	private Long recordId;
 	

+ 4 - 1
themis-business/src/main/java/com/qmth/themis/business/bean/exam/AudioLeftPlayCountSubmitParamBean.java

@@ -1,11 +1,14 @@
 package com.qmth.themis.business.bean.exam;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
 @ApiModel("更新音频剩余播放次数参数")
 public class AudioLeftPlayCountSubmitParamBean {
-	
+
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty("考试记录id")
 	private Long recordId;
 	

+ 3 - 0
themis-business/src/main/java/com/qmth/themis/business/bean/exam/ExamActivityUnFinishBean.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.bean.exam;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.cache.bean.ExamCacheBean;
 import com.qmth.themis.business.dto.response.TEExamActivityDto;
 
@@ -12,6 +14,7 @@ import com.qmth.themis.business.dto.response.TEExamActivityDto;
  */
 public class ExamActivityUnFinishBean extends TEExamActivityDto {
 
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long recordId;
 
     public Long getRecordId() {

+ 4 - 0
themis-business/src/main/java/com/qmth/themis/business/bean/exam/ExamPrepareBean.java

@@ -1,10 +1,14 @@
 package com.qmth.themis.business.bean.exam;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
 @ApiModel("考试候考返回信息")
 public class ExamPrepareBean {
+
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty("考试记录id")
 	private Long recordId;
 	@ApiModelProperty("试卷数据包下载地址")

+ 4 - 1
themis-business/src/main/java/com/qmth/themis/business/bean/exam/ExamStartParamBean.java

@@ -1,11 +1,14 @@
 package com.qmth.themis.business.bean.exam;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
 @ApiModel("开始考试参数")
 public class ExamStartParamBean {
-	
+
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty("考试记录id")
 	private Long recordId;
 	

+ 4 - 0
themis-business/src/main/java/com/qmth/themis/business/bean/exam/ExamUnFinishBean.java

@@ -1,5 +1,8 @@
 package com.qmth.themis.business.bean.exam;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+
 import java.io.Serializable;
 
 /**
@@ -11,6 +14,7 @@ import java.io.Serializable;
  */
 public class ExamUnFinishBean implements Serializable {
 
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long id;
     private String name;
     private String preNotice;

+ 4 - 0
themis-business/src/main/java/com/qmth/themis/business/bean/exam/FaceVerifyBean.java

@@ -1,10 +1,14 @@
 package com.qmth.themis.business.bean.exam;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
 @ApiModel("人脸验证返回信息")
 public class FaceVerifyBean {
+
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty("id")
 	private Long id;
 	@ApiModelProperty("updateTime")

+ 3 - 0
themis-business/src/main/java/com/qmth/themis/business/bean/exam/FaceVerifyParamBean.java

@@ -1,11 +1,14 @@
 package com.qmth.themis.business.bean.exam;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
 @ApiModel("人脸验证结果参数")
 public class FaceVerifyParamBean {
 
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty("考试记录ID")
 	private Long recordId;
 	

+ 3 - 0
themis-business/src/main/java/com/qmth/themis/business/bean/exam/FinishParamBean.java

@@ -1,11 +1,14 @@
 package com.qmth.themis.business.bean.exam;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
 @ApiModel("结束考试参数")
 public class FinishParamBean {
 
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty("考试记录id")
 	private Long recordId;
 	

+ 3 - 0
themis-business/src/main/java/com/qmth/themis/business/bean/exam/LivenessVerifyBean.java

@@ -1,10 +1,13 @@
 package com.qmth.themis.business.bean.exam;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
 @ApiModel("活体验证返回信息")
 public class LivenessVerifyBean {
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty("id")
 	private Long id;
 	@ApiModelProperty("updateTime")

+ 3 - 0
themis-business/src/main/java/com/qmth/themis/business/bean/exam/LivenessVerifyParamBean.java

@@ -1,11 +1,14 @@
 package com.qmth.themis.business.bean.exam;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
 @ApiModel("活体验证结果参数")
 public class LivenessVerifyParamBean {
 
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty("考试记录ID")
 	private Long recordId;
 

+ 4 - 1
themis-business/src/main/java/com/qmth/themis/business/bean/exam/MobileAnswerSubmitParamBean.java

@@ -1,11 +1,14 @@
 package com.qmth.themis.business.bean.exam;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
 @ApiModel("移动端提交作答结果参数")
 public class MobileAnswerSubmitParamBean {
-	
+
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty("考试记录id")
 	private Long recordId;
 	

+ 4 - 1
themis-business/src/main/java/com/qmth/themis/business/bean/exam/PrepareParamBean.java

@@ -1,11 +1,14 @@
 package com.qmth.themis.business.bean.exam;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
 @ApiModel("考试候考参数")
 public class PrepareParamBean {
-	
+
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty("考生id")
 	private Long examStudentId;
 

+ 4 - 1
themis-business/src/main/java/com/qmth/themis/business/bean/exam/QrMobileMonitorParamBean.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.bean.exam;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.common.enums.Source;
 
 import io.swagger.annotations.ApiModel;
@@ -11,7 +13,8 @@ public class QrMobileMonitorParamBean {
 	
 	@ApiModelProperty("监考源")
 	private Source source;
-	
+
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty("考试记录ID")
 	private Long recordId;
 

+ 4 - 1
themis-business/src/main/java/com/qmth/themis/business/bean/exam/QrUploadParamBean.java

@@ -1,11 +1,14 @@
 package com.qmth.themis.business.bean.exam;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
 @ApiModel("二维码上传作答参数")
 public class QrUploadParamBean {
-	
+
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty("考试记录id")
 	private Long recordId;
 	

+ 3 - 0
themis-business/src/main/java/com/qmth/themis/business/bean/exam/ResultParamBean.java

@@ -1,11 +1,14 @@
 package com.qmth.themis.business.bean.exam;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
 @ApiModel("查询交卷结果参数")
 public class ResultParamBean {
 
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty("考试记录id")
 	private Long recordId;
 

+ 3 - 0
themis-business/src/main/java/com/qmth/themis/business/bean/exam/ResumeParamBean.java

@@ -1,11 +1,14 @@
 package com.qmth.themis.business.bean.exam;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
 @ApiModel("断点恢复参数")
 public class ResumeParamBean {
 
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty("考试记录id")
 	private Long recordId;
 

+ 0 - 142
themis-business/src/main/java/com/qmth/themis/business/bean/exam/StudentBean.java

@@ -1,142 +0,0 @@
-package com.qmth.themis.business.bean.exam;
-
-import java.util.Date;
-
-import com.qmth.themis.business.enums.GenderEnum;
-public class StudentBean  {
-    private Long id;
-
-    private Long createId;
-
-    private Date createTime;
-
-    private Long updateId;
-
-    private Date updateTime;
-    
-    private Long orgId;
-
-    private String identity;
-
-    private String idcardNumber;
-
-    private String mobileNumber;
-
-    private String name;
-
-    private GenderEnum gender;
-
-    private String basePhotoPath;
-
-    private Integer enable;
-
-    public StudentBean() {
-
-    }
-
-	public Long getId() {
-		return id;
-	}
-
-	public void setId(Long id) {
-		this.id = id;
-	}
-
-	public Long getCreateId() {
-		return createId;
-	}
-
-	public void setCreateId(Long createId) {
-		this.createId = createId;
-	}
-
-	public Date getCreateTime() {
-		return createTime;
-	}
-
-	public void setCreateTime(Date createTime) {
-		this.createTime = createTime;
-	}
-
-	public Long getUpdateId() {
-		return updateId;
-	}
-
-	public void setUpdateId(Long updateId) {
-		this.updateId = updateId;
-	}
-
-	public Date getUpdateTime() {
-		return updateTime;
-	}
-
-	public void setUpdateTime(Date updateTime) {
-		this.updateTime = updateTime;
-	}
-
-	public Long getOrgId() {
-		return orgId;
-	}
-
-	public void setOrgId(Long orgId) {
-		this.orgId = orgId;
-	}
-
-	public String getIdentity() {
-		return identity;
-	}
-
-	public void setIdentity(String identity) {
-		this.identity = identity;
-	}
-
-	public String getIdcardNumber() {
-		return idcardNumber;
-	}
-
-	public void setIdcardNumber(String idcardNumber) {
-		this.idcardNumber = idcardNumber;
-	}
-
-	public String getMobileNumber() {
-		return mobileNumber;
-	}
-
-	public void setMobileNumber(String mobileNumber) {
-		this.mobileNumber = mobileNumber;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	public GenderEnum getGender() {
-		return gender;
-	}
-
-	public void setGender(GenderEnum gender) {
-		this.gender = gender;
-	}
-
-	public String getBasePhotoPath() {
-		return basePhotoPath;
-	}
-
-	public void setBasePhotoPath(String basePhotoPath) {
-		this.basePhotoPath = basePhotoPath;
-	}
-
-	public Integer getEnable() {
-		return enable;
-	}
-
-	public void setEnable(Integer enable) {
-		this.enable = enable;
-	}
-    
-    
-}

+ 4 - 1
themis-business/src/main/java/com/qmth/themis/business/bean/exam/StudentPaperStructParamBean.java

@@ -1,11 +1,14 @@
 package com.qmth.themis.business.bean.exam;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
 @ApiModel("上传个人试卷结构参数")
 public class StudentPaperStructParamBean {
-	
+
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty("考试记录id")
 	private Long recordId;
 	

+ 4 - 1
themis-business/src/main/java/com/qmth/themis/business/bean/mobile/MobileAuthorizationBean.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.bean.mobile;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.enums.MobileModeEnum;
 
 import io.swagger.annotations.ApiModel;
@@ -16,7 +18,8 @@ public class MobileAuthorizationBean {
 	
 	@ApiModelProperty("sessionId")
 	private String sessionId;
-	
+
+	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty("考试记录id")
 	private Long recordId;
 	

+ 10 - 12
themis-business/src/main/java/com/qmth/themis/business/cache/ExamBreakCacheUtil.java

@@ -5,14 +5,12 @@ import com.qmth.themis.business.enums.ExceptionEnum;
 import com.qmth.themis.business.enums.VerifyExceptionEnum;
 import com.qmth.themis.business.util.RedisUtil;
 
-import java.util.Date;
-
 /**
  * 断点缓存hash值操作
  *
  * @Description:
  * @Author: xiatian
- * @Date: 2020-07-29
+ * @Long: 2020-07-29
  */
 public class ExamBreakCacheUtil {
     private static RedisUtil redisUtil = SpringContextHolder.getBean(RedisUtil.class);
@@ -25,12 +23,12 @@ public class ExamBreakCacheUtil {
         return (Long) redisUtil.get(RedisKeyHelper.examBreakCacheKey(examBreakId), "examRecordId");
     }
 
-    public static void setBreakTime(Long examBreakId, Date breakTime) {
+    public static void setBreakTime(Long examBreakId, Long breakTime) {
         redisUtil.set(RedisKeyHelper.examBreakCacheKey(examBreakId), "breakTime", breakTime);
     }
 
-    public static Date getBreakTime(Long examBreakId) {
-        return (Date) redisUtil.get(RedisKeyHelper.examBreakCacheKey(examBreakId), "breakTime");
+    public static Long getBreakTime(Long examBreakId) {
+        return (Long) redisUtil.get(RedisKeyHelper.examBreakCacheKey(examBreakId), "breakTime");
     }
 
     public static void setBreakReason(Long examBreakId, ExceptionEnum breakReason) {
@@ -50,21 +48,21 @@ public class ExamBreakCacheUtil {
     }
 
 
-    public static void setPrepareTime(Long examBreakId, Date prepareTime) {
+    public static void setPrepareTime(Long examBreakId, Long prepareTime) {
         redisUtil.set(RedisKeyHelper.examBreakCacheKey(examBreakId), "prepareTime", prepareTime);
     }
 
-    public static Date getPrepareTime(Long examBreakId) {
-        return (Date) redisUtil.get(RedisKeyHelper.examBreakCacheKey(examBreakId), "prepareTime");
+    public static Long getPrepareTime(Long examBreakId) {
+        return (Long) redisUtil.get(RedisKeyHelper.examBreakCacheKey(examBreakId), "prepareTime");
     }
 
 
-    public static void setStartTime(Long examBreakId, Date startTime) {
+    public static void setStartTime(Long examBreakId, Long startTime) {
         redisUtil.set(RedisKeyHelper.examBreakCacheKey(examBreakId), "startTime", startTime);
     }
 
-    public static Date getStartTime(Long examBreakId) {
-        return (Date) redisUtil.get(RedisKeyHelper.examBreakCacheKey(examBreakId), "startTime");
+    public static Long getStartTime(Long examBreakId) {
+        return (Long) redisUtil.get(RedisKeyHelper.examBreakCacheKey(examBreakId), "startTime");
     }
 
     public static void setEntryAuthenticationResult(Long examBreakId, VerifyExceptionEnum entryAuthenticationResult) {

+ 32 - 35
themis-business/src/main/java/com/qmth/themis/business/cache/ExamRecordCacheUtil.java

@@ -1,14 +1,11 @@
 package com.qmth.themis.business.cache;
 
-import java.util.Date;
-import java.util.Objects;
-
 import com.qmth.themis.business.constant.SpringContextHolder;
 import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.enums.*;
 import com.qmth.themis.business.service.TOeExamRecordService;
 import com.qmth.themis.business.util.RedisUtil;
-import java.util.Date;
+
 import java.util.Objects;
 
 /**
@@ -35,10 +32,10 @@ public class ExamRecordCacheUtil {
         return (Long) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.paper_id.getCode());
     }
 
-    public static void setFirstStartTime(Long recordId, Date date, boolean update) {
+    public static void setFirstStartTime(Long recordId, Long date, boolean update) {
         redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.first_start_time.getCode(), date);
         if (update) {
-            examRecordService.dataUpdateMq(recordId, ExamRecordFieldEnum.first_start_time.name(), date, 1);
+            examRecordService.dataUpdateMq(recordId, ExamRecordFieldEnum.first_start_time.name(), date);
         }
     }
 
@@ -68,15 +65,15 @@ public class ExamRecordCacheUtil {
         }
     }
 
-    public static void setFinishTime(Long recordId, Date finishTime, boolean update) {
+    public static void setFinishTime(Long recordId, Long finishTime, boolean update) {
         redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.finish_time.getCode(), finishTime);
         if (update) {
-            examRecordService.dataUpdateMq(recordId, ExamRecordFieldEnum.finish_time.name(), finishTime, 1);
+            examRecordService.dataUpdateMq(recordId, ExamRecordFieldEnum.finish_time.name(), finishTime);
         }
     }
 
-    public static Date getFinishTime(Long recordId) {
-        return (Date) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.finish_time.getCode());
+    public static Long getFinishTime(Long recordId) {
+        return (Long) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.finish_time.getCode());
     }
 
     public static void setDurationSeconds(Long recordId, Integer durationSeconds, boolean update) {
@@ -97,8 +94,8 @@ public class ExamRecordCacheUtil {
         return (FinishTypeEnum) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.finish_type.getCode());
     }
 
-    public static Date getClientLastSyncTime(Long recordId) {
-        return (Date) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.client_last_sync_time.getCode());
+    public static Long getClientLastSyncTime(Long recordId) {
+        return (Long) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.client_last_sync_time.getCode());
     }
 
     public static Integer getAlreadyBreakCount(Long recordId) {
@@ -120,8 +117,8 @@ public class ExamRecordCacheUtil {
         return (Long) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.last_break_id.getCode());
     }
 
-    public static Date getLastBreakTime(Long recordId) {
-        return (Date) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.last_break_time.getCode());
+    public static Long getLastBreakTime(Long recordId) {
+        return (Long) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.last_break_time.getCode());
     }
 
     public static void setEntryAuthenticationResult(Long recordId, VerifyExceptionEnum entryAuthenticationResult, boolean update) {
@@ -260,10 +257,10 @@ public class ExamRecordCacheUtil {
         }
     }
 
-    public static void setClientLastSyncTime(Long recordId, Date date, boolean update) {
+    public static void setClientLastSyncTime(Long recordId, Long date, boolean update) {
         redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.client_last_sync_time.getCode(), date);
         if (update) {
-            examRecordService.dataUpdateMq(recordId, ExamRecordFieldEnum.client_last_sync_time.name(), date, 1);
+            examRecordService.dataUpdateMq(recordId, ExamRecordFieldEnum.client_last_sync_time.name(), date);
         }
     }
 
@@ -288,30 +285,30 @@ public class ExamRecordCacheUtil {
         }
     }
 
-    public static void setLastBreakTime(Long recordId, Date date, boolean update) {
+    public static void setLastBreakTime(Long recordId, Long date, boolean update) {
         redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.last_break_time.getCode(), date);
         if (update) {
-            examRecordService.dataUpdateMq(recordId, ExamRecordFieldEnum.last_break_time.name(), date, 1);
+            examRecordService.dataUpdateMq(recordId, ExamRecordFieldEnum.last_break_time.name(), date);
         }
     }
 
-    public static void setLastStartTime(Long recordId, Date date, boolean update) {
+    public static void setLastStartTime(Long recordId, Long date, boolean update) {
         redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.last_start_time.getCode(), date);
         if (update) {
-            examRecordService.dataUpdateMq(recordId, ExamRecordFieldEnum.last_start_time.name(), date, 1);
+            examRecordService.dataUpdateMq(recordId, ExamRecordFieldEnum.last_start_time.name(), date);
         }
     }
 
-    public static Date getLastStartTime(Long recordId) {
-        return (Date) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.last_start_time.getCode());
+    public static Long getLastStartTime(Long recordId) {
+        return (Long) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.last_start_time.getCode());
     }
 
-    public static Date getStartTime(Long recordId) {
-        return (Date) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.start_time.getCode());
+    public static Long getStartTime(Long recordId) {
+        return (Long) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.start_time.getCode());
     }
 
-    public static Date getEndTime(Long recordId) {
-        return (Date) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.end_time.getCode());
+    public static Long getEndTime(Long recordId) {
+        return (Long) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.end_time.getCode());
     }
 
     public static Integer getOpeningSeconds(Long recordId) {
@@ -330,17 +327,17 @@ public class ExamRecordCacheUtil {
         return (Integer) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.force_finish.getCode());
     }
 
-    public static void setStartTime(Long recordId, Date startTime, boolean update) {
+    public static void setStartTime(Long recordId, Long startTime, boolean update) {
         redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.start_time.getCode(), startTime);
         if (update) {
-            examRecordService.dataUpdateMq(recordId, ExamRecordFieldEnum.start_time.name(), startTime, 1);
+            examRecordService.dataUpdateMq(recordId, ExamRecordFieldEnum.start_time.name(), startTime);
         }
     }
 
-    public static void setEndTime(Long recordId, Date endTime, boolean update) {
+    public static void setEndTime(Long recordId, Long endTime, boolean update) {
         redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.end_time.getCode(), endTime);
         if (update) {
-            examRecordService.dataUpdateMq(recordId, ExamRecordFieldEnum.end_time.name(), endTime, 1);
+            examRecordService.dataUpdateMq(recordId, ExamRecordFieldEnum.end_time.name(), endTime);
         }
     }
 
@@ -372,18 +369,18 @@ public class ExamRecordCacheUtil {
         }
     }
 
-    public static void setLastPrepareTime(Long recordId, Date date, boolean update) {
+    public static void setLastPrepareTime(Long recordId, Long date, boolean update) {
         redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), ExamRecordFieldEnum.last_prepare_time.getCode(), date);
         if (update) {
-            examRecordService.dataUpdateMq(recordId, ExamRecordFieldEnum.last_prepare_time.name(), date, 1);
+            examRecordService.dataUpdateMq(recordId, ExamRecordFieldEnum.last_prepare_time.name(), date);
         }
     }
 
-    public static void setExamFinalFinishTime(Long recordId, Date date) {
+    public static void setExamFinalFinishTime(Long recordId, Long date) {
         redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), "finalFinishTime", date);
     }
 
-    public static Date getExamFinalFinishTime(Long recordId) {
-        return (Date) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), "finalFinishTime");
+    public static Long getExamFinalFinishTime(Long recordId) {
+        return (Long) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), "finalFinishTime");
     }
 }

+ 11 - 6
themis-business/src/main/java/com/qmth/themis/business/cache/bean/ExamActivityCacheBean.java

@@ -1,5 +1,8 @@
 package com.qmth.themis.business.cache.bean;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+
 import java.io.Serializable;
 import java.util.Date;
 
@@ -10,8 +13,10 @@ public class ExamActivityCacheBean implements Serializable {
 	private static final long serialVersionUID = -5888311300472703230L;
 
 	//主键
+	@JsonSerialize(using = ToStringSerializer.class)
 	private Long id;
 	//批次id
+	@JsonSerialize(using = ToStringSerializer.class)
 	private Long examId;
 
 	//场次代码
@@ -30,10 +35,10 @@ public class ExamActivityCacheBean implements Serializable {
 	private Integer openingSeconds;
 
 	//开考时间
-	private Date startTime;
+	private Long startTime;
 
 	//结束时间
-	private Date finishTime;
+	private Long finishTime;
 
 	public Long getExamId() {
 		return examId;
@@ -87,19 +92,19 @@ public class ExamActivityCacheBean implements Serializable {
 		this.openingSeconds = openingSeconds;
 	}
 
-	public Date getStartTime() {
+	public Long getStartTime() {
 		return startTime;
 	}
 
-	public void setStartTime(Date startTime) {
+	public void setStartTime(Long startTime) {
 		this.startTime = startTime;
 	}
 
-	public Date getFinishTime() {
+	public Long getFinishTime() {
 		return finishTime;
 	}
 
-	public void setFinishTime(Date finishTime) {
+	public void setFinishTime(Long finishTime) {
 		this.finishTime = finishTime;
 	}
 

+ 40 - 36
themis-business/src/main/java/com/qmth/themis/business/cache/bean/ExamCacheBean.java

@@ -3,6 +3,8 @@ package com.qmth.themis.business.cache.bean;
 import java.io.Serializable;
 import java.util.Date;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.enums.EntryAuthenticationPolicyEnum;
 import com.qmth.themis.business.enums.ExamModeEnum;
 import com.qmth.themis.business.enums.InProcessLivenessJudgePolicyEnum;
@@ -19,21 +21,25 @@ public class ExamCacheBean implements Serializable {
 	private static final long serialVersionUID = -1544653057729256077L;
 
 	 //主键
+     @JsonSerialize(using = ToStringSerializer.class)
     private Long id;
 
     //创建人id
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long createId;
 
     //创建时间
-    private Date createTime;
+    private Long createTime;
 
     //修改人id
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long updateId;
 
     //修改时间
-    private Date updateTime;
+    private Long updateTime;
 	
 	//机构ID
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long orgId;
 
     //批次编码,机构唯一
@@ -46,10 +52,10 @@ public class ExamCacheBean implements Serializable {
     private String tag;
 
     //批次开始时间
-    private Date startTime;
+    private Long startTime;
 
     //批次结束时间
-    private Date endTime;
+    private Long endTime;
 
     //考试口令
     private String shortCode;
@@ -362,22 +368,6 @@ public class ExamCacheBean implements Serializable {
         this.tag = tag;
     }
 
-    public Date getStartTime() {
-        return startTime;
-    }
-
-    public void setStartTime(Date startTime) {
-        this.startTime = startTime;
-    }
-
-    public Date getEndTime() {
-        return endTime;
-    }
-
-    public void setEndTime(Date endTime) {
-        this.endTime = endTime;
-    }
-
     public String getShortCode() {
         return shortCode;
     }
@@ -514,14 +504,6 @@ public class ExamCacheBean implements Serializable {
 		this.createId = createId;
 	}
 
-	public Date getCreateTime() {
-		return createTime;
-	}
-
-	public void setCreateTime(Date createTime) {
-		this.createTime = createTime;
-	}
-
 	public Long getUpdateId() {
 		return updateId;
 	}
@@ -530,13 +512,35 @@ public class ExamCacheBean implements Serializable {
 		this.updateId = updateId;
 	}
 
-	public Date getUpdateTime() {
-		return updateTime;
-	}
+    public Long getCreateTime() {
+        return createTime;
+    }
 
-	public void setUpdateTime(Date updateTime) {
-		this.updateTime = updateTime;
-	}
-    
-    
+    public void setCreateTime(Long createTime) {
+        this.createTime = createTime;
+    }
+
+    public Long getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Long updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public Long getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Long startTime) {
+        this.startTime = startTime;
+    }
+
+    public Long getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Long endTime) {
+        this.endTime = endTime;
+    }
 }

+ 5 - 0
themis-business/src/main/java/com/qmth/themis/business/cache/bean/ExamCourseCacheBean.java

@@ -1,5 +1,8 @@
 package com.qmth.themis.business.cache.bean;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+
 import java.io.Serializable;
 import java.util.List;
 
@@ -11,9 +14,11 @@ public class ExamCourseCacheBean implements Serializable {
 	private static final long serialVersionUID = -9033695063460046875L;
 
 	// 主键
+	@JsonSerialize(using = ToStringSerializer.class)
 	private Long id;
 
 	// 考试ID
+	@JsonSerialize(using = ToStringSerializer.class)
 	private Long examId;
 
 	// 科目编码

+ 4 - 0
themis-business/src/main/java/com/qmth/themis/business/cache/bean/ExamPaperCacheBean.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.cache.bean;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.enums.EncryptModeEnum;
 
 import java.io.Serializable;
@@ -12,8 +14,10 @@ public class ExamPaperCacheBean implements Serializable {
 	private static final long serialVersionUID = 5040597530688212719L;
 
 	// 主键
+	@JsonSerialize(using = ToStringSerializer.class)
 	private Long id;
 	// 批次id
+	@JsonSerialize(using = ToStringSerializer.class)
 	private Long examId;
 
 	// 科目编码

+ 8 - 0
themis-business/src/main/java/com/qmth/themis/business/cache/bean/ExamStudentCacheBean.java

@@ -1,5 +1,8 @@
 package com.qmth.themis.business.cache.bean;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+
 import java.io.Serializable;
 
 public class ExamStudentCacheBean implements Serializable {
@@ -10,15 +13,19 @@ public class ExamStudentCacheBean implements Serializable {
     private static final long serialVersionUID = -7154063361894874051L;
 
     // 主键
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long id;
 
     // 批次id
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long examId;
 
     // 场次id
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long examActivityId;
 
     // 学生id
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long studentId;
 
     // 科目代码
@@ -36,6 +43,7 @@ public class ExamStudentCacheBean implements Serializable {
     //已考考试次数
     private Integer alreadyExamCount;
     // 当前考试记录ID
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long currentRecordId;
 
     private String identity;//证件号

+ 87 - 80
themis-business/src/main/java/com/qmth/themis/business/cache/bean/FaceVerifyCacheBean.java

@@ -1,27 +1,32 @@
 package com.qmth.themis.business.cache.bean;
 
-import java.io.Serializable;
-import java.util.Date;
-
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.enums.ExamTypeEnum;
 import com.qmth.themis.business.enums.VerifyExceptionEnum;
 
-/**人脸验证记录
- * @Description: 
+import java.io.Serializable;
+
+/**
+ * 人脸验证记录
+ *
+ * @Description:
  * @Author: xiatian
  * @Date: 2020-07-31
  */
 public class FaceVerifyCacheBean implements Serializable {
 
     /**
-	 * 
-	 */
-	private static final long serialVersionUID = -3424843813633012427L;
+     *
+     */
+    private static final long serialVersionUID = -3424843813633012427L;
 
-	//主键
+    //主键
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long id;
 
     //考试记录ID
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long examRecordId;
 
     //相似度分数
@@ -31,113 +36,115 @@ public class FaceVerifyCacheBean implements Serializable {
     private Double realness;
 
     //创建时间
-    private Date createTime;
+    private Long createTime;
 
     //更新时间
-    private Date updateTime;
+    private Long updateTime;
 
     //first:初次开考,recover:恢复开考,process:过程中
     private ExamTypeEnum type;
 
     //图片保存路径
     private String photoUrl;
-    
+
     //人脸数量
     private Integer faceCount;
 
     //异常类型
     private VerifyExceptionEnum exception;
-    
+
     //验证时间戳
     private Long time;
 
-	public Long getId() {
-		return id;
-	}
-
-	public void setId(Long id) {
-		this.id = id;
-	}
+    public Long getId() {
+        return id;
+    }
 
-	public Long getExamRecordId() {
-		return examRecordId;
-	}
+    public void setId(Long id) {
+        this.id = id;
+    }
 
-	public void setExamRecordId(Long examRecordId) {
-		this.examRecordId = examRecordId;
-	}
+    public Long getExamRecordId() {
+        return examRecordId;
+    }
 
-	public Double getSimilarity() {
-		return similarity;
-	}
+    public void setExamRecordId(Long examRecordId) {
+        this.examRecordId = examRecordId;
+    }
 
-	public void setSimilarity(Double similarity) {
-		this.similarity = similarity;
-	}
+    public Double getSimilarity() {
+        return similarity;
+    }
 
-	public Double getRealness() {
-		return realness;
-	}
+    public void setSimilarity(Double similarity) {
+        this.similarity = similarity;
+    }
 
-	public void setRealness(Double realness) {
-		this.realness = realness;
-	}
+    public Double getRealness() {
+        return realness;
+    }
 
-	public Date getCreateTime() {
-		return createTime;
-	}
+    public void setRealness(Double realness) {
+        this.realness = realness;
+    }
 
-	public void setCreateTime(Date createTime) {
-		this.createTime = createTime;
-	}
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
 
-	public Date getUpdateTime() {
-		return updateTime;
-	}
+    public Long getCreateTime() {
+        return createTime;
+    }
 
-	public void setUpdateTime(Date updateTime) {
-		this.updateTime = updateTime;
-	}
+    public void setCreateTime(Long createTime) {
+        this.createTime = createTime;
+    }
 
-	public ExamTypeEnum getType() {
-		return type;
-	}
+    public Long getUpdateTime() {
+        return updateTime;
+    }
 
-	public void setType(ExamTypeEnum type) {
-		this.type = type;
-	}
+    public void setUpdateTime(Long updateTime) {
+        this.updateTime = updateTime;
+    }
 
-	public String getPhotoUrl() {
-		return photoUrl;
-	}
+    public ExamTypeEnum getType() {
+        return type;
+    }
 
-	public void setPhotoUrl(String photoUrl) {
-		this.photoUrl = photoUrl;
-	}
+    public void setType(ExamTypeEnum type) {
+        this.type = type;
+    }
 
-	public Integer getFaceCount() {
-		return faceCount;
-	}
+    public String getPhotoUrl() {
+        return photoUrl;
+    }
 
-	public void setFaceCount(Integer faceCount) {
-		this.faceCount = faceCount;
-	}
+    public void setPhotoUrl(String photoUrl) {
+        this.photoUrl = photoUrl;
+    }
 
-	public VerifyExceptionEnum getException() {
-		return exception;
-	}
+    public Integer getFaceCount() {
+        return faceCount;
+    }
 
-	public void setException(VerifyExceptionEnum exception) {
-		this.exception = exception;
-	}
+    public void setFaceCount(Integer faceCount) {
+        this.faceCount = faceCount;
+    }
 
-	public Long getTime() {
-		return time;
-	}
+    public VerifyExceptionEnum getException() {
+        return exception;
+    }
 
-	public void setTime(Long time) {
-		this.time = time;
-	}
+    public void setException(VerifyExceptionEnum exception) {
+        this.exception = exception;
+    }
 
+    public Long getTime() {
+        return time;
+    }
 
+    public void setTime(Long time) {
+        this.time = time;
+    }
 }

+ 24 - 20
themis-business/src/main/java/com/qmth/themis/business/cache/bean/LivenessVerifyCacheBean.java

@@ -3,25 +3,31 @@ package com.qmth.themis.business.cache.bean;
 import java.io.Serializable;
 import java.util.Date;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.enums.LivenessTypeEnum;
 import com.qmth.themis.business.enums.VerifyExceptionEnum;
 
-/**活体验证记录
- * @Description: 
+/**
+ * 活体验证记录
+ *
+ * @Description:
  * @Author: xiatian
  * @Date: 2020-07-31
  */
 public class LivenessVerifyCacheBean implements Serializable {
 
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 281742662773373959L;
+    /**
+     *
+     */
+    private static final long serialVersionUID = 281742662773373959L;
 
-	//主键
+    //主键
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long id;
 
     //考试记录ID
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long examRecordId;
 
     private LivenessTypeEnum type;
@@ -36,10 +42,10 @@ public class LivenessVerifyCacheBean implements Serializable {
     private VerifyExceptionEnum exception;
 
     //开始时间
-    private Date startTime;
+    private Long startTime;
 
     //完成时间
-    private Date finishTime;
+    private Long finishTime;
 
     public static long getSerialVersionUID() {
         return serialVersionUID;
@@ -85,29 +91,27 @@ public class LivenessVerifyCacheBean implements Serializable {
         this.retry = retry;
     }
 
-
     public VerifyExceptionEnum getException() {
-		return exception;
-	}
+        return exception;
+    }
 
-	public void setException(VerifyExceptionEnum exception) {
-		this.exception = exception;
-	}
+    public void setException(VerifyExceptionEnum exception) {
+        this.exception = exception;
+    }
 
-	public Date getStartTime() {
+    public Long getStartTime() {
         return startTime;
     }
 
-    public void setStartTime(Date startTime) {
+    public void setStartTime(Long startTime) {
         this.startTime = startTime;
     }
 
-    public Date getFinishTime() {
+    public Long getFinishTime() {
         return finishTime;
     }
 
-    public void setFinishTime(Date finishTime) {
+    public void setFinishTime(Long finishTime) {
         this.finishTime = finishTime;
     }
-
 }

+ 3 - 5
themis-business/src/main/java/com/qmth/themis/business/config/MetaHandler.java

@@ -4,8 +4,6 @@ import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
 import org.apache.ibatis.reflection.MetaObject;
 import org.springframework.stereotype.Component;
 
-import java.util.Date;
-
 /**
  * @Description: mybatis 自动插入时间和id
  * @Param:
@@ -18,12 +16,12 @@ public class MetaHandler implements MetaObjectHandler {
 
     @Override
     public void insertFill(MetaObject metaObject) {
-        this.setFieldValByName("createTime", new Date(), metaObject);
-        this.setFieldValByName("updateTime", new Date(), metaObject);
+        this.setFieldValByName("createTime", System.currentTimeMillis(), metaObject);
+        this.setFieldValByName("updateTime", System.currentTimeMillis(), metaObject);
     }
 
     @Override
     public void updateFill(MetaObject metaObject) {
-        this.setFieldValByName("updateTime", new Date(), metaObject);
+        this.setFieldValByName("updateTime", System.currentTimeMillis(), metaObject);
     }
 }

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

@@ -222,27 +222,27 @@ public class SystemConstant {
         return diff < -1 * Constants.SIGNATURE_AHEAD_SECONDS || diff > Constants.SIGNATURE_EXPIRE_SECONDS;
     }
 
-    /**
-     * 毫秒时间转换
-     *
-     * @param map
-     * @return
-     */
-    public static Map timeTransform(Map map) {
-        if (Objects.nonNull(map) && Objects.nonNull(map.get("createTime")) && map.get("createTime") instanceof Long) {
-            map.put("createTime", new Date((Long) map.get("createTime")));
-        }
-        if (Objects.nonNull(map) && Objects.nonNull(map.get("startTime")) && map.get("startTime") instanceof Long) {
-            map.put("startTime", new Date((Long) map.get("startTime")));
-        }
-        if (Objects.nonNull(map) && Objects.nonNull(map.get("finishTime")) && map.get("finishTime") instanceof Long) {
-            map.put("finishTime", new Date((Long) map.get("finishTime")));
-        }
-        if (Objects.nonNull(map) && Objects.nonNull(map.get("updateTime")) && map.get("updateTime") instanceof Long) {
-            map.put("updateTime", new Date((Long) map.get("updateTime")));
-        }
-        return map;
-    }
+//    /**
+//     * 毫秒时间转换
+//     *
+//     * @param map
+//     * @return
+//     */
+//    public static Map timeTransform(Map map) {
+//        if (Objects.nonNull(map) && Objects.nonNull(map.get("createTime")) && map.get("createTime") instanceof Long) {
+//            map.put("createTime", new Date((Long) map.get("createTime")));
+//        }
+//        if (Objects.nonNull(map) && Objects.nonNull(map.get("startTime")) && map.get("startTime") instanceof Long) {
+//            map.put("startTime", new Date((Long) map.get("startTime")));
+//        }
+//        if (Objects.nonNull(map) && Objects.nonNull(map.get("finishTime")) && map.get("finishTime") instanceof Long) {
+//            map.put("finishTime", new Date((Long) map.get("finishTime")));
+//        }
+//        if (Objects.nonNull(map) && Objects.nonNull(map.get("updateTime")) && map.get("updateTime") instanceof Long) {
+//            map.put("updateTime", new Date((Long) map.get("updateTime")));
+//        }
+//        return map;
+//    }
 
     /**
      * 初始化附件文件路径

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

@@ -73,7 +73,7 @@ public interface TEExamActivityMapper extends BaseMapper<TEExamActivity> {
      * @param finishDate
      * @return
      */
-    public IPage<TEExamActivityQueryDto> examActivityQuery(IPage<Map> iPage, @Param("id") Long id, @Param("examId") Long examId, @Param("code") String code, @Param("startDate") String startDate, @Param("finishDate") String finishDate);
+    public IPage<TEExamActivityQueryDto> examActivityQuery(IPage<Map> iPage, @Param("id") Long id, @Param("examId") Long examId, @Param("code") String code, @Param("startDate") Long startDate, @Param("finishDate") Long finishDate);
 
     /**
      * 获取考试待考列表

+ 4 - 4
themis-business/src/main/java/com/qmth/themis/business/dao/TEExamReexamMapper.java

@@ -67,8 +67,8 @@ public interface TEExamReexamMapper extends BaseMapper<TEExamReexam> {
                                                               @Param("name") String name,
                                                               @Param("identity") String identity,
                                                               @Param("reason") String reason,
-                                                              @Param("reasonStartTime") String reasonStartTime,
-                                                              @Param("reasonEndTime") String reasonEndTime,
+                                                              @Param("reasonStartTime") Long reasonStartTime,
+                                                              @Param("reasonEndTime") Long reasonEndTime,
                                                               @Param("applyName") String applyName,
                                                               @Param("userId") Long userId);
 
@@ -105,8 +105,8 @@ public interface TEExamReexamMapper extends BaseMapper<TEExamReexam> {
                                                         @Param("name") String name,
                                                         @Param("identity") String identity,
                                                         @Param("auditingStatus") Integer auditingStatus,
-                                                        @Param("reasonStartTime") String reasonStartTime,
-                                                        @Param("reasonEndTime") String reasonEndTime,
+                                                        @Param("reasonStartTime") Long reasonStartTime,
+                                                        @Param("reasonEndTime") Long reasonEndTime,
                                                         @Param("applyName") String applyName,
                                                         @Param("userId") Long userId);
 

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

@@ -308,5 +308,5 @@ public interface TOeExamRecordMapper extends BaseMapper<TOeExamRecord> {
 
     public List<Map<String, Object>> getTypeDistribution();
 
-    public List<ExaminationMonitorHourWarnCountBean> getWarnTrend(@Param("startTime") Date startTime);
+    public List<ExaminationMonitorHourWarnCountBean> getWarnTrend(@Param("startTime") Long startTime);
 }

+ 3 - 0
themis-business/src/main/java/com/qmth/themis/business/dto/ExamPropCountDto.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.dto;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -17,6 +19,7 @@ import java.util.Set;
 @ApiModel("考试属性统计返回信息")
 public class ExamPropCountDto implements Serializable {
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试id")
     private Long examId;//考试批次id
 

+ 3 - 3
themis-business/src/main/java/com/qmth/themis/business/dto/MqDto.java

@@ -19,7 +19,7 @@ public class MqDto implements Serializable {
     private String id;//消息id
     private String topic;//消息topic
     private String tag;//消息tag
-    private long timestamp;//时间戳
+    private Long timestamp;//时间戳
     private Object body;//消息体
     private MqTagEnum type;//消息类型
     private String objId;//关联业务id
@@ -91,11 +91,11 @@ public class MqDto implements Serializable {
         this.tag = tag;
     }
 
-    public long getTimestamp() {
+    public Long getTimestamp() {
         return timestamp;
     }
 
-    public void setTimestamp(long timestamp) {
+    public void setTimestamp(Long timestamp) {
         this.timestamp = timestamp;
     }
 

+ 3 - 0
themis-business/src/main/java/com/qmth/themis/business/dto/WarningDto.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.dto;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.enums.VerifyExceptionEnum;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -23,6 +25,7 @@ public class WarningDto implements Serializable {
     @ApiModelProperty(name = "真实性结果,-1:没有,0:异常,1:正常")
     private Double realness;//真实性结果,-1:没有,0:异常,1:正常
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试记录id")
     private Long recordId;//考试记录id
 

+ 4 - 0
themis-business/src/main/java/com/qmth/themis/business/dto/cache/TEStudentCacheDto.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.dto.cache;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
@@ -13,9 +15,11 @@ import java.io.Serializable;
 */ 
 public class TEStudentCacheDto implements Serializable {
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "学生id")
     private Long id;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "机构id")
     private Long orgId;
 

+ 9 - 6
themis-business/src/main/java/com/qmth/themis/business/dto/request/TEExamDto.java

@@ -1,6 +1,8 @@
 package com.qmth.themis.business.dto.request;
 
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.base.BaseEntity;
 import com.qmth.themis.business.entity.TEExam;
 import com.qmth.themis.business.enums.*;
@@ -17,6 +19,7 @@ import java.util.*;
  */
 public class TEExamDto extends BaseEntity {
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "机构ID")
     @TableField(value = "org_id")
     private Long orgId;
@@ -35,11 +38,11 @@ public class TEExamDto extends BaseEntity {
 
     @ApiModelProperty(value = "批次开始时间")
     @TableField(value = "start_time")
-    private Date startTime;
+    private Long startTime;
 
     @ApiModelProperty(value = "批次结束时间")
     @TableField(value = "end_time")
-    private Date endTime;
+    private Long endTime;
 
     @ApiModelProperty(value = "考试口令")
     @TableField(value = "short_code")
@@ -293,19 +296,19 @@ public class TEExamDto extends BaseEntity {
         this.tag = tag;
     }
 
-    public Date getStartTime() {
+    public Long getStartTime() {
         return startTime;
     }
 
-    public void setStartTime(Date startTime) {
+    public void setStartTime(Long startTime) {
         this.startTime = startTime;
     }
 
-    public Date getEndTime() {
+    public Long getEndTime() {
         return endTime;
     }
 
-    public void setEndTime(Date endTime) {
+    public void setEndTime(Long endTime) {
         this.endTime = endTime;
     }
 

+ 3 - 0
themis-business/src/main/java/com/qmth/themis/business/dto/response/TBExamInvigilateUserDto.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.dto.response;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
@@ -13,6 +15,7 @@ import java.io.Serializable;
 */ 
 public class TBExamInvigilateUserDto implements Serializable {
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试批次id")
     private Long examId;//考试批次id
 

+ 7 - 3
themis-business/src/main/java/com/qmth/themis/business/dto/response/TBOrgDto.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.dto.response;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
@@ -14,6 +16,7 @@ import java.util.Date;
 */ 
 public class TBOrgDto implements Serializable {
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "机构id")
     private Long id;//机构id
 
@@ -42,8 +45,9 @@ public class TBOrgDto implements Serializable {
     private String updateName;//更新人
 
     @ApiModelProperty(name = "更新时间")
-    private Date updateTime;//更新时间
+    private Long updateTime;//更新时间
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "模考试卷id")
     private Long simulatePaperId;//模考试卷id
 
@@ -171,11 +175,11 @@ public class TBOrgDto implements Serializable {
         this.updateName = updateName;
     }
 
-    public Date getUpdateTime() {
+    public Long getUpdateTime() {
         return updateTime;
     }
 
-    public void setUpdateTime(Date updateTime) {
+    public void setUpdateTime(Long updateTime) {
         this.updateTime = updateTime;
     }
 }

+ 14 - 9
themis-business/src/main/java/com/qmth/themis/business/dto/response/TBTaskDto.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.dto.response;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
@@ -14,12 +16,14 @@ import java.util.Date;
  */
 public class TBTaskDto implements Serializable {
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "任务id")
     private Long id;//id
 
     @ApiModelProperty(name = "任务类型,calculate_exam_score:考试重新算分,import_exam_student:导入考生,import_exam_paper:导入试卷,import_invigilate_user:导入监考员,export_invigilate_user:导出监考员")
     private String type;//类型
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "实体id")
     private Long entityId;//实体id
 
@@ -39,14 +43,15 @@ public class TBTaskDto implements Serializable {
     private String hasReportFile;//报告路径
 
     @ApiModelProperty(name = "创建时间")
-    private Date createTime;//创建时间
+    private Long createTime;//创建时间
 
     @ApiModelProperty(name = "开始时间")
-    private Date startTime;//开始时间
+    private Long startTime;//开始时间
 
     @ApiModelProperty(name = "结束时间")
-    private Date finishTime;//结束时间
+    private Long finishTime;//结束时间
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "创建人id")
     private Long createId;//创建人id
 
@@ -139,27 +144,27 @@ public class TBTaskDto implements Serializable {
         this.hasReportFile = hasReportFile;
     }
 
-    public Date getCreateTime() {
+    public Long getCreateTime() {
         return createTime;
     }
 
-    public void setCreateTime(Date createTime) {
+    public void setCreateTime(Long createTime) {
         this.createTime = createTime;
     }
 
-    public Date getStartTime() {
+    public Long getStartTime() {
         return startTime;
     }
 
-    public void setStartTime(Date startTime) {
+    public void setStartTime(Long startTime) {
         this.startTime = startTime;
     }
 
-    public Date getFinishTime() {
+    public Long getFinishTime() {
         return finishTime;
     }
 
-    public void setFinishTime(Date finishTime) {
+    public void setFinishTime(Long finishTime) {
         this.finishTime = finishTime;
     }
 

+ 8 - 3
themis-business/src/main/java/com/qmth/themis/business/dto/response/TBUserDto.java

@@ -1,5 +1,8 @@
 package com.qmth.themis.business.dto.response;
 
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
@@ -15,6 +18,7 @@ import java.util.List;
  */
 public class TBUserDto implements Serializable {
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "用户id")
     private Long id;//id
 
@@ -31,11 +35,12 @@ public class TBUserDto implements Serializable {
     private String updateName;//更新人
 
     @ApiModelProperty(name = "更新时间")
-    private Date updateTime;//更新时间
+    private Long updateTime;//更新时间
 
     @ApiModelProperty(name = "登录名")
     private String loginName;//登录名
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "机构id")
     private Long orgId;//机构id
 
@@ -150,11 +155,11 @@ public class TBUserDto implements Serializable {
         this.updateName = updateName;
     }
 
-    public Date getUpdateTime() {
+    public Long getUpdateTime() {
         return updateTime;
     }
 
-    public void setUpdateTime(Date updateTime) {
+    public void setUpdateTime(Long updateTime) {
         this.updateTime = updateTime;
     }
 }

+ 18 - 13
themis-business/src/main/java/com/qmth/themis/business/dto/response/TEExamActivityDto.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.dto.response;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.cache.bean.ExamActivityCacheBean;
 import com.qmth.themis.business.cache.bean.ExamCacheBean;
 import com.qmth.themis.business.cache.bean.ExamCourseCacheBean;
@@ -22,12 +24,14 @@ import java.util.*;
  */
 public class TEExamActivityDto implements Serializable {
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试场次id")
     private Long id;//考试id
 
     @ApiModelProperty(name = "考试场次代码")
     private String code;//考试场次代码
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考生id")
     private Long examStudentId;//考生id
 
@@ -107,10 +111,10 @@ public class TEExamActivityDto implements Serializable {
     private Integer cameraPhotoUpload;//是否允许使用摄像头拍照答题,0:不允许,1:允许
 
     @ApiModelProperty(name = "考场开始时间")
-    private Date startTime;//考场开始时间
+    private Long startTime;//考场开始时间
 
     @ApiModelProperty(name = "考场结束时间")
-    private Date finishTime;//考场结束时间
+    private Long finishTime;//考场结束时间
 
     @ApiModelProperty(name = "剩余考试次数")
     private Integer leftExamCount;//剩余考试次数
@@ -121,6 +125,7 @@ public class TEExamActivityDto implements Serializable {
     @ApiModelProperty(name = "客户端监控是否启用音频与麦克风")
     private Boolean monitorAudioEnable = false;//客户端监控是否启用音频与麦克风
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试id")
     private Long examId;//考试id
 
@@ -138,24 +143,24 @@ public class TEExamActivityDto implements Serializable {
         this.courseCode = examStudentCacheBean.getCourseCode();
         this.courseName = examStudentCacheBean.getCourseName();
         if (Objects.nonNull(examActivityCacheBean.getPrepareSeconds())) {
-            this.prepareTime = examActivityCacheBean.getStartTime().getTime() - (examActivityCacheBean.getPrepareSeconds() * 1000);
+            this.prepareTime = examActivityCacheBean.getStartTime() - (examActivityCacheBean.getPrepareSeconds() * 1000);
         } else if (Objects.nonNull(ec.getPrepareSeconds())) {
-            this.prepareTime = examActivityCacheBean.getStartTime().getTime() - (ec.getPrepareSeconds() * 1000);
+            this.prepareTime = examActivityCacheBean.getStartTime() - (ec.getPrepareSeconds() * 1000);
         }
         if (Objects.nonNull(examActivityCacheBean.getStartTime())) {
-            this.minStartTime = examActivityCacheBean.getStartTime().getTime();
+            this.minStartTime = examActivityCacheBean.getStartTime();
         } else {
-            this.minStartTime = ec.getStartTime().getTime();
+            this.minStartTime = ec.getStartTime();
         }
         if (Objects.nonNull(examActivityCacheBean.getOpeningSeconds())) {
-            this.maxStartTime = examActivityCacheBean.getStartTime().getTime() + (examActivityCacheBean.getOpeningSeconds() * 1000);
+            this.maxStartTime = examActivityCacheBean.getStartTime() + (examActivityCacheBean.getOpeningSeconds() * 1000);
         } else if (Objects.nonNull(ec.getMaxDurationSeconds())) {
-            this.maxStartTime = examActivityCacheBean.getStartTime().getTime() + (ec.getOpeningSeconds() * 1000);
+            this.maxStartTime = examActivityCacheBean.getStartTime() + (ec.getOpeningSeconds() * 1000);
         }
         if (Objects.equals(ec.getMode(), ExamModeEnum.ANYTIME) || (Objects.equals(ec.getMode(), ExamModeEnum.TOGETHER) && ec.getForceFinish() == 0)) {
             this.maxFinishTime = null;
         } else {
-            this.maxFinishTime = Objects.nonNull(examActivityCacheBean.getFinishTime()) ? examActivityCacheBean.getFinishTime().getTime() : ec.getEndTime().getTime();
+            this.maxFinishTime = Objects.nonNull(examActivityCacheBean.getFinishTime()) ? examActivityCacheBean.getFinishTime() : ec.getEndTime();
         }
         this.cameraPhotoUpload = ec.getCameraPhotoUpload();
         this.entryAuthenticationPolicy = ec.getEntryAuthenticationPolicy().name();
@@ -476,19 +481,19 @@ public class TEExamActivityDto implements Serializable {
         this.cameraPhotoUpload = cameraPhotoUpload;
     }
 
-    public Date getStartTime() {
+    public Long getStartTime() {
         return startTime;
     }
 
-    public void setStartTime(Date startTime) {
+    public void setStartTime(Long startTime) {
         this.startTime = startTime;
     }
 
-    public Date getFinishTime() {
+    public Long getFinishTime() {
         return finishTime;
     }
 
-    public void setFinishTime(Date finishTime) {
+    public void setFinishTime(Long finishTime) {
         this.finishTime = finishTime;
     }
 }

+ 13 - 9
themis-business/src/main/java/com/qmth/themis/business/dto/response/TEExamActivityQueryDto.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.dto.response;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
@@ -14,12 +16,14 @@ import java.util.Date;
  */
 public class TEExamActivityQueryDto implements Serializable {
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试场次id")
     private Long id;//考试id
 
     @ApiModelProperty(name = "考试场次代码")
     private String code;//考试场次id
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试批次id")
     private Long examId;//考试批次id
 
@@ -36,13 +40,13 @@ public class TEExamActivityQueryDto implements Serializable {
     private Integer openingSeconds;//允许开考时长(分钟);
 
     @ApiModelProperty(name = "开始时间")
-    private Date startTime;//开始时间
+    private Long startTime;//开始时间
 
     @ApiModelProperty(name = "结束时间")
-    private Date finishTime;//结束时间
+    private Long finishTime;//结束时间
 
     @ApiModelProperty(name = "更新时间")
-    private Date updateTime;//更新时间
+    private Long updateTime;//更新时间
 
     @ApiModelProperty(name = "更新人")
     private String updateName;//更新人
@@ -103,27 +107,27 @@ public class TEExamActivityQueryDto implements Serializable {
         this.openingSeconds = openingSeconds;
     }
 
-    public Date getStartTime() {
+    public Long getStartTime() {
         return startTime;
     }
 
-    public void setStartTime(Date startTime) {
+    public void setStartTime(Long startTime) {
         this.startTime = startTime;
     }
 
-    public Date getFinishTime() {
+    public Long getFinishTime() {
         return finishTime;
     }
 
-    public void setFinishTime(Date finishTime) {
+    public void setFinishTime(Long finishTime) {
         this.finishTime = finishTime;
     }
 
-    public Date getUpdateTime() {
+    public Long getUpdateTime() {
         return updateTime;
     }
 
-    public void setUpdateTime(Date updateTime) {
+    public void setUpdateTime(Long updateTime) {
         this.updateTime = updateTime;
     }
 

+ 34 - 4
themis-business/src/main/java/com/qmth/themis/business/dto/response/TEExamCourseDto.java

@@ -1,5 +1,9 @@
 package com.qmth.themis.business.dto.response;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+
 import java.io.Serializable;
 import java.util.Date;
 
@@ -12,19 +16,45 @@ import java.util.Date;
  */
 public class TEExamCourseDto implements Serializable {
 
-
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(name = "id")
     private Long id;//id
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(name = "考试批次id")
     private Long examId;//考试id
+
+    @ApiModelProperty(name = "科目代码")
     private String courseCode;//科目代码
+
+    @ApiModelProperty(name = "科目名称")
     private String courseName;//科目名称
+
+    @ApiModelProperty(name = "是否开启客观题乱序,0:不开启,1:开启")
     private Integer objectiveShuffle;//是否开启客观题乱序,0:不开启,1:开启
+
+    @ApiModelProperty(name = "是否选项乱序,针对一个科目进行设置,0:不开启,1:开启")
     private Integer optionShuffle;//是否选项乱序,针对一个科目进行设置,0:不开启,1:开启
+
+    @ApiModelProperty(name = "已绑定试卷数量")
     private Integer paperCount;//已绑定试卷数量
+
+    @ApiModelProperty(name = "是否已补齐标答,0:否,1:是")
     private Integer hasAnswer;//是否已补齐标答,0:否,1:是
+
+    @ApiModelProperty(name = "音频播放次数")
     private Integer audioPlayCount;//音频播放次数
+
+    @ApiModelProperty(name = "题干包含音频,0:不包含,1:包含")
     private Integer hasAudio;//题干包含音频,0:不包含,1:包含
+
+    @ApiModelProperty(name = "是否绑定试卷,0:没绑定,1:绑定")
     private Integer hasPaper;//是否绑定试卷,0:没绑定,1:绑定
-    private Date updateTime;//更新时间
+
+    @ApiModelProperty(name = "更新时间")
+    private Long updateTime;//更新时间
+
+    @ApiModelProperty(name = "更新人")
     private String updateName;//更新人
 
     public Long getExamId() {
@@ -35,11 +65,11 @@ public class TEExamCourseDto implements Serializable {
         this.examId = examId;
     }
 
-    public Date getUpdateTime() {
+    public Long getUpdateTime() {
         return updateTime;
     }
 
-    public void setUpdateTime(Date updateTime) {
+    public void setUpdateTime(Long updateTime) {
         this.updateTime = updateTime;
     }
 

+ 4 - 0
themis-business/src/main/java/com/qmth/themis/business/dto/response/TEExamDto.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.dto.response;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
@@ -15,9 +17,11 @@ import java.util.Map;
  */
 public class TEExamDto implements Serializable {
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试批次id")
     private Long id;//考试id
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试场次id")
     private Long examActivityId;//考试场次id
 

+ 12 - 9
themis-business/src/main/java/com/qmth/themis/business/dto/response/TEExamQueryDto.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.dto.response;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
@@ -15,6 +17,7 @@ import java.util.List;
  */
 public class TEExamQueryDto implements Serializable {
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试id")
     private Long id;//考试id
 
@@ -34,16 +37,16 @@ public class TEExamQueryDto implements Serializable {
     private Integer enable;//是否启用
 
     @ApiModelProperty(name = "开始时间")
-    private Date startTime;//开始时间
+    private Long startTime;//开始时间
 
     @ApiModelProperty(name = "结束时间")
-    private Date endTime;//结束时间
+    private Long endTime;//结束时间
 
     @ApiModelProperty(name = "算分进度")
     private Double progress;//算分进度
 
     @ApiModelProperty(name = "更新时间")
-    private Date updateTime;//更新时间
+    private Long updateTime;//更新时间
 
     @ApiModelProperty(name = "更新人")
     private String updateName;//更新人
@@ -96,19 +99,19 @@ public class TEExamQueryDto implements Serializable {
         this.enable = enable;
     }
 
-    public Date getStartTime() {
+    public Long getStartTime() {
         return startTime;
     }
 
-    public void setStartTime(Date startTime) {
+    public void setStartTime(Long startTime) {
         this.startTime = startTime;
     }
 
-    public Date getEndTime() {
+    public Long getEndTime() {
         return endTime;
     }
 
-    public void setEndTime(Date endTime) {
+    public void setEndTime(Long endTime) {
         this.endTime = endTime;
     }
 
@@ -120,11 +123,11 @@ public class TEExamQueryDto implements Serializable {
         this.progress = progress;
     }
 
-    public Date getUpdateTime() {
+    public Long getUpdateTime() {
         return updateTime;
     }
 
-    public void setUpdateTime(Date updateTime) {
+    public void setUpdateTime(Long updateTime) {
         this.updateTime = updateTime;
     }
 

+ 5 - 0
themis-business/src/main/java/com/qmth/themis/business/dto/response/TEExamStudentDto.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.dto.response;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
@@ -15,6 +17,7 @@ import com.qmth.themis.business.excel.ExcelProperty;
 */ 
 public class TEExamStudentDto implements Serializable {
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考生id")
     private Long id;//考生id
 
@@ -62,6 +65,7 @@ public class TEExamStudentDto implements Serializable {
     @ApiModelProperty(name = "教学班级")
     private String classNo;//教学班级
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "场次id")
     private Long examActivityId;//场次id
 
@@ -69,6 +73,7 @@ public class TEExamStudentDto implements Serializable {
     @ApiModelProperty(name = "场次代码")
     private String activityCode;//场次代码
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试批次id")
     private Long examId;//考试批次id
     

+ 27 - 21
themis-business/src/main/java/com/qmth/themis/business/dto/response/TEExamUnFinishDto.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.dto.response;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
@@ -14,15 +16,19 @@ import java.util.Date;
  */
 public class TEExamUnFinishDto implements Serializable {
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试id")
     private Long id;//考试id
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试场次id")
     private Long examActivityId;//考试场次id
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试记录id")
     private Long recordId;//考试记录id
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考生id")
     private Long examStudentId;//考生id
 
@@ -48,16 +54,16 @@ public class TEExamUnFinishDto implements Serializable {
     private String examActivityCode;//考试场次代码
 
     @ApiModelProperty(name = "考试开始时间")
-    private Date examStartTime;//考试开始时间
+    private Long examStartTime;//考试开始时间
 
     @ApiModelProperty(name = "考试结束时间")
-    private Date examEndTime;//考试结束时间
+    private Long examEndTime;//考试结束时间
 
     @ApiModelProperty(name = "考场开始时间")
-    private Date examActivityStartTime;//考场开始时间
+    private Long examActivityStartTime;//考场开始时间
 
     @ApiModelProperty(name = "考场结束时间")
-    private Date examActivityFinishTime;//考场结束时间
+    private Long examActivityFinishTime;//考场结束时间
 
     @ApiModelProperty(name = "科目代码")
     private String courseCode;//科目代码
@@ -111,7 +117,7 @@ public class TEExamUnFinishDto implements Serializable {
     private Integer durationSeconds;//累计考试用时
 
     @ApiModelProperty(name = "客户端最近同步时间")
-    private Date clientLastSyncTime;//客户端最近同步时间
+    private Long clientLastSyncTime;//客户端最近同步时间
 
     @ApiModelProperty(name = "是否允许使用移动端拍照答题,0:不开启,1:开启")
     private Integer mobilePhotoUpload;//是否允许使用移动端拍照答题,0:不开启,1:开启
@@ -124,14 +130,6 @@ public class TEExamUnFinishDto implements Serializable {
         this.mobilePhotoUpload = mobilePhotoUpload;
     }
 
-    public Date getClientLastSyncTime() {
-        return clientLastSyncTime;
-    }
-
-    public void setClientLastSyncTime(Date clientLastSyncTime) {
-        this.clientLastSyncTime = clientLastSyncTime;
-    }
-
     public Integer getDurationSeconds() {
         return durationSeconds;
     }
@@ -244,38 +242,46 @@ public class TEExamUnFinishDto implements Serializable {
         this.examActivityCode = examActivityCode;
     }
 
-    public Date getExamStartTime() {
+    public Long getExamStartTime() {
         return examStartTime;
     }
 
-    public void setExamStartTime(Date examStartTime) {
+    public void setExamStartTime(Long examStartTime) {
         this.examStartTime = examStartTime;
     }
 
-    public Date getExamEndTime() {
+    public Long getExamEndTime() {
         return examEndTime;
     }
 
-    public void setExamEndTime(Date examEndTime) {
+    public void setExamEndTime(Long examEndTime) {
         this.examEndTime = examEndTime;
     }
 
-    public Date getExamActivityStartTime() {
+    public Long getExamActivityStartTime() {
         return examActivityStartTime;
     }
 
-    public void setExamActivityStartTime(Date examActivityStartTime) {
+    public void setExamActivityStartTime(Long examActivityStartTime) {
         this.examActivityStartTime = examActivityStartTime;
     }
 
-    public Date getExamActivityFinishTime() {
+    public Long getExamActivityFinishTime() {
         return examActivityFinishTime;
     }
 
-    public void setExamActivityFinishTime(Date examActivityFinishTime) {
+    public void setExamActivityFinishTime(Long examActivityFinishTime) {
         this.examActivityFinishTime = examActivityFinishTime;
     }
 
+    public Long getClientLastSyncTime() {
+        return clientLastSyncTime;
+    }
+
+    public void setClientLastSyncTime(Long clientLastSyncTime) {
+        this.clientLastSyncTime = clientLastSyncTime;
+    }
+
     public String getCourseCode() {
         return courseCode;
     }

+ 9 - 6
themis-business/src/main/java/com/qmth/themis/business/dto/response/TEStudentDto.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.dto.response;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
@@ -14,6 +16,7 @@ import java.util.Date;
  */
 public class TEStudentDto implements Serializable {
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "学生id")
     private Long id;//id
 
@@ -39,10 +42,10 @@ public class TEStudentDto implements Serializable {
     private String updateName;//更新人
 
     @ApiModelProperty(name = "创建时间")
-    private Date createTime;//创建时间
+    private Long createTime;//创建时间
 
     @ApiModelProperty(name = "更新时间")
-    private Date updateTime;//更新时间
+    private Long updateTime;//更新时间
 
     public Long getId() {
         return id;
@@ -108,19 +111,19 @@ public class TEStudentDto implements Serializable {
         this.updateName = updateName;
     }
 
-    public Date getCreateTime() {
+    public Long getCreateTime() {
         return createTime;
     }
 
-    public void setCreateTime(Date createTime) {
+    public void setCreateTime(Long createTime) {
         this.createTime = createTime;
     }
 
-    public Date getUpdateTime() {
+    public Long getUpdateTime() {
         return updateTime;
     }
 
-    public void setUpdateTime(Date updateTime) {
+    public void setUpdateTime(Long updateTime) {
         this.updateTime = updateTime;
     }
 }

+ 5 - 0
themis-business/src/main/java/com/qmth/themis/business/dto/response/TEStudentExamRecordDto.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.dto.response;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.enums.ExamRecordStatusEnum;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -14,15 +16,18 @@ import java.io.Serializable;
  */
 public class TEStudentExamRecordDto implements Serializable {
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试批次id")
     private Long examId;//考试批次id
 
     @ApiModelProperty(name = "考试名称")
     private String examName;//考试名称
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考生id")
     private Long examStudentId;//考生id
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试记录id")
     private Long examRecordId;//考试记录id
 

+ 6 - 0
themis-business/src/main/java/com/qmth/themis/business/dto/response/TIeWarningNotifyDto.java

@@ -1,5 +1,7 @@
 package com.qmth.themis.business.dto.response;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.enums.WarningLevelEnum;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -14,9 +16,11 @@ import java.io.Serializable;
  */
 public class TIeWarningNotifyDto implements Serializable {
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试批次id")
     private Long examId;//考试批次id
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考生id")
     private Long examStudentId;//考生id
 
@@ -29,12 +33,14 @@ public class TIeWarningNotifyDto implements Serializable {
     @ApiModelProperty(name = "预警等级")
     private WarningLevelEnum level;//预警等级
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "预警id")
     private Long warningId;//预警id
 
     @ApiModelProperty(name = "预警备注")
     private String remark;//预警备注
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试记录id")
     private Long examRecordId;//考试记录id
 

+ 3 - 3
themis-business/src/main/java/com/qmth/themis/business/entity/TBApp.java

@@ -31,7 +31,7 @@ public class TBApp extends BaseEntity {
 
     @ApiModelProperty(value = "最近访问时间")
     @TableField(value = "last_access_time")
-    private Date lastAccessTime;
+    private Long lastAccessTime;
 
     public String getName() {
         return name;
@@ -57,11 +57,11 @@ public class TBApp extends BaseEntity {
         this.accessSecret = accessSecret;
     }
 
-    public Date getLastAccessTime() {
+    public Long getLastAccessTime() {
         return lastAccessTime;
     }
 
-    public void setLastAccessTime(Date lastAccessTime) {
+    public void setLastAccessTime(Long lastAccessTime) {
         this.lastAccessTime = lastAccessTime;
     }
 }

+ 7 - 3
themis-business/src/main/java/com/qmth/themis/business/entity/TBAttachment.java

@@ -3,6 +3,8 @@ package com.qmth.themis.business.entity;
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -21,6 +23,7 @@ import java.util.Date;
 public class TBAttachment implements Serializable {
     private static final long serialVersionUID = 1L;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "主键")
     @TableId(value = "id")
     private Long id; //主键
@@ -49,13 +52,14 @@ public class TBAttachment implements Serializable {
     @ApiModelProperty(value = "备注")
     private String remark; //备注
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @TableField("create_id")
     @ApiModelProperty(value = "创建人id")
     private Long createId; //创建人id
 
     @TableField(value = "create_time", fill = FieldFill.INSERT)
     @ApiModelProperty(value = "创建时间")
-    private Date createTime; //创建时间
+    private Long createTime; //创建时间
 
     public static long getSerialVersionUID() {
         return serialVersionUID;
@@ -125,11 +129,11 @@ public class TBAttachment implements Serializable {
         this.createId = createId;
     }
 
-    public Date getCreateTime() {
+    public Long getCreateTime() {
         return createTime;
     }
 
-    public void setCreateTime(Date createTime) {
+    public void setCreateTime(Long createTime) {
         this.createTime = createTime;
     }
 }

+ 6 - 0
themis-business/src/main/java/com/qmth/themis/business/entity/TBExamInvigilateUser.java

@@ -3,6 +3,8 @@ package com.qmth.themis.business.entity;
 import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.enums.InvigilateMonitorStatusEnum;
 import com.qmth.themis.common.contanst.Constants;
 import io.swagger.annotations.ApiModel;
@@ -21,18 +23,22 @@ import java.io.Serializable;
 public class TBExamInvigilateUser implements Serializable {
     private static final long serialVersionUID = 1L;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "主键")
     @TableId(value = "id")
     private Long id;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "考试批次ID")
     @TableField(value = "exam_id")
     private Long examId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "机构ID")
     @TableField(value = "org_id")
     private Long orgId;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "用户ID")
     @TableField(value = "user_id", updateStrategy = FieldStrategy.IGNORED)
     private Long userId;

+ 3 - 0
themis-business/src/main/java/com/qmth/themis/business/entity/TBOrg.java

@@ -1,6 +1,8 @@
 package com.qmth.themis.business.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.base.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -35,6 +37,7 @@ public class TBOrg extends BaseEntity {
     @TableField(value = "enable_simulate")
     private Integer enableSimulate;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "模考试卷id")
     @TableField(value = "simulate_paper_id")
     private Long simulatePaperId;

+ 7 - 3
themis-business/src/main/java/com/qmth/themis/business/entity/TBPrivilege.java

@@ -3,6 +3,8 @@ package com.qmth.themis.business.entity;
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -21,6 +23,7 @@ public class TBPrivilege implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "主键")
     @TableId(value = "id")
     private Long id;
@@ -37,6 +40,7 @@ public class TBPrivilege implements Serializable {
     @TableField(value = "type")
     private String type;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "父id")
     @TableField(value = "parent_id")
     private Long parentId;
@@ -51,7 +55,7 @@ public class TBPrivilege implements Serializable {
 
     @ApiModelProperty(value = "创建时间")
     @TableField(value = "create_time", fill = FieldFill.INSERT)
-    private Date createTime;
+    private Long createTime;
 
     public static long getSerialVersionUID() {
         return serialVersionUID;
@@ -113,11 +117,11 @@ public class TBPrivilege implements Serializable {
         this.remark = remark;
     }
 
-    public Date getCreateTime() {
+    public Long getCreateTime() {
         return createTime;
     }
 
-    public void setCreateTime(Date createTime) {
+    public void setCreateTime(Long createTime) {
         this.createTime = createTime;
     }
 }

+ 6 - 3
themis-business/src/main/java/com/qmth/themis/business/entity/TBRole.java

@@ -3,6 +3,8 @@ package com.qmth.themis.business.entity;
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -21,6 +23,7 @@ public class TBRole implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "主键")
     @TableId(value = "id")
     private Long id;
@@ -35,7 +38,7 @@ public class TBRole implements Serializable {
 
     @ApiModelProperty(value = "创建时间")
     @TableField(value = "create_time", fill = FieldFill.INSERT)
-    private Date createTime;
+    private Long createTime;
 
     public static long getSerialVersionUID() {
         return serialVersionUID;
@@ -65,11 +68,11 @@ public class TBRole implements Serializable {
         this.roleName = roleName;
     }
 
-    public Date getCreateTime() {
+    public Long getCreateTime() {
         return createTime;
     }
 
-    public void setCreateTime(Date createTime) {
+    public void setCreateTime(Long createTime) {
         this.createTime = createTime;
     }
 }

+ 4 - 0
themis-business/src/main/java/com/qmth/themis/business/entity/TBRolePrivilege.java

@@ -2,6 +2,8 @@ package com.qmth.themis.business.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -19,6 +21,7 @@ public class TBRolePrivilege implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "主键")
     @TableId(value = "id")
     private Long id;
@@ -27,6 +30,7 @@ public class TBRolePrivilege implements Serializable {
     @TableField(value = "role_code")
     private String roleCode;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "权限id")
     @TableField(value = "privilege_id")
     private Long privilegeId;

+ 20 - 17
themis-business/src/main/java/com/qmth/themis/business/entity/TBSession.java

@@ -3,6 +3,8 @@ package com.qmth.themis.business.entity;
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.constant.SystemConstant;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -22,6 +24,7 @@ public class TBSession implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "主键")
     @TableId(value = "id")
     private String id;
@@ -56,7 +59,7 @@ public class TBSession implements Serializable {
 
     @ApiModelProperty(value = "最近访问时间")
     @TableField(value = "last_access_time")
-    private Date lastAccessTime;
+    private Long lastAccessTime;
 
     @ApiModelProperty(value = "最近访问IP地址")
     @TableField(value = "last_access_ip")
@@ -64,11 +67,11 @@ public class TBSession implements Serializable {
 
     @ApiModelProperty(value = "令牌更新时间")
     @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
-    private Date updateTime;
+    private Long updateTime;
 
     @ApiModelProperty(value = "令牌强制失效时间")
     @TableField(value = "expire_time")
-    private Date expireTime;
+    private Long expireTime;
 
     public static long getSerialVersionUID() {
         return serialVersionUID;
@@ -138,14 +141,6 @@ public class TBSession implements Serializable {
         this.accessToken = accessToken;
     }
 
-    public Date getLastAccessTime() {
-        return lastAccessTime;
-    }
-
-    public void setLastAccessTime(Date lastAccessTime) {
-        this.lastAccessTime = lastAccessTime;
-    }
-
     public String getLastAccessIp() {
         return lastAccessIp;
     }
@@ -154,19 +149,27 @@ public class TBSession implements Serializable {
         this.lastAccessIp = lastAccessIp;
     }
 
-    public Date getUpdateTime() {
+    public Long getLastAccessTime() {
+        return lastAccessTime;
+    }
+
+    public void setLastAccessTime(Long lastAccessTime) {
+        this.lastAccessTime = lastAccessTime;
+    }
+
+    public Long getUpdateTime() {
         return updateTime;
     }
 
-    public void setUpdateTime(Date updateTime) {
+    public void setUpdateTime(Long updateTime) {
         this.updateTime = updateTime;
     }
 
-    public Date getExpireTime() {
+    public Long getExpireTime() {
         return expireTime;
     }
 
-    public void setExpireTime(Date expireTime) {
+    public void setExpireTime(Long expireTime) {
         this.expireTime = expireTime;
     }
 
@@ -174,7 +177,7 @@ public class TBSession implements Serializable {
 
     }
 
-    public TBSession(String id, String identity, String type, String source, String platform, String deviceId, String address, String accessToken, Date expireTime) {
+    public TBSession(String id, String identity, String type, String source, String platform, String deviceId, String address, String accessToken, Long expireTime) {
         this.id = id;
         this.identity = identity;
         this.type = type;
@@ -184,6 +187,6 @@ public class TBSession implements Serializable {
         this.address = address;
         this.accessToken = accessToken;
         this.expireTime = expireTime;
-        this.lastAccessTime = new Date();
+        this.lastAccessTime = System.currentTimeMillis();
     }
 }

+ 16 - 11
themis-business/src/main/java/com/qmth/themis/business/entity/TBTaskHistory.java

@@ -3,6 +3,8 @@ package com.qmth.themis.business.entity;
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.enums.TaskStatusEnum;
 import com.qmth.themis.business.enums.TaskTypeEnum;
 import com.qmth.themis.common.contanst.Constants;
@@ -23,6 +25,7 @@ import java.util.Date;
 public class TBTaskHistory implements Serializable {
     private static final long serialVersionUID = 1L;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "主键")
     @TableId(value = "id")
     private Long id;
@@ -31,6 +34,7 @@ public class TBTaskHistory implements Serializable {
     @TableField("type")
     private TaskTypeEnum type;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "关联业务对象ID")
     @TableField("entity_id")
     private Long entityId;
@@ -63,21 +67,22 @@ public class TBTaskHistory implements Serializable {
     @TableField("report_file_path")
     private String reportFilePath;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "创建人id")
     @TableField("create_id")
     private Long createId;
 
     @ApiModelProperty(value = "创建时间")
     @TableField(value = "create_time", fill = FieldFill.INSERT)
-    private Date createTime;
+    private Long createTime;
 
     @ApiModelProperty(value = "开始时间")
     @TableField(value = "start_time")
-    private Date startTime;
+    private Long startTime;
 
     @ApiModelProperty(value = "结束时间")
     @TableField(value = "finish_time")
-    private Date finishTime;
+    private Long finishTime;
 
     public TBTaskHistory() {
 
@@ -93,7 +98,7 @@ public class TBTaskHistory implements Serializable {
         this.importFileName = importFileName;
         this.importFilePath = importFilePath;
         this.createId = createId;
-        this.startTime = new Date();
+        this.startTime = System.currentTimeMillis();
     }
 
     public TBTaskHistory(TaskTypeEnum type, TaskStatusEnum status, String summary, Double progress, Long createId) {
@@ -103,7 +108,7 @@ public class TBTaskHistory implements Serializable {
         this.summary = summary;
         this.progress = progress;
         this.createId = createId;
-        this.startTime = new Date();
+        this.startTime = System.currentTimeMillis();
     }
 
     public static long getSerialVersionUID() {
@@ -198,27 +203,27 @@ public class TBTaskHistory implements Serializable {
         this.createId = createId;
     }
 
-    public Date getCreateTime() {
+    public Long getCreateTime() {
         return createTime;
     }
 
-    public void setCreateTime(Date createTime) {
+    public void setCreateTime(Long createTime) {
         this.createTime = createTime;
     }
 
-    public Date getStartTime() {
+    public Long getStartTime() {
         return startTime;
     }
 
-    public void setStartTime(Date startTime) {
+    public void setStartTime(Long startTime) {
         this.startTime = startTime;
     }
 
-    public Date getFinishTime() {
+    public Long getFinishTime() {
         return finishTime;
     }
 
-    public void setFinishTime(Date finishTime) {
+    public void setFinishTime(Long finishTime) {
         this.finishTime = finishTime;
     }
 }

+ 3 - 0
themis-business/src/main/java/com/qmth/themis/business/entity/TBUser.java

@@ -1,6 +1,8 @@
 package com.qmth.themis.business.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.base.BaseEntity;
 import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.common.contanst.Constants;
@@ -33,6 +35,7 @@ public class TBUser extends BaseEntity {
     @TableField(value = "enable")
     private Integer enable;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "机构id")
     @TableField(value = "org_id")
     private Long orgId;

+ 4 - 0
themis-business/src/main/java/com/qmth/themis/business/entity/TBUserRole.java

@@ -2,6 +2,8 @@ package com.qmth.themis.business.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.common.contanst.Constants;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -20,10 +22,12 @@ public class TBUserRole implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "主键")
     @TableId(value = "id")
     private Long id;
 
+    @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "用户id")
     @TableField(value = "user_id")
     private Long userId;

Some files were not shown because too many files changed in this diff