Przeglądaj źródła

fix直播自动创建

Eric 2 lat temu
rodzic
commit
6324cdabb5

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveBroadcastRoomServiceImpl.java

@@ -612,10 +612,25 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
             message.setFromUserId(speakerId.toString());
             message.setToChatRoomId(roomUid);
             message.setObjectName(ImRoomMessage.FORCED_OFFLINE);
+
+            SysUser sysUser = sysUserFeignService.queryUserById(speakerId);
+            if (Objects.nonNull(sysUser)) {
+
+                // 发送用户信息
+                LiveRoomMessage.MessageUser messageUser = LiveRoomMessage.MessageUser.builder()
+                        .sendUserId(String.valueOf(speakerId))
+                        .sendUserName(sysUser.getUsername())
+                        .avatarUrl(sysUser.getAvatar())
+                        .build();
+
+                message.setMessageContent(LiveRoomMessage.MessageContent.builder().sendUserInfo(messageUser).build());
+            }
+
             LivePluginService pluginService = livePluginContext.getPluginService(room.getServiceProvider());
             pluginService.sendChatRoomMessage(message);
             log.info("roomDestroy>>>> FORCED_OFFLINE {}", JSONObject.toJSONString(message));
             //销毁直播间
+            pluginService.chatRoomDestroy(roomUid);
 //            imFeignService.destroyLiveRoom(roomUid);
             log.info("roomDestroy>>>> destroyLiveRoom {}", JSONObject.toJSONString(message));
         } catch (Exception e) {
@@ -1164,15 +1179,22 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
             //生成主讲人信息到缓存
             SysUser sysUser = getSysUser(room.getSpeakerId());
             createSpeakerInfo(room, sysUser);
+
             //去融云创建房间
             LivePluginService pluginService = livePluginContext.getPluginService(room.getServiceProvider());
+
+            // 注册主播用户信息到三方平台
+            pluginService.register(sysUser.getId().toString(), sysUser.getUsername(), sysUser.getAvatar());
+            // 创建直播间IM群
             pluginService.chatRoomCreate(room.getRoomUid(),room.getRoomTitle(),sysUser.getId().toString());
 
             // imFeignService.createLiveRoom(room.getRoomUid(), room.getRoomTitle());
             //推送预约直播间消息
             imLiveRoomReservationService.push(room);
+
             //推送直播开始消息
             this.sendRoomLiveState(sysUser, room, MessageTypeEnum.JIGUANG_LIVE_STARTED);
+
         } catch (Exception e) {
             log.error(">>>>>>>>>> createLiveRoom error roomUid:{} msg:{}", room.getRoomUid(), e.getMessage());
         }