Jelajahi Sumber

fix 直播考勤异常

Eric 1 tahun lalu
induk
melakukan
1f54ec15fe

+ 1 - 1
mec-im/src/main/java/com/ym/controller/RoomController.java

@@ -183,7 +183,7 @@ public class RoomController{
                         case EVENT_TYPE_EXIT_ROOM:
                         case EVENT_TYPE_DISMISS_ROOM:
                             //成员退出
-                            roomService.leaveRoomSuccess(roomId, eventInfo.getEventInfo().getUserId(),null, eventInfo.getCallbackTs());
+                            roomService.leaveRoomSuccess(roomId, eventInfo.getEventInfo().getUserId(),"LIVE", eventInfo.getCallbackTs());
                             break;
                         default:
                             // 默认事件,直接忽略

+ 7 - 1
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -1196,6 +1196,12 @@ public class RoomServiceImpl implements RoomService {
             }
         }
 
+        // 直播课学生连麦不更新退出时间
+        if (StringUtils.equalsIgnoreCase(deviceNum, "LIVE") && RoleEnum.getEnumByValue(roomMember.getRole()) == RoleStudent) {
+            businessLogger.warn("leaveRoomSuccess: LIVE_STUDENT roomId={}, userId={}, deviceNum={}", roomId, userId, deviceNum);
+            return;
+        }
+
         // 回调整事件延迟通知
         if (callbackTs < roomMember.getJoinDt().getTime() && joinTimeMatch) {
             businessLogger.warn("leaveRoomSuccess: DELAY_NOTIFY roomId={}, userId={}, deviceNum={}, callbackTs={}, joinTs={}",
@@ -1207,7 +1213,7 @@ public class RoomServiceImpl implements RoomService {
                 roomMember.getJoinDt().getTime(), callbackTs);
 
         // 用户离开事件
-        leaveRoomSuccess(roomId, userId, deviceNum);
+        leaveRoomSuccess(roomId, userId, null);
     }
 
     public void deleteWhiteboardByUser(String roomId, String userId) throws Exception {