Browse Source

Merge remote-tracking branch 'origin/master'

Joburgess 5 năm trước cách đây
mục cha
commit
92b8c9a373

+ 5 - 2
edu-im/edu-im-server/src/main/java/com/keao/edu/im/service/Impl/RoomServiceImpl.java

@@ -197,8 +197,9 @@ public class RoomServiceImpl implements RoomService {
     @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
     @Override
     public BaseResponse joinRoom(Long registrationId, boolean isAudience, boolean isDisableCamera, boolean isMusicMode, String roomId) throws ApiException, Exception {
+        StudentExamResultApiDto examResult = null;
         if(registrationId != null){
-            StudentExamResultApiDto examResult = eduUserFeignService.getExamResult(registrationId);
+            examResult = eduUserFeignService.getExamResult(registrationId);
             /*Integer recordFlag = examResult.getRecordFlag();
             if(recordFlag != null && recordFlag == 1){
                 joinRecorded(registrationId);
@@ -338,7 +339,9 @@ public class RoomServiceImpl implements RoomService {
 //        roomResult.setWhiteboards(whiteboardList);
         log.info("join success: roomId = {}, userId = {}, userName={}, role = {}", roomId, userId, roleEnum);
         if(registrationId != null){
-            eduUserFeignService.updateFinishedExam(registrationId,0);
+            if(examResult.getIsFinishedExam() == 1){
+                eduUserFeignService.updateFinishedExam(registrationId,0);
+            }
             this.publishMessage(eduUserFeignService.getPublishMessage(registrationId));
         }
         return baseResponse;

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

@@ -138,11 +138,11 @@ public interface ExamRoomStudentRelationDao extends BaseDAO<Long, ExamRoomStuden
 
     /**
      * 获取当前学员需要等待人数
-     * @param examRegistrationId
+     * @param examRoomId
      * @param signInTime
      * @return
      */
-    Integer sumWaitNum(@Param("examRegistrationId") Long examRegistrationId, @Param("signInTime") String signInTime, @Param("studentId") Integer studentId);
+    Integer sumWaitNum(@Param("examRoomId") Long examRoomId, @Param("signInTime") String signInTime, @Param("studentId") Integer studentId);
 
     /**
      * 获取所有参考学员编号

+ 11 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dto/ExamCertificationDto.java

@@ -25,6 +25,9 @@ public class ExamCertificationDto{
     @ApiModelProperty(value = "学员编号")
     private Integer studentId;
 
+    @ApiModelProperty(value = "学员确认状态")
+    private Integer confirmStatus;
+
     @ApiModelProperty(value = "级别")
     private Integer level;
 
@@ -40,6 +43,14 @@ public class ExamCertificationDto{
     @ApiModelProperty(value = "考试内容")
     private String songJson;
 
+    public Integer getConfirmStatus() {
+        return confirmStatus;
+    }
+
+    public void setConfirmStatus(Integer confirmStatus) {
+        this.confirmStatus = confirmStatus;
+    }
+
     public Integer getStudentId() {
         return studentId;
     }

+ 6 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamCertificationServiceImpl.java

@@ -10,6 +10,7 @@ import com.keao.edu.user.dao.*;
 import com.keao.edu.user.dto.ExamCertificationDto;
 import com.keao.edu.user.dto.NeedCheckingDetailDto;
 import com.keao.edu.user.entity.ExamCertification;
+import com.keao.edu.user.entity.StudentExamResult;
 import com.keao.edu.user.entity.Subject;
 import com.keao.edu.user.service.ExamCertificationService;
 import com.keao.edu.user.service.StudentService;
@@ -35,6 +36,8 @@ public class ExamCertificationServiceImpl extends BaseServiceImpl<Long, ExamCert
 	@Autowired
 	private StudentService studentService;
 	@Autowired
+	private StudentExamResultDao studentExamResultDao;
+	@Autowired
 	private SysConfigDao sysConfigDao;
 
 	@Override
@@ -73,7 +76,7 @@ public class ExamCertificationServiceImpl extends BaseServiceImpl<Long, ExamCert
 		//等待学员数
 		String signInTime = needCheckingDetailDto.getSignInTime();
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		Integer waitNum = examRoomStudentRelationDao.sumWaitNum(examRegistrationId,signInTime,sysUser.getId());
+		Integer waitNum = examRoomStudentRelationDao.sumWaitNum(needCheckingDetailDto.getExamRoomId(),signInTime,sysUser.getId());
 		needCheckingDetailDto.setWaitNum(waitNum);
 		needCheckingDetailDto.setDesc(sysConfigDao.findConfigValue("exam_room_desc"));
 		return needCheckingDetailDto;
@@ -88,6 +91,8 @@ public class ExamCertificationServiceImpl extends BaseServiceImpl<Long, ExamCert
 		examCertificationDto.setRealName(student.getRealName());
 		examCertificationDto.setGender(student.getGender());
 		examCertificationDto.setCertificatePhoto(student.getCertificatePhoto());
+		StudentExamResult studentExamResult = studentExamResultDao.findByRegistrationId(examRegistrationId);
+		examCertificationDto.setConfirmStatus(studentExamResult.getConfirmStatus());
 		return examCertificationDto;
 	}
 

+ 1 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamReviewServiceImpl.java

@@ -114,7 +114,7 @@ public class ExamReviewServiceImpl extends BaseServiceImpl<Long, ExamReview> imp
 		examReview.setTeacherId(sysUser.getId());
 		examReview.setStudentId(examRoomStudentRelation.getStudentId());
 		examReview.setExamRoomId(examRoomStudentRelation.getExamRoomId());
-		examReview.setTeacherId(Integer.parseInt(examRoomStudentRelation.getTenantId()));
+		examReview.setStudentId(Integer.parseInt(examRoomStudentRelation.getTenantId()));
 		examReviewDao.insert(examReview);
 	}
 

+ 12 - 9
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRoomStudentRelationServiceImpl.java

@@ -319,7 +319,7 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 				}
 			}
 			//将当前学员退踢出教室
-			imFeignService.kickRoom(new ReqUserData(examRoomStudentRelation.getExamRegistrationId(),roomStudentListDto.getStudentId().toString()));
+//			imFeignService.kickRoom(new ReqUserData(examRoomStudentRelation.getExamRegistrationId(),roomStudentListDto.getStudentId().toString()));
 		}
 	}
 
@@ -412,6 +412,8 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 		studentExamResult.setVideoUrl(videoUrl);
 		studentExamResult.setIsFinishedExam(5);
 		studentExamResultDao.update(studentExamResult);
+		ExamRoomStudentRelation roomStudentRelation = examRoomStudentRelationDao.getStudentExamRoom(examRegistrationId);
+		publishMessage(roomStudentRelation,MemberChangedMessage.Student_Queue,true,studentExamResult.getStudentId());
 	}
 
 	@Override
@@ -459,7 +461,7 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 			studentExamResultDao.updateFinishedExam(examRoomStudentRelation.getExamRegistrationId(),2);
 		}else {
 			//结束考试
-			studentExamResultDao.updateFinishedExam(examRoomStudentRelation.getExamRegistrationId(),4);
+			studentExamResultDao.updateFinishedExam(examRoomStudentRelation.getExamRegistrationId(),5);
 		}
 		//关闭学员房间入口
 		examRoomStudentRelation.setClassroomSwitch(0);
@@ -468,13 +470,14 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 	}
 
 	private void nextStudent(Long nextExamRoomStudentRelationId,Boolean isPush,Integer operator){
-		if(nextExamRoomStudentRelationId != null){
-			ExamRoomStudentRelation examRoomStudentRelation = examRoomStudentRelationDao.get(nextExamRoomStudentRelationId);
-			//开启学员房间入口
-			examRoomStudentRelation.setClassroomSwitch(1);
-			examRoomStudentRelationDao.update(examRoomStudentRelation);
-			publishMessage(examRoomStudentRelation,MemberChangedMessage.Student_Queue,isPush,operator);
-		}
+		ExamRoomStudentRelation examRoomStudentRelation = examRoomStudentRelationDao.get(nextExamRoomStudentRelationId);
+		//开启学员房间入口
+		examRoomStudentRelation.setClassroomSwitch(1);
+		examRoomStudentRelationDao.update(examRoomStudentRelation);
+
+		//状态变更为呼叫中
+		studentExamResultDao.updateFinishedExam(examRoomStudentRelation.getExamRegistrationId(),1);
+		publishMessage(examRoomStudentRelation,MemberChangedMessage.Student_Queue,isPush,operator);
 	}
 
 	@Override

+ 5 - 8
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamReviewMapper.xml

@@ -181,7 +181,7 @@
 		SELECT COUNT(DISTINCT ser.id_)
 		FROM exam_room_student_relation ersr
 		LEFT JOIN student_exam_result ser ON ser.exam_registration_id_ = ersr.exam_registration_id_
-		LEFT JOIN exam_review er ON ser.exam_registration_id_ = er.exam_registration_id_
+		LEFT JOIN exam_review er ON ser.exam_registration_id_ = er.exam_registration_id_ AND er.teacher_id_ = #{teacherId}
 		<include refid="queryExamReviewRecordListSql"/>
 	</select>
 	<resultMap id="ExamReviewRecordDtoMap" type="com.keao.edu.user.dto.ExamReviewRecordDto">
@@ -199,13 +199,10 @@
 	</resultMap>
 	<sql id="queryExamReviewRecordListSql">
 		<where>
-			<if test="reviewFlag == null">
-				AND er.teacher_id_ = #{teacherId} OR er.id_ IS NULL
+			<if test="reviewFlag != null and reviewFlag == 1">
+				AND er.id_ IS NOT NULL
 			</if>
-			<if test="reviewFlag == 1">
-				AND er.teacher_id_ = #{teacherId}
-			</if>
-			<if test="reviewFlag == 0">
+			<if test="reviewFlag != null and reviewFlag == 0">
 				AND er.id_ IS NULL
 			</if>
 			<if test="roomId != 0">
@@ -219,7 +216,7 @@
 		er.evaluation_result_,ersr.exam_registration_id_,er.id_,ersr.student_id_,ser.video_url_
 		FROM exam_room_student_relation ersr
 		LEFT JOIN student_exam_result ser ON ser.exam_registration_id_ = ersr.exam_registration_id_
-		LEFT JOIN exam_review er ON ser.exam_registration_id_ = er.exam_registration_id_
+		LEFT JOIN exam_review er ON ser.exam_registration_id_ = er.exam_registration_id_ AND er.teacher_id_ = #{teacherId}
 		<include refid="queryExamReviewRecordListSql"/>
 		ORDER BY ser.is_finished_exam_ DESC
 		<include refid="global.limit"/>

+ 2 - 2
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamRoomStudentRelationMapper.xml

@@ -218,7 +218,7 @@
 		LEFT JOIN sys_user su ON ersr.student_id_ = su.id_
 		LEFT JOIN student_exam_result ser ON ser.exam_registration_id_ = ersr.exam_registration_id_
 		WHERE ersr.exam_room_id_ = #{roomId}
-		ORDER BY ersr.sign_in_time_ IS NULL,ersr.sign_in_time_ ASC,ser.is_finished_exam_
+		ORDER BY ersr.sign_in_time_ IS NULL,ser.is_finished_exam_ ASC,ersr.sign_in_time_ ASC
 	</select>
     <select id="querySignTotalNum" resultType="java.lang.Integer">
 		SELECT COUNT(ersr.id_) FROM exam_room_student_relation ersr
@@ -237,7 +237,7 @@
 		SELECT COUNT(DISTINCT ersr.id_)
 		FROM exam_room_student_relation ersr
 		LEFT JOIN student_exam_result ser ON ser.exam_registration_id_ = ersr.exam_registration_id_
-		WHERE ersr.exam_registration_id_ = #{examRegistrationId} AND ersr.sign_in_time_ IS NOT NULL
+		WHERE ersr.exam_room_id_ = #{examRoomId} AND ersr.sign_in_time_ IS NOT NULL
 		AND ser.is_finished_exam_ IN (0,1,2) AND ersr.student_id_ != #{studentId}
 		<if test="signInTime != null and signInTime != ''">
 			AND ersr.sign_in_time_ &lt; #{signInTime}

+ 3 - 0
edu-user/edu-user-server/src/main/resources/config/mybatis/StudentExamResultMapper.xml

@@ -58,6 +58,9 @@
 	<update id="update" parameterType="com.keao.edu.user.entity.StudentExamResult">
 		UPDATE student_exam_result
 		<set>
+			<if test="isFinishedExam != null">
+				is_finished_exam_ = #{isFinishedExam},
+			</if>
 			<if test="recordStartTime != null">
 				record_start_time_ = #{recordStartTime},
 			</if>