wangliang vor 4 Jahren
Ursprung
Commit
a2632efd68
17 geänderte Dateien mit 119 neuen und 63 gelöschten Zeilen
  1. 2 1
      themis-backend/src/main/java/com/qmth/themis/backend/api/SysController.java
  2. 2 2
      themis-backend/src/main/java/com/qmth/themis/backend/api/TBExamInvigilateUserController.java
  3. 2 1
      themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamController.java
  4. 6 4
      themis-backend/src/main/java/com/qmth/themis/backend/api/TIeInvigilateCallMobileController.java
  5. 2 10
      themis-business/src/main/java/com/qmth/themis/business/dao/TBExamInvigilateUserMapper.java
  6. 9 0
      themis-business/src/main/java/com/qmth/themis/business/dao/TEExamStudentMapper.java
  7. 24 2
      themis-business/src/main/java/com/qmth/themis/business/dto/response/TBExamInvigilateUserDto.java
  8. 16 2
      themis-business/src/main/java/com/qmth/themis/business/entity/TBExamInvigilateUser.java
  9. 0 1
      themis-business/src/main/java/com/qmth/themis/business/entity/TOeExamRecord.java
  10. 2 10
      themis-business/src/main/java/com/qmth/themis/business/service/TBExamInvigilateUserService.java
  11. 10 0
      themis-business/src/main/java/com/qmth/themis/business/service/TEExamStudentService.java
  12. 3 14
      themis-business/src/main/java/com/qmth/themis/business/service/impl/TBExamInvigilateUserServiceImpl.java
  13. 13 0
      themis-business/src/main/java/com/qmth/themis/business/service/impl/TEExamStudentServiceImpl.java
  14. 1 1
      themis-business/src/main/java/com/qmth/themis/business/templete/service/impl/TempleteLogicServiceImpl.java
  15. 2 0
      themis-business/src/main/resources/db/init.sql
  16. 11 15
      themis-business/src/main/resources/mapper/TBExamInvigilateUserMapper.xml
  17. 14 0
      themis-business/src/main/resources/mapper/TEExamStudentMapper.xml

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

@@ -272,7 +272,7 @@ public class SysController {
     @RequestMapping(value = "/examRoom/query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "角色信息", response = RoomCodeQueryDto.class)})
     public Result examRoomQuery(@ApiParam(value = "考场名称", required = false) @RequestParam(required = false) String roomName) {
-        return ResultUtil.ok(tbExamInvigilateUserService.examRoomQuery(roomName));
+        return ResultUtil.ok(teExamStudentService.examRoomQuery(roomName));
     }
 
     @ApiOperation(value = "根据权限获取场次和考场接口")
@@ -290,6 +290,7 @@ public class SysController {
         //首先查询当前用户所要监控的roomCode
         QueryWrapper<TBExamInvigilateUser> examInvigilateUserQueryWrapper = new QueryWrapper<>();
         examInvigilateUserQueryWrapper.lambda().eq(TBExamInvigilateUser::getOrgId, tbUser.getOrgId())
+                .eq(TBExamInvigilateUser::getExamId, examId)
                 .eq(TBExamInvigilateUser::getUserId, tbUser.getId());
         List<TBExamInvigilateUser> tbExamInvigilateUserList = tbExamInvigilateUserService.list(examInvigilateUserQueryWrapper);
         Set<String> roomCodeSet = null;

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

@@ -62,8 +62,8 @@ public class TBExamInvigilateUserController {
     @ApiOperation(value = "监考员查询接口")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "监考员信息", response = TBExamInvigilateUserDto.class)})
-    public Result query(@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), roomCode, userId);
+    public Result query(@ApiParam(value = "考试批次id", required = true) @RequestParam 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);
     }

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

@@ -345,7 +345,8 @@ public class TEExamController {
         QueryWrapper<TBExamInvigilateUser> examInvigilateUserQueryWrapper = new QueryWrapper<>();
         AuthDto authDto = (AuthDto) redisUtil.get(SystemConstant.userOauth + "::" + tbUser.getId());
         //如果有监考员角色,只能查看自己所监考的考场,巡考员和管理员则可以查看全部考场
-        examInvigilateUserQueryWrapper.lambda().eq(TBExamInvigilateUser::getOrgId, tbUser.getOrgId());
+        examInvigilateUserQueryWrapper.lambda().eq(TBExamInvigilateUser::getOrgId, tbUser.getOrgId())
+                .eq(TBExamInvigilateUser::getExamId, examId);
         if (authDto.getRoleCodes().toString().contains(RoleEnum.INVIGILATE.name())) {
             examInvigilateUserQueryWrapper.lambda().eq(TBExamInvigilateUser::getUserId, tbUser.getId());
         }

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

@@ -73,7 +73,7 @@ public class TIeInvigilateCallMobileController {
         if (Objects.isNull(examId) || Objects.equals(examId, "")) {
             throw new BusinessException(ExceptionResultEnum.EXAM_ID_IS_NULL);
         }
-        Set<Long> examActivityIdSet = this.getExamActivityIds();
+        Set<Long> examActivityIdSet = this.getExamActivityIds(examId);
         IPage<TIeExamInvigilateCall> tIeExamInvigilateCallIPage = tIeExamInvigilateCallService.examInvigilateCallQuery(new Page<>(pageNumber, pageSize), examActivityIdSet, MonitorStatusSourceEnum.START.name());
         BasePage basePage = new BasePage(tIeExamInvigilateCallIPage.getRecords(), tIeExamInvigilateCallIPage.getCurrent(), tIeExamInvigilateCallIPage.getSize(), tIeExamInvigilateCallIPage.getTotal());
         return ResultUtil.ok(basePage);
@@ -86,7 +86,7 @@ public class TIeInvigilateCallMobileController {
         if (Objects.isNull(examId) || Objects.equals(examId, "")) {
             throw new BusinessException(ExceptionResultEnum.EXAM_ID_IS_NULL);
         }
-        Set<Long> examActivityIdSet = this.getExamActivityIds();
+        Set<Long> examActivityIdSet = this.getExamActivityIds(examId);
         QueryWrapper<TIeExamInvigilateCall> examInvigilateCallQueryWrapper = new QueryWrapper<>();
         examInvigilateCallQueryWrapper.lambda().in(TIeExamInvigilateCall::getExamActivityId, examActivityIdSet).eq(TIeExamInvigilateCall::getStatus, MonitorStatusSourceEnum.START.name());
         int count = tIeExamInvigilateCallService.count(examInvigilateCallQueryWrapper);
@@ -164,9 +164,10 @@ public class TIeInvigilateCallMobileController {
     /**
      * 获取考试批次
      *
+     * @param examId
      * @return
      */
-    public Set<Long> getExamActivityIds() {
+    public Set<Long> getExamActivityIds(Long examId) {
         TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
         TBSession tbSession = (TBSession) ServletUtil.getRequestSession();
         if (Objects.isNull(tbSession)) {
@@ -176,7 +177,8 @@ public class TIeInvigilateCallMobileController {
         QueryWrapper<TBExamInvigilateUser> examInvigilateUserQueryWrapper = new QueryWrapper<>();
         AuthDto authDto = (AuthDto) redisUtil.get(SystemConstant.userOauth + "::" + tbUser.getId());
         //如果有监考员角色,只能查看自己所监考的考场,巡考员和管理员则可以查看全部考场
-        examInvigilateUserQueryWrapper.lambda().eq(TBExamInvigilateUser::getOrgId, tbUser.getOrgId());
+        examInvigilateUserQueryWrapper.lambda().eq(TBExamInvigilateUser::getOrgId, tbUser.getOrgId())
+                .eq(TBExamInvigilateUser::getExamId, examId);
         if (authDto.getRoleCodes().toString().contains(RoleEnum.INVIGILATE.name())) {
             examInvigilateUserQueryWrapper.lambda().eq(TBExamInvigilateUser::getUserId, tbUser.getId());
         }

+ 2 - 10
themis-business/src/main/java/com/qmth/themis/business/dao/TBExamInvigilateUserMapper.java

@@ -3,7 +3,6 @@ package com.qmth.themis.business.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.qmth.themis.business.dto.RoomCodeExportDto;
-import com.qmth.themis.business.dto.response.RoomCodeQueryDto;
 import com.qmth.themis.business.dto.response.TBExamInvigilateUserDto;
 import com.qmth.themis.business.entity.TBExamInvigilateUser;
 import org.apache.ibatis.annotations.Mapper;
@@ -26,11 +25,12 @@ public interface TBExamInvigilateUserMapper extends BaseMapper<TBExamInvigilateU
      * 查询监考员
      *
      * @param iPage
+     * @param examId
      * @param roomCode
      * @param userId
      * @return
      */
-    public IPage<TBExamInvigilateUserDto> examInvigilateUserQuery(IPage<Map> iPage, @Param("roomCode") String roomCode, @Param("userId") Long userId);
+    public IPage<TBExamInvigilateUserDto> examInvigilateUserQuery(IPage<Map> iPage, @Param("examId") Long examId, @Param("roomCode") String roomCode, @Param("userId") Long userId);
 
     /**
      * 监考员导出
@@ -38,12 +38,4 @@ public interface TBExamInvigilateUserMapper extends BaseMapper<TBExamInvigilateU
      * @return
      */
     public List<RoomCodeExportDto> examInvigilateUserExport();
-
-    /**
-     * 考场查询
-     *
-     * @param roomName
-     * @return
-     */
-    public List<RoomCodeQueryDto> examRoomQuery(@Param("roomName") String roomName);
 }

+ 9 - 0
themis-business/src/main/java/com/qmth/themis/business/dao/TEExamStudentMapper.java

@@ -2,6 +2,7 @@ package com.qmth.themis.business.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.qmth.themis.business.dto.response.RoomCodeQueryDto;
 import com.qmth.themis.business.dto.response.TEExamStudentDto;
 import com.qmth.themis.business.entity.TEExamStudent;
 import org.apache.ibatis.annotations.Mapper;
@@ -42,4 +43,12 @@ public interface TEExamStudentMapper extends BaseMapper<TEExamStudent> {
 
     public List<Map<String, Object>> getTotalCount(@Param("examId") Long examId, @Param("activityId") Long activityId,
                                                    @Param("roomCode") String roomCode, @Param("courseCode") String courseCode);
+
+    /**
+     * 考场查询
+     *
+     * @param roomName
+     * @return
+     */
+    public List<RoomCodeQueryDto> examRoomQuery(@Param("roomName") String roomName);
 }

+ 24 - 2
themis-business/src/main/java/com/qmth/themis/business/dto/response/TBExamInvigilateUserDto.java

@@ -13,6 +13,12 @@ import java.io.Serializable;
 */ 
 public class TBExamInvigilateUserDto implements Serializable {
 
+    @ApiModelProperty(name = "考试批次id")
+    private Long examId;//考试批次id
+
+    @ApiModelProperty(name = "考试批次名称")
+    private String examName;//考试批次名称
+
     @ApiModelProperty(name = "虚拟考场代码,考试唯一")
     private String roomCode;//考场代码
 
@@ -20,10 +26,26 @@ public class TBExamInvigilateUserDto implements Serializable {
     private String roomName;//考场名称
 
     @ApiModelProperty(name = "用户id")
-    private String userId;//老师id
+    private String userId;//用户id
 
     @ApiModelProperty(name = "用户姓名")
-    private String name;//老师名称
+    private String name;//用户姓名
+
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
+
+    public String getExamName() {
+        return examName;
+    }
+
+    public void setExamName(String examName) {
+        this.examName = examName;
+    }
 
     public String getRoomCode() {
         return roomCode;

+ 16 - 2
themis-business/src/main/java/com/qmth/themis/business/entity/TBExamInvigilateUser.java

@@ -24,6 +24,10 @@ public class TBExamInvigilateUser implements Serializable {
     @TableId(value = "id")
     private Long id;
 
+    @ApiModelProperty(value = "考试批次ID")
+    @TableField("exam_id")
+    private Long examId;
+
     @ApiModelProperty(value = "机构ID")
     @TableField("org_id")
     private Long orgId;
@@ -48,21 +52,31 @@ public class TBExamInvigilateUser implements Serializable {
 
     }
 
-    public TBExamInvigilateUser(Long orgId, String roomCode, String roomName) {
+    public TBExamInvigilateUser(Long examId, Long orgId, String roomCode, String roomName) {
         this.id = Constants.idGen.next();
+        this.examId = examId;
         this.orgId = orgId;
         this.roomCode = roomCode;
         this.roomName = roomName;
     }
 
-    public TBExamInvigilateUser(Long orgId, Long userId, String roomCode, String roomName) {
+    public TBExamInvigilateUser(Long examId, Long orgId, Long userId, String roomCode, String roomName) {
         this.id = Constants.idGen.next();
+        this.examId = examId;
         this.orgId = orgId;
         this.userId = userId;
         this.roomCode = roomCode;
         this.roomName = roomName;
     }
 
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
+
     public static long getSerialVersionUID() {
         return serialVersionUID;
     }

+ 0 - 1
themis-business/src/main/java/com/qmth/themis/business/entity/TOeExamRecord.java

@@ -3,7 +3,6 @@ package com.qmth.themis.business.entity;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.qmth.themis.business.enums.*;
-import com.sun.tools.internal.ws.wsdl.document.jaxws.Exception;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 

+ 2 - 10
themis-business/src/main/java/com/qmth/themis/business/service/TBExamInvigilateUserService.java

@@ -3,7 +3,6 @@ package com.qmth.themis.business.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.themis.business.dto.RoomCodeExportDto;
-import com.qmth.themis.business.dto.response.RoomCodeQueryDto;
 import com.qmth.themis.business.dto.response.TBExamInvigilateUserDto;
 import com.qmth.themis.business.entity.TBExamInvigilateUser;
 
@@ -23,11 +22,12 @@ public interface TBExamInvigilateUserService extends IService<TBExamInvigilateUs
      * 查询监考员
      *
      * @param iPage
+     * @param examId
      * @param roomCode
      * @param userId
      * @return
      */
-    public IPage<TBExamInvigilateUserDto> examInvigilateUserQuery(IPage<Map> iPage, String roomCode, Long userId);
+    public IPage<TBExamInvigilateUserDto> examInvigilateUserQuery(IPage<Map> iPage, Long examId, String roomCode, Long userId);
 
     /**
      * 监考员导出
@@ -35,12 +35,4 @@ public interface TBExamInvigilateUserService extends IService<TBExamInvigilateUs
      * @return
      */
     public List<RoomCodeExportDto> examInvigilateUserExport();
-
-    /**
-     * 考场查询
-     *
-     * @param roomName
-     * @return
-     */
-    public List<RoomCodeQueryDto> examRoomQuery(String roomName);
 }

+ 10 - 0
themis-business/src/main/java/com/qmth/themis/business/service/TEExamStudentService.java

@@ -3,9 +3,11 @@ package com.qmth.themis.business.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.themis.business.cache.bean.ExamStudentCacheBean;
+import com.qmth.themis.business.dto.response.RoomCodeQueryDto;
 import com.qmth.themis.business.dto.response.TEExamStudentDto;
 import com.qmth.themis.business.entity.TEExamStudent;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -50,4 +52,12 @@ public interface TEExamStudentService extends IService<TEExamStudent> {
      * @param examStudentId
      */
     void deleteExamStudentCacheBean(Long examStudentId);
+
+    /**
+     * 考场查询
+     *
+     * @param roomName
+     * @return
+     */
+    public List<RoomCodeQueryDto> examRoomQuery(String roomName);
 }

+ 3 - 14
themis-business/src/main/java/com/qmth/themis/business/service/impl/TBExamInvigilateUserServiceImpl.java

@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.themis.business.dao.TBExamInvigilateUserMapper;
 import com.qmth.themis.business.dto.RoomCodeExportDto;
-import com.qmth.themis.business.dto.response.RoomCodeQueryDto;
 import com.qmth.themis.business.dto.response.TBExamInvigilateUserDto;
 import com.qmth.themis.business.entity.TBExamInvigilateUser;
 import com.qmth.themis.business.service.TBExamInvigilateUserService;
@@ -31,13 +30,14 @@ public class TBExamInvigilateUserServiceImpl extends ServiceImpl<TBExamInvigilat
      * 查询监考员
      *
      * @param iPage
+     * @param examId
      * @param roomCode
      * @param userId
      * @return
      */
     @Override
-    public IPage<TBExamInvigilateUserDto> examInvigilateUserQuery(IPage<Map> iPage, String roomCode, Long userId) {
-        return tbExamInvigilateUserMapper.examInvigilateUserQuery(iPage, roomCode, userId);
+    public IPage<TBExamInvigilateUserDto> examInvigilateUserQuery(IPage<Map> iPage, Long examId, String roomCode, Long userId) {
+        return tbExamInvigilateUserMapper.examInvigilateUserQuery(iPage, examId, roomCode, userId);
     }
 
     /**
@@ -49,15 +49,4 @@ public class TBExamInvigilateUserServiceImpl extends ServiceImpl<TBExamInvigilat
     public List<RoomCodeExportDto> examInvigilateUserExport() {
         return tbExamInvigilateUserMapper.examInvigilateUserExport();
     }
-
-    /**
-     * 考场查询
-     *
-     * @param roomName
-     * @return
-     */
-    @Override
-    public List<RoomCodeQueryDto> examRoomQuery(String roomName) {
-        return tbExamInvigilateUserMapper.examRoomQuery(roomName);
-    }
 }

+ 13 - 0
themis-business/src/main/java/com/qmth/themis/business/service/impl/TEExamStudentServiceImpl.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.themis.business.cache.bean.ExamStudentCacheBean;
 import com.qmth.themis.business.dao.TEExamStudentMapper;
+import com.qmth.themis.business.dto.response.RoomCodeQueryDto;
 import com.qmth.themis.business.dto.response.TEExamStudentDto;
 import com.qmth.themis.business.entity.TEExamStudent;
 import com.qmth.themis.business.service.TEExamStudentService;
@@ -14,6 +15,7 @@ import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -80,6 +82,17 @@ public class TEExamStudentServiceImpl extends ServiceImpl<TEExamStudentMapper, T
 
     }
 
+    /**
+     * 考场查询
+     *
+     * @param roomName
+     * @return
+     */
+    @Override
+    public List<RoomCodeQueryDto> examRoomQuery(String roomName) {
+        return null;
+    }
+
     /**
      * 缓存操作
      *

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

@@ -195,7 +195,7 @@ public class TempleteLogicServiceImpl implements TempleteLogicService {
             roomCodeAndNameSet.forEach(s -> {
                 if (Objects.isNull(tbExamInvigilateUserMap) || (Objects.nonNull(tbExamInvigilateUserMap) && Objects.isNull(tbExamInvigilateUserMap.get(s)))) {
                     String[] strs = s.split(":");
-                    TBExamInvigilateUser tbExamInvigilateUser = new TBExamInvigilateUser(orgId, strs[0], strs[1]);
+                    TBExamInvigilateUser tbExamInvigilateUser = new TBExamInvigilateUser(examId, orgId, strs[0], strs[1]);
                     tbExamInvigilateUserService.save(tbExamInvigilateUser);
                     tbExamInvigilateUserList.add(tbExamInvigilateUser);
                     count.getAndIncrement();

+ 2 - 0
themis-business/src/main/resources/db/init.sql

@@ -304,6 +304,7 @@ CREATE TABLE `t_b_exam_invigilate_user` (
   `room_code` varchar(50) NOT NULL COMMENT '考场代码',
   `room_name` varchar(100) NOT NULL COMMENT '考场名称',
   `monitor_status` varchar(30) DEFAULT NULL COMMENT '监考状态,NOT_START:未开始,START:监考中,FINISHED:已结束',
+  `exam_id` bigint(20) DEFAULT NULL COMMENT '考试批次id',
   PRIMARY KEY (`id`),
   UNIQUE KEY `t_b_exam_invigilate_user_orgId_userId_roomCode_Idx` (`org_id`,`user_id`,`room_code`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='监考员设置';
@@ -1469,6 +1470,7 @@ CREATE TABLE `t_oe_exam_record` (
   `monitor_status_source` varchar(30) DEFAULT NULL COMMENT '监控状态,stop:停止,start:正常',
   `monitor_live_url` varchar(100) DEFAULT NULL COMMENT '监控观看地址',
   `score_status` varchar(30) DEFAULT NULL COMMENT '算分状态,never:从未算分,calculating:正在算分,finish:算分完成',
+  `exception_status` varchar(30) DEFAULT NULL COMMENT '异常状态',
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='考试记录';
 

+ 11 - 15
themis-business/src/main/resources/mapper/TBExamInvigilateUserMapper.xml

@@ -5,7 +5,8 @@
     <sql id="queryCommon">
         (
         select
-        tbeiu.room_code as roomCode, tbeiu.room_name as roomName, tbeiu.user_id as userId, (
+        tbeiu.room_code as roomCode, tbeiu.room_name as roomName, tbeiu.user_id as userId,tee.id as examId,
+        tee.name as examName, (
         select
         tbu.name
         from
@@ -14,7 +15,12 @@
         tbu.id = tbeiu.user_id) as name
         from
         t_b_exam_invigilate_user tbeiu
+        left join t_e_exam tee on
+        tee.id = tbeiu.exam_id
         <where>
+            <if test="examId != null and examId != ''">
+                and tbeiu.exam_id = #{examId}
+            </if>
             <if test="userId != null and userId != ''">
                 and tbeiu.user_id = #{userId}
             </if>
@@ -27,6 +33,8 @@
 
     <select id="examInvigilateUserQuery" resultType="com.qmth.themis.business.dto.response.TBExamInvigilateUserDto">
         select
+        t.examId,
+        t.examName,
         t.roomCode,
         t.roomName,
         GROUP_CONCAT(t.userId) as userId,
@@ -40,6 +48,8 @@
 
     <select id="examInvigilateUserExport" resultType="com.qmth.themis.business.dto.RoomCodeExportDto">
         select
+        t.examId,
+        t.examName,
         t.roomCode,
         t.roomName,
         GROUP_CONCAT(t.name) as name
@@ -49,18 +59,4 @@
         t.roomCode,
         t.roomName
     </select>
-
-    <select id="examRoomQuery" resultType="com.qmth.themis.business.dto.response.RoomCodeQueryDto">
-        select
-            DISTINCT
-            tbeiu.room_code as roomCode,
-            tbeiu.room_name as roomName
-        from
-            t_b_exam_invigilate_user tbeiu
-        <where>
-            <if test="roomName != null and roomName != ''">
-                and tbeiu.room_name like concat('%', #{roomName}, '%')
-            </if>
-        </where>
-    </select>
 </mapper>

+ 14 - 0
themis-business/src/main/resources/mapper/TEExamStudentMapper.xml

@@ -71,4 +71,18 @@
             </if>
          group by t.exam_activity_id
     </select>
+
+    <select id="examRoomQuery" resultType="com.qmth.themis.business.dto.response.RoomCodeQueryDto">
+        select
+        DISTINCT
+        tees.room_code as roomCode,
+        tees.room_name as roomName
+        from
+        t_e_exam_student tees
+        <where>
+            <if test="roomName != null and roomName != ''">
+                and tees.room_name like concat('%', #{roomName}, '%')
+            </if>
+        </where>
+    </select>
 </mapper>