|
@@ -126,22 +126,39 @@ public class UserController {
|
|
|
callbackOnMemberStateChange.setClientIP(clientIP);
|
|
|
callbackOnMemberStateChange.setOptPlatform(optPlatform);
|
|
|
if (callbackOnMemberStateChange.getGroupId().startsWith("LIVE")) {
|
|
|
+ // 直播间成员状态变更
|
|
|
imLiveBroadcastRoomService.callbackOnMemberStateChange(callbackOnMemberStateChange);
|
|
|
|
|
|
// 直播课学生签退
|
|
|
String[] values = callbackOnMemberStateChange.getGroupId().split("-");
|
|
|
String roomId = values.length > 2 ? values[1] : "";
|
|
|
|
|
|
+ // 直播课学生签退、签退
|
|
|
if ((roomId.startsWith("S") || roomId.startsWith("I"))
|
|
|
- && CollectionUtils.isNotEmpty(callbackOnMemberStateChange.getMemberList())
|
|
|
- && "Offline".equals(callbackOnMemberStateChange.getEventType())) {
|
|
|
+ && CollectionUtils.isNotEmpty(callbackOnMemberStateChange.getMemberList())) {
|
|
|
|
|
|
// 学生编号
|
|
|
String userId = callbackOnMemberStateChange.getMemberList().get(0).getMemberAccount();
|
|
|
- try {
|
|
|
- roomService.leaveRoomSuccess(roomId, userId, null);
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("tencentImCallback leaveRoomSuccess error, roomId={}, userId={}", roomId, userId, e);
|
|
|
+
|
|
|
+ String eventType = callbackOnMemberStateChange.getEventType();
|
|
|
+ // 学生离线消息通知
|
|
|
+ if ("Offline".equals(eventType)) {
|
|
|
+
|
|
|
+ try {
|
|
|
+ roomService.leaveRoomSuccess(roomId, userId, null);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("tencentImCallback leaveRoomSuccess error, roomId={}, userId={}", roomId, userId, e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 学生在线消息通知
|
|
|
+ if ("Online".equals(eventType)) {
|
|
|
+
|
|
|
+ try {
|
|
|
+ roomService.joinRoomSuccess(roomId, userId, null);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("tencentImCallback joinRoomSuccess error, roomId={}, userId={}", roomId, userId, e);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -158,12 +175,14 @@ public class UserController {
|
|
|
callbackAfterMemberExit.setOptPlatform(optPlatform);
|
|
|
|
|
|
if (callbackAfterMemberExit.getGroupId().startsWith("LIVE")) {
|
|
|
+ // 直播间成员状态变更
|
|
|
imLiveBroadcastRoomService.callbackAfterMemberExit(callbackAfterMemberExit);
|
|
|
|
|
|
// 直播课学生签退
|
|
|
String[] values = callbackAfterMemberExit.getGroupId().split("-");
|
|
|
String roomId = values.length > 2 ? values[1] : "";
|
|
|
|
|
|
+ // 直播课学生签退、签退
|
|
|
if ((roomId.startsWith("S") || roomId.startsWith("I"))
|
|
|
&& CollectionUtils.isNotEmpty(callbackAfterMemberExit.getExitMemberList())) {
|
|
|
|
|
@@ -188,12 +207,14 @@ public class UserController {
|
|
|
callbackAfterNewMemberJoin.setOptPlatform(optPlatform);
|
|
|
|
|
|
if (callbackAfterNewMemberJoin.getGroupId().startsWith("LIVE")) {
|
|
|
+ // 直播间成员状态变更
|
|
|
imLiveBroadcastRoomService.callbackAfterNewMemberJoin(callbackAfterNewMemberJoin);
|
|
|
|
|
|
// 直播课学生签到
|
|
|
String[] values = callbackAfterNewMemberJoin.getGroupId().split("-");
|
|
|
String roomId = values.length > 2 ? values[1] : "";
|
|
|
|
|
|
+ // 直播课学生签退、签退
|
|
|
if ((roomId.startsWith("S") || roomId.startsWith("I"))
|
|
|
&& CollectionUtils.isNotEmpty(callbackAfterNewMemberJoin.getNewMemberList())) {
|
|
|
|