zouxuan 5 vuotta sitten
vanhempi
commit
dca33e53fd

+ 11 - 12
edu-im/edu-im-api/src/main/java/com/keao/edu/im/api/entity/ReqUserData.java

@@ -3,7 +3,7 @@ package com.keao.edu.im.api.entity;
 
 public class ReqUserData {
 	private String userName;
-//	private String roomId;
+	private String roomId;
 	private Long registrationId;
 	private String userId;
 	private String type;
@@ -11,10 +11,9 @@ public class ReqUserData {
 	private boolean disableCamera;
 	private boolean musicMode;
 
-	/*public ReqUserData(String roomId, String userId) {
-		this.roomId = roomId;
-		this.userId = userId;
-	}*/
+	public ReqUserData(Long registrationId) {
+		this.registrationId = registrationId;
+	}
 
 	public ReqUserData() {
 	}
@@ -43,13 +42,13 @@ public class ReqUserData {
 		this.userName = userName;
 	}
 
-//	public String getRoomId() {
-//		return roomId;
-//	}
-//
-//	public void setRoomId(String roomId) {
-//		this.roomId = roomId;
-//	}
+	public String getRoomId() {
+		return roomId;
+	}
+
+	public void setRoomId(String roomId) {
+		this.roomId = roomId;
+	}
 
 	public String getUserId() {
 		return userId;

+ 5 - 5
edu-im/edu-im-server/src/main/java/com/keao/edu/im/controller/RoomController.java

@@ -33,20 +33,20 @@ public class RoomController{
     @RequestMapping(value = "/join", method = RequestMethod.POST)
     public Object joinRoom(@RequestBody ReqUserData data)
             throws ApiException, Exception {
-        RoomResult roomResult = roomService.joinRoom(data.getRegistrationId(), data.isAudience(), data.isDisableCamera(),data.isMusicMode());
+        RoomResult roomResult = roomService.joinRoom(data.getRegistrationId(), data.isAudience(), data.isDisableCamera(),data.isMusicMode(),data.getRoomId());
         return new BaseResponse<>(roomResult);
     }
 
     @RequestMapping(value = "/joinRecorded", method = RequestMethod.POST)
-    public Object joinRecorded(Long examRegistrationId)
+    public Object joinRecorded(Long registrationId)
             throws Exception {
-        return new BaseResponse<>(roomService.joinRecorded(examRegistrationId));
+        return new BaseResponse<>(roomService.joinRecorded(registrationId));
     }
 
     @RequestMapping(value = "/levelRecorded", method = RequestMethod.POST)
-    public Object levelRecorded(Long examRegistrationId)
+    public Object levelRecorded(Long registrationId)
             throws Exception {
-        return new BaseResponse<>(roomService.levelRecorded(examRegistrationId));
+        return new BaseResponse<>(roomService.levelRecorded(registrationId));
     }
 
     @RequestMapping(value = "/roomQuery", method = RequestMethod.POST)

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

@@ -1,6 +1,5 @@
 package com.keao.edu.im.service.Impl;
 
-import com.alibaba.fastjson.JSONObject;
 import com.keao.edu.auth.api.client.SysUserFeignService;
 import com.keao.edu.auth.api.entity.SysUser;
 import com.keao.edu.common.enums.YesOrNoEnum;
@@ -111,23 +110,24 @@ public class RoomServiceImpl implements RoomService {
         }
         String recordStartTime = examResult.getRecordStartTime();
         Date date = new Date();
+        RoomResult roomResult = new RoomResult();
         if(recordStartTime != null){
             Date startTime = DateUtil.stringToDate(recordStartTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
-            int minutesBetween = DateUtil.minutesBetween(startTime, date);
-            int record_minutes = Integer.parseInt(eduUserFeignService.getSysConfig("record_minutes"));
+            int minutesBetween = DateUtil.secondsBetween(startTime, date);
+            int record_minutes = Integer.parseInt(eduUserFeignService.getSysConfig("record_minutes")) * 60;
             if(minutesBetween >= record_minutes){
                 throw new BizException("加入失败,录制超时");
             }
+            roomResult.setSurplusTime(record_minutes - minutesBetween);
         }
 
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         String userId = sysUser.getId().toString();
         String realName = sysUser.getRealName();
 //        ExamRoom examRoom = eduUserFeignService.getExamRoom(Integer.parseInt(roomId));
-        RoomResult roomResult = new RoomResult();
+
         RoomResult.MemberResult userResult = new RoomResult.MemberResult();
         List<RoomMember> memberList = roomMemberDao.findByRidAndUid(recordedRoomId, userId);
-
         ExamRoomStudentRelation examRoomStudentRelation = eduUserFeignService.getExamRoomStudentRelation(examRegistrationId);
         if(examRoomStudentRelation == null){
             throw new BizException("学员考试数据异常");
@@ -188,13 +188,15 @@ public class RoomServiceImpl implements RoomService {
 
     @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
     @Override
-    public RoomResult joinRoom(Long registrationId, boolean isAudience, boolean isDisableCamera,boolean isMusicMode) throws ApiException, Exception {
-        StudentExamResultApiDto examResult = eduUserFeignService.getExamResult(registrationId);
-        Integer recordFlag = examResult.getRecordFlag();
-        if(recordFlag != null && recordFlag == 1){
-            joinRecorded(registrationId);
+    public RoomResult joinRoom(Long registrationId, boolean isAudience, boolean isDisableCamera,boolean isMusicMode,String roomId) throws ApiException, Exception {
+        if(StringUtils.isNotEmpty(roomId)){
+            StudentExamResultApiDto examResult = eduUserFeignService.getExamResult(registrationId);
+            Integer recordFlag = examResult.getRecordFlag();
+            if(recordFlag != null && recordFlag == 1){
+                joinRecorded(registrationId);
+            }
         }
-        String roomId = examResult.getRoomId();
+
         CheckUtils.checkArgument(registrationId != null, "registrationId must't be null");
 
         log.info("joinRoom: roomId={}, isAudience={}, isDisableCamera={},isMusicMode={}", roomId, isAudience, isDisableCamera,isMusicMode);

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

@@ -14,7 +14,7 @@ import com.keao.edu.im.pojo.*;
  */
 public interface RoomService {
     //everyone
-    public RoomResult joinRoom(Long registrationId, boolean isAudience, boolean isDisableCamera, boolean isMusicMode) throws ApiException, Exception;
+    public RoomResult joinRoom(Long registrationId, boolean isAudience, boolean isDisableCamera, boolean isMusicMode,String roomId) throws ApiException, Exception;
 
     void signIn(Long roomId);
 

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

@@ -295,9 +295,9 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 
 		if(currentExamRoomStudentRelationId != null){
 			ExamRoomStudentRelation examRoomStudentRelation = examRoomStudentRelationDao.get(currentExamRoomStudentRelationId);
-			Long roomId = examRoomStudentRelation.getExamRoomId();
+//			Long roomId = examRoomStudentRelation.getExamRoomId();
 			//将当前学员退出教室并添加参考状态,如果考试未完成,清除签到时间,重新签到
-			imFeignService.leaveRoom(new ReqUserData(roomId.toString(),examRoomStudentRelation.getStudentId().toString()));
+			imFeignService.leaveRoom(new ReqUserData(examRoomStudentRelation.getExamRegistrationId()));
 			if(examStatus == 0){
 				//未完成
 				examRoomStudentRelationDao.cleanSignInTime(examRoomStudentRelation.getExamRegistrationId());