ソースを参照

Merge remote-tracking branch 'origin/master'

Joburgess 5 年 前
コミット
26792e1954

+ 1 - 0
edu-im/edu-im-server/src/main/java/com/keao/edu/im/pojo/RoomResult.java

@@ -15,6 +15,7 @@ public class RoomResult {
     private @Getter @Setter String roomId;
     private @Getter @Setter Date startTime;
     private @Getter @Setter int surplusTime;
+    private @Getter @Setter int examFlag;
     private @Getter @Setter Long registrationId;
     private @Getter @Setter String imToken;
     private @Getter @Setter String authorization;

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

@@ -333,7 +333,7 @@ public class RoomServiceImpl implements RoomService {
         if (registrationId != null){
             roomResult.setRegistrationId(registrationId);
         }
-
+        roomResult.setExamFlag(examRoom.getExamFlag());
         roomResult.setMembers(roomMemberDao.findByRid(roomId));
 //        List<Whiteboard> whiteboardList = whiteboardDao.findByRid(roomId);
 //        roomResult.setWhiteboards(whiteboardList);

+ 12 - 0
edu-user/edu-user-client-api/src/main/java/com/keao/edu/user/api/entity/ExamRoom.java

@@ -52,8 +52,12 @@ public class ExamRoom {
 
 	private Integer organId;
 
+	@ApiModelProperty(value = "考场状态0关闭1开启")
 	private Integer openFlag;
 
+	@ApiModelProperty(value = "考试状态1开始0关闭")
+	private Integer examFlag;
+
 	private Integer examPlanPushFlag;
 
 	private Integer examRoomStudentNum;
@@ -69,6 +73,14 @@ public class ExamRoom {
 	/**  */
 	private String tenantId;
 
+	public Integer getExamFlag() {
+		return examFlag;
+	}
+
+	public void setExamFlag(Integer examFlag) {
+		this.examFlag = examFlag;
+	}
+
 	public ExamRoom() {
 	}
 

+ 7 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamRoomStudentRelationController.java

@@ -64,6 +64,13 @@ public class ExamRoomStudentRelationController extends BaseController {
         return succeed();
     }
 
+    @ApiOperation("关闭考试")
+    @PostMapping(value = "/closeExam")
+    public HttpResponseResult closeExam(Long examRoomStudentRelationId) {
+        examRoomStudentRelationService.actionExam(examRoomStudentRelationId);
+        return succeed();
+    }
+
     @ApiOperation("监考端指定学员去录播")
     @PostMapping(value = "/webRecorded")
     public HttpResponseResult webRecorded(Long nextExamRoomStudentRelationId,Long examRoomStudentRelationId,Long roomId) {

+ 5 - 5
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dto/StuRecordDetailDto.java

@@ -19,7 +19,7 @@ public class StuRecordDetailDto {
     private Integer singleSongRecordMinutes;
 
     @ApiModelProperty(value = "实际考试结束时间")
-    private String actualExamEndTime;
+    private Date examEndTime;
 
     @ApiModelProperty(value = "考试内容")
     private String songJson;
@@ -67,12 +67,12 @@ public class StuRecordDetailDto {
         this.subTime = subTime;
     }
 
-    public String getActualExamEndTime() {
-        return actualExamEndTime;
+    public Date getExamEndTime() {
+        return examEndTime;
     }
 
-    public void setActualExamEndTime(String actualExamEndTime) {
-        this.actualExamEndTime = actualExamEndTime;
+    public void setExamEndTime(Date examEndTime) {
+        this.examEndTime = examEndTime;
     }
 
     public String getSongJson() {

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

@@ -349,8 +349,9 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 
 		StuRecordDetailDto stuRecordDetailDto = examRegistrationDao.getStuRecordDetail(examRegistrationId);
 		int recordMinutes = Integer.parseInt(sysConfigService.findByParamName("record_minutes").getParanValue());
-		Date date = new Date();
+		Date date = studentExamResult.getRecordStartTime();
 		date = DateUtil.addMinutes(date,recordMinutes);
+		stuRecordDetailDto.setExamEndTime(date);
 		int secondsBetween = DateUtil.secondsBetween(stuRecordDetailDto.getRecordStartTime(), date);
 		if(secondsBetween <= 0){
 			throw new BizException("操作失败:录制超时");
@@ -385,7 +386,14 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 	public void actionExam(Long examRoomStudentRelationId) {
 		ExamRoomStudentRelation examRoomStudentRelation = examRoomStudentRelationDao.get(examRoomStudentRelationId);
 		examRoomStudentRelation.setClassroomSwitch(1);
+
+		ExamRoom examRoom = examRoomDao.get(examRoomStudentRelation.getExamRoomId());
+		if(examRoom.getExamFlag() == 1){
+			throw new BizException("考试已开启,请勿重复操作");
+		}
 		examRoomStudentRelationDao.update(examRoomStudentRelation);
+		examRoom.setExamFlag(1);
+		examRoomDao.update(examRoom);
 		publishMessage(examRoomStudentRelation,MemberChangedMessage.Student_Queue,true);
 	}
 

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

@@ -596,14 +596,12 @@
 		<include refid="global.limit"/>
 	</select>
 	<resultMap id="StuRecordDetailDtoMap" type="com.keao.edu.user.dto.StuRecordDetailDto">
-		<result property="actualExamEndTime" column="expect_exam_end_time_"/>
 		<result property="songJson" column="song_json_"/>
 		<result property="recordStartTime" column="record_start_time_"/>
 	</resultMap>
     <select id="getStuRecordDetail" resultMap="StuRecordDetailDtoMap">
-		SELECT eb.expect_exam_end_time_,er.song_json_,ser.record_start_time_
+		SELECT er.song_json_,ser.record_start_time_
 		FROM exam_registration er
-		LEFT JOIN examination_basic eb ON er.examination_basic_id_ = eb.id_
 		LEFT JOIN student_exam_result ser ON ser.exam_registration_id_ = er.id_
 		WHERE er.id_ = #{examRegistrationId} LIMIT 1
 	</select>