xiatian 4 年之前
父节点
当前提交
dbd9ee6628

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

@@ -231,7 +231,7 @@ public class TEExamReexamController {
     @ApiOperation(value = "重考申请列表接口")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = ReexamListRequestBean.class)})
-    public Result list(@ApiParam(value = "考试批次id", required = false) @RequestParam(required = false) Long examId,
+    public Result list(@ApiParam(value = "考试批次id", required = true) @RequestParam(required = true) Long examId,
                        @ApiParam(value = "考试场次id", required = false) @RequestParam(required = false) Long examActivityId,
                        @ApiParam(value = "虚拟考场代码", required = false) @RequestParam(required = false) String roomCode,
                        @ApiParam(value = "科目代码", required = false) @RequestParam(required = false) String courseCode,
@@ -239,6 +239,9 @@ public class TEExamReexamController {
                        @ApiParam(value = "证件号", required = false) @RequestParam(required = false) String identity,
                        @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);
+        }
         TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
         AuthDto authDto = (AuthDto) redisUtil.get(SystemConstant.userOauth + "::" + tbUser.getId());
         //如果有监考员角色,只能查看自己所监考的考场,巡考员和管理员则可以查看全部考场
@@ -252,7 +255,7 @@ public class TEExamReexamController {
     @ApiOperation(value = "重考待审列表接口")
     @RequestMapping(value = "/list_not_done", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = ReexamListRequestBean.class)})
-    public Result listNotDone(@ApiParam(value = "考试批次id", required = false) @RequestParam(required = false) Long examId,
+    public Result listNotDone(@ApiParam(value = "考试批次id", required = true) @RequestParam(required = true) Long examId,
                               @ApiParam(value = "考试场次id", required = false) @RequestParam(required = false) Long examActivityId,
                               @ApiParam(value = "虚拟考场代码", required = false) @RequestParam(required = false) String roomCode,
                               @ApiParam(value = "科目代码", required = false) @RequestParam(required = false) String courseCode,
@@ -264,6 +267,9 @@ public class TEExamReexamController {
                               @ApiParam(value = "申请人", required = false) @RequestParam(required = false) String applyName,
                               @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);
+        }
         TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
         return ResultUtil.ok(teExamReexamService.reexamPageNotDoneList(new Page<>(pageNumber, pageSize), examId, examActivityId, roomCode, courseCode, name, identity, reason, reasonStartTime, reasonEndTime, applyName, tbUser.getId(), tbUser.getOrgId()));
     }
@@ -280,7 +286,7 @@ public class TEExamReexamController {
     @ApiOperation(value = "重考已审列表接口")
     @RequestMapping(value = "/list_done", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = ReexamListRequestBean.class)})
-    public Result listDone(@ApiParam(value = "考试批次id", required = false) @RequestParam(required = false) Long examId,
+    public Result listDone(@ApiParam(value = "考试批次id", required = true) @RequestParam(required = true) Long examId,
                            @ApiParam(value = "考试场次id", required = false) @RequestParam(required = false) Long examActivityId,
                            @ApiParam(value = "虚拟考场代码", required = false) @RequestParam(required = false) String roomCode,
                            @ApiParam(value = "科目代码", required = false) @RequestParam(required = false) String courseCode,
@@ -292,6 +298,9 @@ public class TEExamReexamController {
                            @ApiParam(value = "申请人", required = false) @RequestParam(required = false) String applyName,
                            @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);
+        }
         TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
         return ResultUtil.ok(teExamReexamService.reexamPageDoneList(new Page<>(pageNumber, pageSize), examId, examActivityId, roomCode, courseCode, name, identity, auditingStatus, reasonStartTime, reasonEndTime, applyName, tbUser.getId(), tbUser.getOrgId()));
     }

+ 16 - 4
themis-backend/src/main/java/com/qmth/themis/backend/api/TIeInvigilateController.java

@@ -99,7 +99,7 @@ public class TIeInvigilateController {
     @ApiOperation(value = "实时监控台视频列表接口")
     @RequestMapping(value = "/list/video", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "监考监控信息", response = InvigilateListVideoBean.class)})
-    public Result listVideo(@ApiParam(value = "考试批次id", required = false) @RequestParam(required = false) Long examId,
+    public Result listVideo(@ApiParam(value = "考试批次id", required = true) @RequestParam(required = true) Long examId,
                             @ApiParam(value = "考试场次id", required = false) @RequestParam(required = false) Long examActivityId,
                             @ApiParam(value = "虚拟考场代码", required = false) @RequestParam(required = false) String roomCode,
                             @ApiParam(value = "试题下载状态", required = false) @RequestParam(required = false) Integer paperDownload,
@@ -112,6 +112,9 @@ public class TIeInvigilateController {
                             @ApiParam(value = "监控设备来源", required = false) @RequestParam(required = false) String monitorVideoSource,
                             @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);
+        }
         TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
         AuthDto authDto = (AuthDto) redisUtil.get(SystemConstant.userOauth + "::" + tbUser.getId());
         //如果有监考员角色,只能查看自己所监考的考场,巡考员和管理员则可以查看全部考场
@@ -208,7 +211,7 @@ public class TIeInvigilateController {
     @ApiOperation(value = "监考明细管理列表接口")
     @RequestMapping(value = "/history/list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "监考明细信息", response = InvigilateListHistoryBean.class)})
-    public Result historyList(@ApiParam(value = "考试批次id", required = false) @RequestParam(required = false) Long examId,
+    public Result historyList(@ApiParam(value = "考试批次id", required = true) @RequestParam(required = true) Long examId,
                               @ApiParam(value = "考试场次id", required = false) @RequestParam(required = false) Long examActivityId,
                               @ApiParam(value = "虚拟考场代码", required = false) @RequestParam(required = false) String roomCode,
                               @ApiParam(value = "科目代码", required = false) @RequestParam(required = false) String courseCode,
@@ -225,6 +228,9 @@ public class TIeInvigilateController {
                               @ApiParam(value = "预警量max", required = false) @RequestParam(required = false) Integer maxWarningCount,
                               @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);
+        }
         TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
         AuthDto authDto = (AuthDto) redisUtil.get(SystemConstant.userOauth + "::" + tbUser.getId());
         //如果有监考员角色,只能查看自己所监考的考场,巡考员和管理员则可以查看全部考场
@@ -356,7 +362,7 @@ public class TIeInvigilateController {
     @ApiOperation(value = "在线巡考列表接口")
     @RequestMapping(value = "/patrol/list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "监考监控信息", response = InvigilateListPatrolBean.class)})
-    public Result patrolList(@ApiParam(value = "考试批次id", required = false) @RequestParam(required = false) Long examId,
+    public Result patrolList(@ApiParam(value = "考试批次id", required = true) @RequestParam(required = true) Long examId,
                              @ApiParam(value = "考试场次id", required = false) @RequestParam(required = false) Long examActivityId,
                              @ApiParam(value = "虚拟考场代码", required = false) @RequestParam(required = false) String roomCode,
                              @ApiParam(value = "考生状态", required = false) @RequestParam(required = false) String status,
@@ -371,6 +377,9 @@ public class TIeInvigilateController {
                              @ApiParam(value = "客户端网络通信状态", required = false) @RequestParam(required = false) String clientWebsocketStatus,
                              @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);
+        }
         TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
         AuthDto authDto = (AuthDto) redisUtil.get(SystemConstant.userOauth + "::" + tbUser.getId());
         //如果有监考员角色,只能查看自己所监考的考场,巡考员和管理员则可以查看全部考场
@@ -396,7 +405,7 @@ public class TIeInvigilateController {
     @ApiOperation(value = "进度查询列表接口")
     @RequestMapping(value = "/progress/list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "监考进度信息", response = InvigilateListProgressBean.class)})
-    public Result progressList(@ApiParam(value = "考试批次id", required = false) @RequestParam(required = false) Long examId,
+    public Result progressList(@ApiParam(value = "考试批次id", required = true) @RequestParam(required = true) Long examId,
                                @ApiParam(value = "考试场次id", required = false) @RequestParam(required = false) Long examActivityId,
                                @ApiParam(value = "虚拟考场代码", required = false) @RequestParam(required = false) String roomCode,
                                @ApiParam(value = "科目代码", required = false) @RequestParam(required = false) String courseCode,
@@ -404,6 +413,9 @@ public class TIeInvigilateController {
                                @ApiParam(value = "证件号", required = false) @RequestParam(required = false) String identity,
                                @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);
+        }
         TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
         AuthDto authDto = (AuthDto) redisUtil.get(SystemConstant.userOauth + "::" + tbUser.getId());
         //如果有监考员角色,只能查看自己所监考的考场,巡考员和管理员则可以查看全部考场

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

@@ -15,6 +15,7 @@ import com.qmth.themis.business.service.TIeInvigilateWarnInfoService;
 import com.qmth.themis.business.service.TOeExamRecordService;
 import com.qmth.themis.business.util.RedisUtil;
 import com.qmth.themis.business.util.ServletUtil;
+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;
@@ -49,9 +50,12 @@ public class TIeInvigilateWarnInfoController {
     @ApiOperation(value = "预警提醒接口")
     @RequestMapping(value = "/notify", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "{\"count\":1}", response = Result.class)})
-    public Result notify(@ApiParam(value = "考试批次id", required = false) @RequestParam(required = false) Long examId,
+    public Result notify(@ApiParam(value = "考试批次id", required = true) @RequestParam(required = true) Long examId,
                          @ApiParam(value = "考试场次id", required = false) @RequestParam(required = false) Long examActivityId,
                          @ApiParam(value = "虚拟考场代码", required = false) @RequestParam(required = false) String roomCode) {
+        if (Objects.isNull(examId) || Objects.equals(examId, "")) {
+            throw new BusinessException(ExceptionResultEnum.EXAM_ID_IS_NULL);
+        }
         TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
         AuthDto authDto = (AuthDto) redisUtil.get(SystemConstant.userOauth + "::" + tbUser.getId());
         //如果有监考员角色,只能查看自己所监考的考场,巡考员和管理员则可以查看全部考场
@@ -66,7 +70,7 @@ public class TIeInvigilateWarnInfoController {
     @ApiOperation(value = "预警提醒列表接口")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "监考预警信息", response = InvigilateListWarningBean.class)})
-    public Result list(@ApiParam(value = "考试批次id", required = false) @RequestParam(required = false) Long examId,
+    public Result list(@ApiParam(value = "考试批次id", required = true) @RequestParam(required = true) Long examId,
                        @ApiParam(value = "考试场次id", required = false) @RequestParam(required = false) Long examActivityId,
                        @ApiParam(value = "虚拟考场代码", required = false) @RequestParam(required = false) String roomCode,
                        @ApiParam(value = "审阅状态", required = false) @RequestParam(required = false) Integer approveStatus,
@@ -80,6 +84,9 @@ public class TIeInvigilateWarnInfoController {
                        @ApiParam(value = "预警量max", required = false) @RequestParam(required = false) Integer maxWarningCount,
                        @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);
+        }
         TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
         AuthDto authDto = (AuthDto) redisUtil.get(SystemConstant.userOauth + "::" + tbUser.getId());
         //如果有监考员角色,只能查看自己所监考的考场,巡考员和管理员则可以查看全部考场

+ 36 - 8
themis-backend/src/main/java/com/qmth/themis/backend/api/TIeReportController.java

@@ -5,6 +5,8 @@ import com.qmth.themis.business.entity.TBUser;
 import com.qmth.themis.business.service.TIeReportService;
 import com.qmth.themis.business.util.RedisUtil;
 import com.qmth.themis.business.util.ServletUtil;
+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.*;
@@ -13,6 +15,8 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Objects;
+
 import javax.annotation.Resource;
 
 /**
@@ -36,12 +40,15 @@ public class TIeReportController {
     @ApiOperation(value = "考试概览")
     @RequestMapping(value = "/exam_view", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "结果信息")})
-    public Result examView(@ApiParam(value = "考试id", required = false) @RequestParam(required = false) Long examId,
+    public Result examView(@ApiParam(value = "考试id", required = true) @RequestParam(required = true) Long examId,
                            @ApiParam(value = "考场场次id", required = false) @RequestParam(required = false) Long examActivityId,
                            @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 name,
                            @ApiParam(value = "唯一码", required = false) @RequestParam(required = false) String identity) {
+        if (Objects.isNull(examId) || Objects.equals(examId, "")) {
+            throw new BusinessException(ExceptionResultEnum.EXAM_ID_IS_NULL);
+        }
         TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
         Long orgId=tbUser.getOrgId();
         return ResultUtil.ok(reportService.examView(orgId,examId, examActivityId, roomCode, courseCode, name, identity));
@@ -50,7 +57,7 @@ public class TIeReportController {
     @ApiOperation(value = "情况统计")
     @RequestMapping(value = "/exam_view_count", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "结果信息")})
-    public Result examViewCount(@ApiParam(value = "考试id", required = false) @RequestParam(required = false) Long examId,
+    public Result examViewCount(@ApiParam(value = "考试id", required = true) @RequestParam(required = true) Long examId,
                                 @ApiParam(value = "考场场次id", required = false) @RequestParam(required = false) Long examActivityId,
                                 @ApiParam(value = "虚拟考场代码", required = false) @RequestParam(required = false) String roomCode,
                                 @ApiParam(value = "科目编码", required = false) @RequestParam(required = false) String courseCode,
@@ -58,6 +65,9 @@ public class TIeReportController {
                                 @ApiParam(value = "唯一码", required = false) @RequestParam(required = false) String identity,
                                 @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);
+        }
     	TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
         Long orgId=tbUser.getOrgId();
         return ResultUtil.ok(reportService.examViewCount(orgId,examId, examActivityId, roomCode, courseCode, name, identity, pageNumber, pageSize));
@@ -66,7 +76,7 @@ public class TIeReportController {
     @ApiOperation(value = "缺考名单")
     @RequestMapping(value = "/exam_deficiency_list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "结果信息")})
-    public Result examDeficiencyList(@ApiParam(value = "考试id", required = false) @RequestParam(required = false) Long examId,
+    public Result examDeficiencyList(@ApiParam(value = "考试id", required = true) @RequestParam(required = true) Long examId,
                                      @ApiParam(value = "考场场次id", required = false) @RequestParam(required = false) Long examActivityId,
                                      @ApiParam(value = "虚拟考场代码", required = false) @RequestParam(required = false) String roomCode,
                                      @ApiParam(value = "科目编码", required = false) @RequestParam(required = false) String courseCode,
@@ -74,6 +84,9 @@ public class TIeReportController {
                                      @ApiParam(value = "唯一码", required = false) @RequestParam(required = false) String identity,
                                      @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);
+        }
     	TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
         Long orgId=tbUser.getOrgId();
         return ResultUtil.ok(reportService.examDeficiencyList(orgId,examId, examActivityId, roomCode, courseCode, name, identity, pageNumber, pageSize));
@@ -82,7 +95,7 @@ public class TIeReportController {
     @ApiOperation(value = "异常处理")
     @RequestMapping(value = "/exam_exception_list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "结果信息")})
-    public Result examExceptionList(@ApiParam(value = "考试id", required = false) @RequestParam(required = false) Long examId,
+    public Result examExceptionList(@ApiParam(value = "考试id", required = true) @RequestParam(required = true) Long examId,
                                     @ApiParam(value = "考场场次id", required = false) @RequestParam(required = false) Long examActivityId,
                                     @ApiParam(value = "虚拟考场代码", required = false) @RequestParam(required = false) String roomCode,
                                     @ApiParam(value = "科目编码", required = false) @RequestParam(required = false) String courseCode,
@@ -90,6 +103,9 @@ public class TIeReportController {
                                     @ApiParam(value = "唯一码", required = false) @RequestParam(required = false) String identity,
                                     @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);
+        }
         return ResultUtil.ok(reportService.examExceptionList(examId, examActivityId, roomCode, courseCode, name, identity, pageNumber, pageSize));
     }
 
@@ -104,7 +120,7 @@ public class TIeReportController {
     @ApiOperation(value = "重考处理")
     @RequestMapping(value = "/exam_reexam_list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "结果信息")})
-    public Result examReexamList(@ApiParam(value = "考试id", required = false) @RequestParam(required = false) Long examId,
+    public Result examReexamList(@ApiParam(value = "考试id", required = true) @RequestParam(required = true) Long examId,
                                  @ApiParam(value = "考场场次id", required = false) @RequestParam(required = false) Long examActivityId,
                                  @ApiParam(value = "虚拟考场代码", required = false) @RequestParam(required = false) String roomCode,
                                  @ApiParam(value = "科目编码", required = false) @RequestParam(required = false) String courseCode,
@@ -112,13 +128,16 @@ public class TIeReportController {
                                  @ApiParam(value = "唯一码", required = false) @RequestParam(required = false) String identity,
                                  @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);
+        }
         return ResultUtil.ok(reportService.examReexamList(examId, examActivityId, roomCode, courseCode, name, identity, pageNumber, pageSize));
     }
 
     @ApiOperation(value = "违纪名单")
     @RequestMapping(value = "/exam_breach_list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "结果信息")})
-    public Result examBreachList(@ApiParam(value = "考试id", required = false) @RequestParam(required = false) Long examId,
+    public Result examBreachList(@ApiParam(value = "考试id", required = true) @RequestParam(required = true) Long examId,
                                  @ApiParam(value = "考场场次id", required = false) @RequestParam(required = false) Long examActivityId,
                                  @ApiParam(value = "虚拟考场代码", required = false) @RequestParam(required = false) String roomCode,
                                  @ApiParam(value = "科目编码", required = false) @RequestParam(required = false) String courseCode,
@@ -126,6 +145,9 @@ public class TIeReportController {
                                  @ApiParam(value = "唯一码", required = false) @RequestParam(required = false) String identity,
                                  @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);
+        }
         return ResultUtil.ok(reportService.examBreachList(examId, examActivityId, roomCode, courseCode, name, identity, pageNumber, pageSize));
     }
 
@@ -140,7 +162,7 @@ public class TIeReportController {
     @ApiOperation(value = "撤销违纪名单")
     @RequestMapping(value = "/exam_revoke_breach_list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "结果信息")})
-    public Result examRevokeBreachList(@ApiParam(value = "考试id", required = false) @RequestParam(required = false) Long examId,
+    public Result examRevokeBreachList(@ApiParam(value = "考试id", required = true) @RequestParam(required = true) Long examId,
                                        @ApiParam(value = "考场场次id", required = false) @RequestParam(required = false) Long examActivityId,
                                        @ApiParam(value = "虚拟考场代码", required = false) @RequestParam(required = false) String roomCode,
                                        @ApiParam(value = "科目编码", required = false) @RequestParam(required = false) String courseCode,
@@ -148,6 +170,9 @@ public class TIeReportController {
                                        @ApiParam(value = "唯一码", required = false) @RequestParam(required = false) String identity,
                                        @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);
+        }
         return ResultUtil.ok(reportService.examRevokeBreachList(examId, examActivityId, roomCode, courseCode, name, identity, pageNumber, pageSize));
     }
 
@@ -162,7 +187,7 @@ public class TIeReportController {
     @ApiOperation(value = "考生日志")
     @RequestMapping(value = "/exam_student_log_list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "结果信息")})
-    public Result examStudentLogList(@ApiParam(value = "考试id", required = false) @RequestParam(required = false) Long examId,
+    public Result examStudentLogList(@ApiParam(value = "考试id", required = true) @RequestParam(required = true) Long examId,
                                      @ApiParam(value = "考场场次id", required = false) @RequestParam(required = false) Long examActivityId,
                                      @ApiParam(value = "虚拟考场代码", required = false) @RequestParam(required = false) String roomCode,
                                      @ApiParam(value = "科目编码", required = false) @RequestParam(required = false) String courseCode,
@@ -170,6 +195,9 @@ public class TIeReportController {
                                      @ApiParam(value = "唯一码", required = false) @RequestParam(required = false) String identity,
                                      @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);
+        }
         return ResultUtil.ok(reportService.examStudentLogList(examId, examActivityId, roomCode, courseCode, name, identity, pageNumber, pageSize));
     }
 

+ 3 - 4
themis-business/src/main/java/com/qmth/themis/business/service/impl/TEExamServiceImpl.java

@@ -363,11 +363,10 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
      * 根据设定几率取出一套试卷
      */
     private int getPaperByWeight(List<Double> paperWeight) {
-        // 从1开始
-        double r = Math.random();
+    	BigDecimal r = new BigDecimal(new Random().nextInt(101));
         for (int i = 0; i < paperWeight.size(); i++) {
-            r -= paperWeight.get(i);
-            if (r <= 0.0d) {
+            r = r.subtract(new BigDecimal(paperWeight.get(i)));
+            if (r.doubleValue() <= 0.0d) {
                 return i;// 选中
             }
         }

+ 10 - 5
themis-business/src/main/java/com/qmth/themis/business/service/impl/TOeExamRecordServiceImpl.java

@@ -807,11 +807,16 @@ public class TOeExamRecordServiceImpl extends ServiceImpl<TOeExamRecordMapper, T
             }
         }
         if (cb.getStructType().intValue() == 3) {
-            if (Boolean.parseBoolean(answer.getAnswer()) == cb.getBoolAnswer().booleanValue()) {
-                answer.setScore(cb.getScore());
-            } else {
-                answer.setScore(0.0);
-            }
+            if(StringUtils.isNotBlank(answer.getAnswer())) {
+        		String answerStr=answer.getAnswer().replaceAll("\n", "");
+        		if(StringUtils.isNotBlank(answerStr)) {
+		            if (Boolean.parseBoolean(answerStr) == cb.getBoolAnswer().booleanValue()) {
+		                answer.setScore(cb.getScore());
+		            } else {
+		                answer.setScore(0.0);
+		            }
+        		}
+        	}
         }
 
         examAnswerService.saveOrUpdate(answer);

+ 0 - 1
themis-mq/src/main/java/com/qmth/themis/mq/service/impl/MqLogicServiceImpl.java

@@ -723,7 +723,6 @@ public class MqLogicServiceImpl implements MqLogicService {
      * @param key
      */
     @Override
-    @Transactional
     public void execMqCalculateScoreLogic(MqDto mqDto, String key) {
         Gson gson = new Gson();
         Map<String, Object> param = (Map<String, Object>) mqDto.getBody();