Selaa lähdekoodia

Merge remote-tracking branch 'origin/master'

Joburgess 5 vuotta sitten
vanhempi
commit
13aef40d54

+ 4 - 1
edu-im/edu-im-server/src/main/java/com/keao/edu/im/service/Impl/RoomServiceImpl.java

@@ -733,8 +733,11 @@ public class RoomServiceImpl implements RoomService {
         return result;
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
     public void destroyRoom(Long roomId){
         CheckUtils.checkArgument(roomId != null, "destroyRoom roomId must't be null");
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
         List<RoomMember> roomMembers = roomMemberDao.findByRid(roomId.toString());
         if(roomMembers != null && roomMembers.size() > 0){
             roomMembers.forEach(e->{
@@ -744,7 +747,7 @@ public class RoomServiceImpl implements RoomService {
                     msg.setUserName(userInfoList.get(0).getName());
                 }
                 try {
-                    imHelper.publishMessage(e.getUid(), e.getRid(), msg, 1);
+                    imHelper.publishMessage(sysUser.getId().toString(), e.getRid(), msg, 1);
                 } catch (Exception e1) {
                     e1.printStackTrace();
                 }

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

@@ -4,6 +4,9 @@ import io.swagger.annotations.ApiModelProperty;
 
 public class ExamReviewRecordDto {
 
+    @ApiModelProperty(value = "学员报名编号")
+    private Long examRegistrationId;
+
     @ApiModelProperty(value = "学员名称")
     private String realName;
 
@@ -34,6 +37,14 @@ public class ExamReviewRecordDto {
     @ApiModelProperty(value = "评审编号")
     private Integer examReviewId;
 
+    public Long getExamRegistrationId() {
+        return examRegistrationId;
+    }
+
+    public void setExamRegistrationId(Long examRegistrationId) {
+        this.examRegistrationId = examRegistrationId;
+    }
+
     public String getVideoUrl() {
         return videoUrl;
     }

+ 4 - 3
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamCertificationServiceImpl.java

@@ -6,9 +6,7 @@ import com.keao.edu.auth.api.entity.SysUser;
 import com.keao.edu.common.dal.BaseDAO;
 import com.keao.edu.common.service.impl.BaseServiceImpl;
 import com.keao.edu.user.api.entity.Student;
-import com.keao.edu.user.dao.ExamCertificationDao;
-import com.keao.edu.user.dao.ExamRoomStudentRelationDao;
-import com.keao.edu.user.dao.SubjectDao;
+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;
@@ -36,6 +34,8 @@ public class ExamCertificationServiceImpl extends BaseServiceImpl<Long, ExamCert
 	private SysUserFeignService sysUserFeignService;
 	@Autowired
 	private StudentService studentService;
+	@Autowired
+	private SysConfigDao sysConfigDao;
 
 	@Override
 	public BaseDAO<Long, ExamCertification> getDAO() {
@@ -75,6 +75,7 @@ public class ExamCertificationServiceImpl extends BaseServiceImpl<Long, ExamCert
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		Integer waitNum = examRoomStudentRelationDao.sumWaitNum(examRegistrationId,signInTime,sysUser.getId());
 		needCheckingDetailDto.setWaitNum(waitNum);
+		needCheckingDetailDto.setDesc(sysConfigDao.findConfigValue("exam_room_desc"));
 		return needCheckingDetailDto;
 	}
 

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

@@ -137,7 +137,7 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 			ser.setExamRegistrationId(examRegistration.getId().longValue());
 			ser.setExaminationBasicId(examRegistration.getExaminationBasicId());
 			ser.setStudentId(examRegistration.getStudentId());
-			ser.setIsFinishedExam(0);
+			ser.setIsFinishedExam(3);
 			ser.setConfirmStatus(0);
 			ser.setTenantId(TenantContextHolder.getTenantId());
 			studentExamResults.add(ser);
@@ -368,8 +368,8 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 	public StuRecordDetailDto stuRecordDetail(Long examRegistrationId) {
 		StudentExamResult studentExamResult = studentExamResultDao.findByRegistrationId(examRegistrationId);
 		//当前学员是否完成考试
-		if(studentExamResult.getIsFinishedExam() == 1){
-			throw new BizException("操作失败:您已完成考试");
+		if(studentExamResult.getIsFinishedExam() != 4){
+			throw new BizException("操作失败:当前状态不允许录播");
 		}
 		//是否允许录播
 		if(studentExamResult.getRecordStartTime() == null){
@@ -383,12 +383,12 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 			}
 		}
 
+
 		StuRecordDetailDto stuRecordDetailDto = examRegistrationDao.getStuRecordDetail(examRegistrationId);
 		int recordMinutes = Integer.parseInt(sysConfigService.findByParamName("record_minutes").getParanValue());
-		Date date = studentExamResult.getRecordStartTime();
-		date = DateUtil.addMinutes(date,recordMinutes);
+		Date date = DateUtil.addMinutes(stuRecordDetailDto.getRecordStartTime(),recordMinutes);
 		stuRecordDetailDto.setExamEndTime(date);
-		int secondsBetween = DateUtil.secondsBetween(stuRecordDetailDto.getRecordStartTime(), date);
+		int secondsBetween = DateUtil.secondsBetween(stuRecordDetailDto.getRecordStartTime(), new Date());
 		if(secondsBetween <= 0){
 			throw new BizException("操作失败:录制超时");
 		}
@@ -404,9 +404,6 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 	@Transactional(rollbackFor = Exception.class)
 	public void stuEndRecord(Long examRegistrationId, String videoUrl) {
 		StudentExamResult studentExamResult = studentExamResultDao.findByRegistrationId(examRegistrationId);
-		if(studentExamResult.getIsFinishedExam() == 1){
-			throw new BizException("提交失败:您的考试已完成");
-		}
 		//当前学员是否完成考试
 		if(studentExamResult.getIsFinishedExam() != 4){
 			throw new BizException("提交失败:当前考试状态不允许录播");
@@ -480,14 +477,20 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 
 	@Override
 	public void publishMessage(ExamRoomStudentRelation examRoomStudentRelation,Integer action,Boolean isPush){
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		if (!isPush){
 			return;
 		}
 		PublishMessageDto publishMessageDto = new PublishMessageDto();
-		String userId = examRoomStudentRelation.getStudentId().toString();
+		String userId = sysUser.getId().toString();
 		publishMessageDto.setUserId(userId);
 		publishMessageDto.setRoomId(examRoomStudentRelation.getExamRoomId().toString());
-		MemberChangedMessage msg = new MemberChangedMessage(action, userId,3);
+		MemberChangedMessage msg;
+		if(action == 3 || action == 4){
+			msg = new MemberChangedMessage(action, examRoomStudentRelation.getStudentId().toString(),3);
+		}else {
+			msg = new MemberChangedMessage(action, userId,3);
+		}
 //		String jsonString = JSONObject.toJSONString(examCertificationService.needCheckingDetail(examRoomStudentRelation.getExamRegistrationId()));
 		NeedCheckingDetailDto needCheckingDetailDto = examCertificationService.needCheckingDetail(examRoomStudentRelation.getExamRegistrationId());
 		msg.setWaitNum(needCheckingDetailDto.getWaitNum());
@@ -504,9 +507,10 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 	}
 
 	public PublishMessageDto getPublishMessage(Long examRegistrationId){
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		ExamRoomStudentRelation examRoomStudentRelation = examRoomStudentRelationDao.getStudentExamRoom(examRegistrationId);
 		PublishMessageDto publishMessageDto = new PublishMessageDto();
-		String userId = examRoomStudentRelation.getStudentId().toString();
+		String userId = sysUser.getId().toString();
 		publishMessageDto.setUserId(userId);
 		publishMessageDto.setRoomId(examRoomStudentRelation.getExamRoomId().toString());
 		MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Student_Queue, userId,3);

+ 1 - 0
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamReviewMapper.xml

@@ -195,6 +195,7 @@
 		<result property="examReviewId" column="id_"/>
 		<result property="finishedExam" column="is_finished_exam_"/>
 		<result property="videoUrl" column="video_url_"/>
+		<result property="examRegistrationId" column="exam_registration_id_"/>
 	</resultMap>
 	<sql id="queryExamReviewRecordListSql">
 		<where>

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

@@ -231,7 +231,7 @@
 	<select id="querySurplusNum" resultType="java.lang.Integer">
 		SELECT COUNT(DISTINCT ersr.id_) FROM exam_room_student_relation ersr
 		LEFT JOIN student_exam_result ser ON ersr.exam_registration_id_ = ser.exam_registration_id_
-		WHERE ersr.exam_room_id_ = #{roomId} AND ersr.sign_in_time_ IS NOT NULL AND ser.is_finished_exam_ = 0
+		WHERE ersr.exam_room_id_ = #{roomId} AND ersr.sign_in_time_ IS NOT NULL AND ser.is_finished_exam_ IN (1,2,3)
 	</select>
 	<select id="sumWaitNum" resultType="java.lang.Integer">
 		SELECT COUNT(DISTINCT ersr.id_)

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

@@ -94,18 +94,15 @@
 			<if test="videoUrl != null">
 				video_url_ = #{videoUrl},
 			</if>
-			<if test="isFinishedExam != null">
-				is_finished_exam_ = #{isFinishedExam},
-			</if>
 				update_time_ = NOW()
 		</set> WHERE id_ = #{id}
 	</update>
     <update id="confirmStudent">
-		UPDATE student_exam_result SET confirm_status_ = 1 AND update_time_ = NOW()
+		UPDATE student_exam_result SET confirm_status_ = 1,update_time_ = NOW()
 		WHERE exam_registration_id_ = #{examRegistrationId}
 	</update>
 	<update id="updateFinishedExam">
-		UPDATE student_exam_result SET is_finished_exam_ = #{finishedExam} AND update_time_ = NOW()
+		UPDATE student_exam_result SET is_finished_exam_ = #{finishedExam},update_time_ = NOW()
 		WHERE exam_registration_id_ = #{examRegistrationId}
 	</update>
 
@@ -234,7 +231,7 @@
 	</select>
 	<select id="countExamNum" resultType="java.util.HashMap">
 		SELECT ser.student_id_ 'key',COUNT(ser.id_) 'value' FROM student_exam_result ser
-		WHERE ser.tenant_id_ = #{tenantId} AND ser.is_finished_exam_ = 1 AND ser.student_id_ IN
+		WHERE ser.tenant_id_ = #{tenantId} AND ser.is_finished_exam_ != 5 AND ser.student_id_ IN
 		<foreach collection="studentIds" item="item" open="(" close=")" separator=",">
 			#{item}
 		</foreach>