瀏覽代碼

直播间销毁,用户退出直播间

liujunchi 2 年之前
父節點
當前提交
4448f00a43

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ImLiveBroadcastRoomMemberService.java

@@ -8,6 +8,7 @@ import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomDetailVo;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomMemberVo;
 import com.ym.mec.common.page.PageInfo;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -30,5 +31,9 @@ public interface ImLiveBroadcastRoomMemberService extends IService<ImLiveBroadca
      */
     PageInfo<ImLiveBroadcastRoomMemberVo> queryRoomMember(Map<String, Object> param);
 
+    /**
+     * 查询在房间人员
+     */
+    List<Integer> getLiveRoomMember(String roomUid);
 }
 

+ 21 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveBroadcastRoomMemberServiceImpl.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.service.impl;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ym.mec.biz.dal.dao.ImLiveBroadcastRoomMemberDao;
+import com.ym.mec.biz.dal.dto.LiveRoomStatus;
 import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoomMember;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomDetailVo;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomMemberVo;
@@ -17,7 +18,10 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 直播间人员关系表(ImLiveBroadcastRoomMember)表服务实现类
@@ -57,5 +61,22 @@ public class ImLiveBroadcastRoomMemberServiceImpl extends ServiceImpl<ImLiveBroa
         return PageUtil.pageInfo(baseMapper.queryMemberPage(pageInfo, param));
     }
 
+    /**
+     * 查询在房间人员
+     *
+     * @param roomUid
+     */
+    @Override
+    public List<Integer> getLiveRoomMember(String roomUid) {
+        List<ImLiveBroadcastRoomMember> list = this.lambdaQuery()
+                                                   .eq(ImLiveBroadcastRoomMember::getRoomUid, roomUid)
+                                                   .eq(ImLiveBroadcastRoomMember::getLiveRoomStatus, true)
+                                                   .list();
+        if (list == null || list.isEmpty())
+            return new ArrayList<>();
+
+        return list.stream().map(ImLiveBroadcastRoomMember::getUserId).collect(Collectors.toList());
+    }
+
 }
 

+ 13 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveBroadcastRoomServiceImpl.java

@@ -736,7 +736,19 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
                     pluginService.rtcRoomRecordStop(taskId);
                 }
             }
-//            imFeignService.destroyLiveRoom(roomUid);
+            // 将在房间人员退出房间
+            List<Integer> liveRoomMember = liveBroadcastRoomMemberService.getLiveRoomMember(roomUid);
+            List<ImUserState> imUserStates = liveRoomMember.stream().map(userId1 -> {
+                ImUserState imUserState = new ImUserState();
+                imUserState.setUserid(userId1.toString());
+                imUserState.setRoomUid(roomUid);
+                imUserState.setStatus("3");
+                return imUserState;
+            }).collect(Collectors.toList());
+
+            opsRoom(imUserStates);
+
+            //            imFeignService.destroyLiveRoom(roomUid);
             log.info("roomDestroy>>>> destroyLiveRoom {}", JSONObject.toJSONString(message));
         } catch (Exception e) {
             log.error("roomDestroy>>>> errorMsg{}", e.getMessage(), e.getCause());