zouxuan 4 年之前
父節點
當前提交
d3c239e75a
共有 1 個文件被更改,包括 39 次插入67 次删除
  1. 39 67
      mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

+ 39 - 67
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -286,32 +286,7 @@ public class RoomServiceImpl implements RoomService {
 
 
         Long currentRoomId = Long.parseLong(redisTemplate.opsForValue().get(roomString));
         Long currentRoomId = Long.parseLong(redisTemplate.opsForValue().get(roomString));
         log.info("signInSuccess: currentRoomId={}", currentRoomId);
         log.info("signInSuccess: currentRoomId={}", currentRoomId);
-        /*CourseSchedule schedule = courseScheduleDao.get(courseId);
-        Date date = new Date();
-        String classDate = DateUtil.format(schedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
-        String endClassTime = DateUtil.format(schedule.getEndClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
-        Date classEndDateTime = DateUtil.stringToDate(classDate + " " + endClassTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
-        //如果当前时间大于课程结束时间,并查看是否是连堂课,将签到记录落到对应的考勤上
-        if(date.after(classEndDateTime)){
-            //获取下一节连堂课
-            CourseSchedule cs = schedule;
-            String continueCourseTime = sysConfigDao.findConfigValue(SysConfigService.ONLINE_CONTINUE_COURSE_TIME);
-            if(StringUtils.isEmpty(continueCourseTime)){
-                continueCourseTime = "5";
-            }
-            while (true){
-                //获取当前课程的所有连堂课列表
-                String courseClassDate = DateUtil.format(cs.getClassDate(), DateUtil.DEFAULT_PATTERN);
-                String courseEndDateTime = DateUtil.format(cs.getEndClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
-                //上课时间
-                cs = courseScheduleDao.queryContinueCourse(cs,continueCourseTime,courseClassDate + " " + courseEndDateTime);
-                if(cs != null){
-                    courseId = cs.getId();
-                }else {
-                    break;
-                }
-            }
-        }*/
+        redisTemplate.delete(roomString);
         RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
         RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
         if(roleEnum == RoleTeacher){
         if(roleEnum == RoleTeacher){
             teacherAttendanceService.addTeacherAttendanceSignIn(firstCourseId,userIdInt,currentRoomId);
             teacherAttendanceService.addTeacherAttendanceSignIn(firstCourseId,userIdInt,currentRoomId);
@@ -346,53 +321,50 @@ public class RoomServiceImpl implements RoomService {
 
 
     @Transactional(rollbackFor = Exception.class, isolation = Isolation.SERIALIZABLE)
     @Transactional(rollbackFor = Exception.class, isolation = Isolation.SERIALIZABLE)
     public void leaveRoomSuccess(String roomId,String userId) throws Exception {
     public void leaveRoomSuccess(String roomId,String userId) throws Exception {
-//        RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
-//        if(roomMember == null){
-//            return ;
-//        }
-//        log.info("leaveRoomSuccess: roomId={}, userId={}", roomId,userId);
-//        RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
+        RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
+        if(roomMember == null){
+            return ;
+        }
+        log.info("leaveRoomSuccess: roomId={}, userId={}", roomId,userId);
+        RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
         String roomString = roomId.substring(1);
         String roomString = roomId.substring(1);
         Integer firstCourseId = Integer.parseInt(roomString);
         Integer firstCourseId = Integer.parseInt(roomString);
 //        Long currentRoomId = Long.parseLong(redisTemplate.opsForValue().get(roomString));
 //        Long currentRoomId = Long.parseLong(redisTemplate.opsForValue().get(roomString));
-
-        teacherAttendanceService.addTeacherAttendanceSignOut(firstCourseId.longValue(),Integer.parseInt(userId));
-
 //
 //
 //        log.info("leaveRoomSuccess: currentRoomId={}", currentRoomId);
 //        log.info("leaveRoomSuccess: currentRoomId={}", currentRoomId);
-//        redisTemplate.delete(roomString);
-//        if(roleEnum == RoleTeacher){
-//            courseScheduleStudentPaymentDao.adjustPlayMidi(firstCourseId,null,null);
-//            teacherAttendanceService.addTeacherAttendanceSignOut(firstCourseId.longValue(),Integer.parseInt(userId));
-//        }else {
-//            studentAttendanceService.addStudentAttendanceSignOut(firstCourseId.longValue(),Integer.parseInt(userId));
-//        }
-//        Room room = roomDao.findByRid(roomId);
-//        if (room == null) {
-//            roomMemberDao.deleteUserByRidAndUid(roomId, userId);
-//            userDao.deleteByUid(userId);
-//            return;
-//        }
-//
-//        if (roleEnum != RoleStudent && isUserDisplay(room, userId)) {
-//            updateDisplay(roomId, userId, "", 0);
-//        }
-//        if (roomMemberDao.countByRid(roomId) == 1) {
-//            roomMemberDao.deleteUserByRidAndUid(roomId, userId);
-//            roomDao.deleteByRid(roomId);
-//            deleteWhiteboardByUser(roomId, userId);
-//            imHelper.dismiss(userId, roomId);
-//            log.info("leaveRoomSuccess dismiss the room: {},userId: {}", roomId,userId);
-//        } else {
-////            imHelper.quit(new String[]{userId}, roomId);
-//            roomMemberDao.deleteUserByRidAndUid(roomId, userId);
-//            MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Leave, userId, roleEnum.getValue());
-//            msg.setUserName(roomMember.getName());
-//            imHelper.publishMessage(userId, roomId, msg);
+
+        if(roleEnum == RoleTeacher){
+            courseScheduleStudentPaymentDao.adjustPlayMidi(firstCourseId,null,null);
+            teacherAttendanceService.addTeacherAttendanceSignOut(firstCourseId.longValue(),Integer.parseInt(userId));
+        }else {
+            studentAttendanceService.addStudentAttendanceSignOut(firstCourseId.longValue(),Integer.parseInt(userId));
+        }
+        Room room = roomDao.findByRid(roomId);
+        if (room == null) {
+            roomMemberDao.deleteUserByRidAndUid(roomId, userId);
+            userDao.deleteByUid(userId);
+            return;
+        }
+
+        if (roleEnum != RoleStudent && isUserDisplay(room, userId)) {
+            updateDisplay(roomId, userId, "", 0);
+        }
+        if (roomMemberDao.countByRid(roomId) == 1) {
+            roomMemberDao.deleteUserByRidAndUid(roomId, userId);
+            roomDao.deleteByRid(roomId);
+            deleteWhiteboardByUser(roomId, userId);
+            imHelper.dismiss(userId, roomId);
+            log.info("leaveRoomSuccess dismiss the room: {},userId: {}", roomId,userId);
+        } else {
 //            imHelper.quit(new String[]{userId}, roomId);
 //            imHelper.quit(new String[]{userId}, roomId);
-//            log.info("leaveRoomSuccess quit group: roomId={},userId: {}", roomId,userId);
-//        }
-//        userDao.deleteByUid(userId);
+            roomMemberDao.deleteUserByRidAndUid(roomId, userId);
+            MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Leave, userId, roleEnum.getValue());
+            msg.setUserName(roomMember.getName());
+            imHelper.publishMessage(userId, roomId, msg);
+            imHelper.quit(new String[]{userId}, roomId);
+            log.info("leaveRoomSuccess quit group: roomId={},userId: {}", roomId,userId);
+        }
+        userDao.deleteByUid(userId);
     }
     }
 
 
     private void deleteWhiteboardByUser(String roomId, String userId) throws Exception {
     private void deleteWhiteboardByUser(String roomId, String userId) throws Exception {