wangliang před 4 roky
rodič
revize
7591f62fb2

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

@@ -210,7 +210,8 @@ public class TEExamController {
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     @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) {
-        IPage<TEExamQueryDto> teExamQueryDtoIPage = teExamService.examQuery(new Page<>(pageNumber, pageSize), userId, id, code, name, mode, enable);
+        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);
     }
@@ -325,17 +326,12 @@ public class TEExamController {
         return ResultUtil.ok(Collections.singletonMap("success", true));
     }
 
-    @ApiOperation(value = "监考端获取考试批次接口")
-    @RequestMapping(value = "/list", method = RequestMethod.POST)
-    @ApiResponses({@ApiResponse(code = 200, message = "考试批次信息", response = TEExam.class)})
-    public Result list(@ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber, @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
+    @ApiOperation(value = "监考端获取考试批次提醒接口")
+    @RequestMapping(value = "/list/count", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "考试批次信息", response = Result.class)})
+    public Result listCount(@ApiParam(value = "用户id", required = false) @RequestParam(required = false) Long userId) {
         TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
-        if (Objects.isNull(tbUser)) {
-            throw new BusinessException(ExceptionResultEnum.LOGIN_NO);
-        }
-        IPage<TEExamQueryDto> teExamQueryDtoIPage = teExamService.examList(new Page<>(pageNumber, pageSize), tbUser.getOrgId());
-        BasePage basePage = new BasePage(teExamQueryDtoIPage.getRecords(), teExamQueryDtoIPage.getCurrent(), teExamQueryDtoIPage.getSize(), teExamQueryDtoIPage.getTotal());
-        return ResultUtil.ok(basePage);
+        return ResultUtil.ok(teExamService.examList(userId, tbUser.getOrgId()));
     }
 
     @ApiOperation(value = "考试属性统计接口")

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

@@ -245,7 +245,7 @@ public class TEExamReexamController {
 
     @ApiOperation(value = "重考待审提醒接口")
     @RequestMapping(value = "/list_not_done_notify", method = RequestMethod.POST)
-    @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = ReexamListRequestBean.class)})
+    @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class)})
     public Result listNotDoneNotify(@ApiParam(value = "考试批次id", required = false) @RequestParam(required = false) Long examId) {
         TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
         Integer count = teExamReexamService.reexamPageNotDoneCount(examId, tbUser.getId());

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

@@ -31,9 +31,10 @@ public interface TEExamMapper extends BaseMapper<TEExam> {
      * @param name
      * @param mode
      * @param enable
+     * @param orgId
      * @return
      */
-    public IPage<TEExamQueryDto> examQuery(IPage<Map> iPage, @Param("userId") Long userId, @Param("id") Long id, @Param("code") String code, @Param("name") String name, @Param("mode") String mode, @Param("enable") Integer enable);
+    public IPage<TEExamQueryDto> examQuery(IPage<Map> iPage, @Param("userId") Long userId, @Param("id") Long id, @Param("code") String code, @Param("name") String name, @Param("mode") String mode, @Param("enable") Integer enable, @Param("orgId") Long orgId);
 
     /**
      * 获取考试待考列表
@@ -48,11 +49,11 @@ public interface TEExamMapper extends BaseMapper<TEExam> {
     /**
      * 监考端获取考试批次列表
      *
-     * @param iPage
+     * @param userId
      * @param orgId
      * @return
      */
-    public IPage<TEExamQueryDto> examList(IPage<Map> iPage, @Param("orgId") Long orgId);
+    public List<Map> examList(@Param("userId") Long userId, @Param("orgId") Long orgId);
 
     /**
      * 考试批次权限过滤

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

@@ -33,9 +33,10 @@ public interface TEExamService extends IService<TEExam> {
      * @param name
      * @param mode
      * @param enable
+     * @param orgId
      * @return
      */
-    public IPage<TEExamQueryDto> examQuery(IPage<Map> iPage,Long userId, Long id, String code, String name, String mode, Integer enable);
+    public IPage<TEExamQueryDto> examQuery(IPage<Map> iPage, Long userId, Long id, String code, String name, String mode, Integer enable, Long orgId);
 
     /**
      * 获取考试待考列表
@@ -163,11 +164,11 @@ public interface TEExamService extends IService<TEExam> {
     /**
      * 监考端获取考试批次列表
      *
-     * @param iPage
+     * @param userId
      * @param orgId
      * @return
      */
-    public IPage<TEExamQueryDto> examList(IPage<Map> iPage, Long orgId);
+    public List<Map> examList(Long userId, Long orgId);
 
     /**
      * 发送考试轨迹消息

+ 6 - 5
themis-business/src/main/java/com/qmth/themis/business/service/impl/TEExamServiceImpl.java

@@ -91,11 +91,12 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
      * @param name
      * @param mode
      * @param enable
+     * @param orgId
      * @return
      */
     @Override
-    public IPage<TEExamQueryDto> examQuery(IPage<Map> iPage, Long userId, Long id, String code, String name, String mode, Integer enable) {
-        return teExamMapper.examQuery(iPage, userId, id, code, name, mode, enable);
+    public IPage<TEExamQueryDto> examQuery(IPage<Map> iPage, Long userId, Long id, String code, String name, String mode, Integer enable, Long orgId) {
+        return teExamMapper.examQuery(iPage, userId, id, code, name, mode, enable, orgId);
     }
 
     /**
@@ -837,13 +838,13 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
     /**
      * 监考端获取考试批次列表
      *
-     * @param iPage
+     * @param userId
      * @param orgId
      * @return
      */
     @Override
-    public IPage<TEExamQueryDto> examList(IPage<Map> iPage, Long orgId) {
-        return teExamMapper.examList(iPage, orgId);
+    public List<Map> examList(Long userId, Long orgId) {
+        return teExamMapper.examList(userId, orgId);
     }
 
     /**

+ 20 - 10
themis-business/src/main/resources/mapper/TEExamMapper.xml

@@ -2,17 +2,9 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.qmth.themis.business.dao.TEExamMapper">
 
-    <select id="examList" resultType="com.qmth.themis.business.dto.response.TEExamQueryDto">
+    <select id="examList" resultType="java.util.HashMap">
         select
-        t.id,
-        t.code,
-        t.name,
-        t.tag,
-        t.mode,
-        t.enable,
-        t.start_time as startTime,
-        t.end_time as endTime,
-        t.progress
+        t.id as examId
         from
         t_e_exam t
         <where>
@@ -22,6 +14,18 @@
             <if test="orgId != null and orgId != ''">
                 and t.org_id = #{orgId}
             </if>
+            <if test="userId != null and userId != ''">
+                and EXISTS(
+                select
+                DISTINCT tees.exam_id
+                from
+                t_b_exam_invigilate_user tbeiu
+                left join t_e_exam_student tees on
+                tees.room_code = tbeiu.room_code
+                where
+                tbeiu.user_id = #{userId}
+                and t.id = tees.exam_id)
+            </if>
         </where>
     </select>
 
@@ -66,6 +70,9 @@
         from t_e_exam t
         <where> 1 = 1
             <if test="userId != null and userId != ''">
+                and t.start_time <![CDATA[ <= ]]> now()
+                and t.end_time <![CDATA[ >= ]]> now()
+                and t.enable = 1
                 and EXISTS(
                 select
                 DISTINCT tees.exam_id
@@ -77,6 +84,9 @@
                 tbeiu.user_id = #{userId}
                 and t.id = tees.exam_id)
             </if>
+            <if test="orgId != null and orgId != ''">
+                and t.org_id = #{orgId}
+            </if>
             <if test="id != null and id != ''">
                 and t.id = #{id}
             </if>