Joburgess пре 5 година
родитељ
комит
868d2b56eb

+ 1 - 2
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dao/ExamRoomStudentRelationDao.java

@@ -42,10 +42,9 @@ public interface ExamRoomStudentRelationDao extends BaseDAO<Long, ExamRoomStuden
      * @describe 获取考场中未完成考试的报名编号
      * @author Joburgess
      * @date 2020.08.18
-     * @param examRoomIds:
      * @return java.util.List<java.lang.Long>
      */
-    List<Long> findNoFinishedExamRegistIdsWIthExamRooms(@Param("examRoomIds") List<Long> examRoomIds);
+    List<Long> findNoFinishedExamRegistIdsWIthExamRooms();
 
     /**
      * @describe 删除指定教室的学员

+ 2 - 2
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExamRoomServiceImpl.java

@@ -910,8 +910,8 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
 			studentExamResultService.calculateStudentExamAvgScore(examRoom.getId());
 		}
 		examRoomDao.batchUpdate(examRooms);
-		Set<Long> examRoomIds = examRooms.stream().map(ExamRoom::getId).collect(Collectors.toSet());
-		List<Long> registIds = examRoomStudentRelationDao.findNoFinishedExamRegistIdsWIthExamRooms(new ArrayList<>(examRoomIds));
+
+		List<Long> registIds = examRoomStudentRelationDao.findNoFinishedExamRegistIdsWIthExamRooms();
 		if(!CollectionUtils.isEmpty(registIds)){
 			examRoomStudentRelationDao.deleteStudentRoomRegistRelations(registIds);
 			examCertificationDao.deleteWithRegist(registIds);

+ 5 - 7
edu-user/edu-user-biz/src/main/resources/config/mybatis/ExamRoomStudentRelationMapper.xml

@@ -329,14 +329,12 @@
 
     <select id="findNoFinishedExamRegistIdsWIthExamRooms" resultType="long">
 		SELECT
-			exam_registration_id_
+			ser.exam_registration_id_
 		FROM
-			student_exam_result
+			student_exam_result ser
+			LEFT JOIN exam_room er ON ser.exam_room_id_ = er.id_
 		WHERE
-			is_finished_exam_ != 5
-			AND exam_room_id_ IN
-			<foreach collection="examRoomIds" item="examRoomId" separator="," open="(" close=")">
-				#{examRoomId}
-			</foreach>
+			ser.is_finished_exam_ != 5
+			AND er.exam_end_time_&lt;NOW()
 	</select>
 </mapper>