liujc 2 vuotta sitten
vanhempi
commit
9873d6bdde

+ 46 - 21
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/LiveRoomServiceImpl.java

@@ -874,22 +874,22 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
                     .update(roomMember);
 
             //向直播间发送当前在线人数消息
-//            this.sendOnlineUserCount(roomUid, roomInfo.getSpeakerId(), onlineUserInfo.size());
+            this.sendOnlineUserCount(roomUid, roomInfo.getSpeakerId(), onlineUserInfo.size());
             log.info("opsRoom>>>> looker userInfo: {}", userJsonStr);
-//            //用户离开直播间发送退出房间消息给主讲人
-//            ImRoomMessage message = new ImRoomMessage();
-//            message.setFromUserId(userId.toString());
-//            message.setToChatroomId(roomUid);
-//            message.setClientType(ClientEnum.STUDENT.getCode());
-//            message.setObjectName(ImRoomMessage.LOOKER_LOGIN_OUT);
-//            message.setContent(userId);
-//            try {
-//                this.publishRoomMessage(message);
-//                log.info("opsRoom>>>> looker RC_CHATROOM_LEAVE : {}", userJsonStr);
-//            } catch (Exception e) {
-//                log.error("opsRoom>>>>  looker error RC_CHATROOM_LEAVE {}", e.getMessage());
-//                log.error("opsRoom>>>>  looker error sendMessage {} : RC_CHATROOM_LEAVE : {}", message, userJsonStr);
-//            }
+            //用户离开直播间发送退出房间消息给主讲人
+            ImRoomMessage message = new ImRoomMessage();
+            message.setFromUserId(userId.toString());
+            message.setToChatroomId(roomUid);
+            message.setClientType(ClientEnum.STUDENT.getCode());
+            message.setObjectName(ImRoomMessage.LOOKER_LOGIN_OUT);
+            message.setContent(userId);
+            try {
+                this.publishRoomMessage(message);
+                log.info("opsRoom>>>> looker RC_CHATROOM_LEAVE : {}", userJsonStr);
+            } catch (Exception e) {
+                log.error("opsRoom>>>>  looker error RC_CHATROOM_LEAVE {}", e.getMessage());
+                log.error("opsRoom>>>>  looker error sendMessage {} : RC_CHATROOM_LEAVE : {}", message, userJsonStr);
+            }
         });
 
     }
@@ -1173,10 +1173,8 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
                     .build();
         }
 
-        LiveRoomMessage.MessageContent messageContent = LiveRoomMessage.MessageContent
-                .builder()
-                .sendUserInfo(messageUser)
-                .build();
+        LiveRoomMessage.MessageContent messageContent = getMessageContent(message);
+        messageContent.setSendUserInfo(messageUser);
 
         LiveRoomMessage build = LiveRoomMessage.builder()
                 .isIncludeSender(1)
@@ -1189,13 +1187,40 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
 
             LivePluginService pluginService = livePluginContext.getPluginService(message.getServiceProvider());
             pluginService.sendChatRoomMessage(build);
-            log.info("sendLiveRoomLoginOutMessage>>>> looker {} : roomId={}, userId={}",message.getObjectName(), message.getToChatroomId(), message.getFromUserId());
+            log.info("sendLiveRoomMessage>>>> looker {} : roomId={}, userId={}",message.getObjectName(), message.getToChatroomId(), message.getFromUserId());
         } catch (Exception e) {
             log.error("sendLiveRoomMessage>>>>  looker error {} {}", message.getObjectName(),e.getMessage());
             log.error("sendLiveRoomMessage>>>>  looker error sendMessage {} : {} : : roomId={}, userId={}",message.getObjectName(), message, message.getToChatroomId(), message.getFromUserId());
         }
     }
 
+    private LiveRoomMessage.MessageContent getMessageContent(ImRoomMessage message) {
+
+        switch (message.getObjectName()) {
+            case LiveRoomMessage.FORCED_OFFLINE:
+                return LiveRoomMessage.MessageContent.builder()
+                        .build();
+            case LiveRoomMessage.LOOKER_LOGIN_OUT:
+                return LiveRoomMessage.MessageContent.builder()
+                        .targetId( imGroupService.getImUserId(message.getFromUserId(),message.getClientType()))
+                        .build();
+            case LiveRoomMessage.MEMBER_COUNT:
+                LiveRoomWrapper.LiveRoomVo liveRoomVo = queryRoomInfo(message.getToChatroomId());
+                return LiveRoomMessage.MessageContent.builder()
+                        .count(liveRoomVo.getLookNum().longValue())
+                        .onlineUsers(liveRoomVo.getLookNum().longValue())
+                        .viewers(liveRoomVo.getTotalLookNum().longValue())
+                        .likes(liveRoomVo.getLikeNum().longValue())
+                        .build();
+            case LiveRoomMessage.WELCOME:
+                return LiveRoomMessage.MessageContent.builder()
+                        .build();
+            default:
+                return LiveRoomMessage.MessageContent.builder()
+                        .build();
+        }
+    }
+
     private SysUser getSysUser(Long userId) {
         return Optional.ofNullable(userId)
                 .map(sysUserFeignService::queryUserById)
@@ -2130,7 +2155,7 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
         onlineUserCache.fastPut(userId, userJsonStr);
         log.info("joinRoom>>>> userInfo: {}", userJsonStr);
         //向直播间发送当前在线人数消息
-//        this.sendOnlineUserCount(roomUid, userId, onlineUserCache.size());
+        this.sendOnlineUserCount(roomUid, userId, onlineUserCache.size());
         log.info("join sendOnlineUserCount>>>> param is null   roomUid: {}  fromUserId:{}  count:{}", roomUid, userId, onlineUserCache.size());
         log.info("joinRoom>>>> userInfo: {}", userJsonStr);
         //记录当前用户对应的房间uid