Browse Source

直播人数

liujunchi 2 years ago
parent
commit
1bb28d4b6e

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImLiveBroadcastRoomMemberDao.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.dal.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ym.mec.biz.dal.dto.RoomMemberNumDto;
 import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoomMember;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomMemberVo;
 import org.apache.ibatis.annotations.Param;
@@ -53,5 +54,11 @@ public interface ImLiveBroadcastRoomMemberDao extends BaseMapper<ImLiveBroadcast
     void userWhetherMic(@Param("roomUid") String roomUid, @Param("userId") Long userId, @Param(
         "whetherMicStatus") Integer whetherMicStatus);
 
+    /**
+     * 查询房间人数
+     *
+     * @param roomUid 房间id
+     */
+    RoomMemberNumDto queryMemberNum(@Param("roomUid") String roomUid);
 }
 

+ 19 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/RoomMemberNumDto.java

@@ -0,0 +1,19 @@
+package com.ym.mec.biz.dal.dto;
+
+import lombok.Data;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2023-03-29
+ */
+@Data
+public class RoomMemberNumDto {
+
+    private String roomUid;
+
+    private Integer onlineNum;
+
+    private Integer totalNum;
+}

+ 5 - 11
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveBroadcastRoomServiceImpl.java

@@ -27,6 +27,7 @@ import com.ym.mec.biz.dal.dao.LiveGoodsMapperDao;
 import com.ym.mec.biz.dal.dao.SysConfigDao;
 import com.ym.mec.biz.dal.dto.ImLiveBroadcastRoomDto;
 import com.ym.mec.biz.dal.dto.LiveRoomStatus;
+import com.ym.mec.biz.dal.dto.RoomMemberNumDto;
 import com.ym.mec.biz.dal.dto.RoomReservationUserSearch;
 import com.ym.mec.biz.dal.dto.TencentData;
 import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoom;
@@ -2032,17 +2033,10 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
         // roomVo.setLookNum(getNum.apply(this::getOnlineUserCache, roomVo.getRoomUid()));
 
         // 不在从缓存中获取观看人数,改为从数据库中获取
-        Map<String, Object> params = new HashMap<>();
-        params.put("roomUid", roomVo.getRoomUid());
-        params.put("page", 1);
-        params.put("rows", 1);
-        PageInfo<ImLiveBroadcastRoomMemberVo> roomMember = liveBroadcastRoomMemberService.queryRoomMember(
-            params);
-        roomVo.setTotalLookNum(roomMember.getTotal());
-        params.put("onlineStatus", 1);
-         roomMember = liveBroadcastRoomMemberService.queryRoomMember(
-            params);
-        roomVo.setLookNum(roomMember.getTotal());
+
+        RoomMemberNumDto roomMemberNumDto = liveBroadcastRoomMemberDao.queryMemberNum(roomVo.getRoomUid());
+        roomVo.setTotalLookNum(roomMemberNumDto.getTotalNum());
+        roomVo.setLookNum(roomMemberNumDto.getOnlineNum());
 
         // 直播视频数
         List<ImLiveRoomVideoVo> imLiveRoomVideoVos = imLiveRoomVideoService.queryList(roomVo.getRoomUid());

+ 9 - 0
mec-biz/src/main/resources/config/mybatis/ImLiveBroadcastRoomMemberMapper.xml

@@ -89,4 +89,13 @@
         set whether_mic_status_ = #{whetherMicStatus}
         where room_uid_ = #{roomUid} and user_id_ = #{userId}
     </update>
+
+    <select id="queryMemberNum" resultType="com.ym.mec.biz.dal.dto.RoomMemberNumDto">
+        select room_uid_ as roomUid,
+        count(1) as totalNum ,
+        count(if(online_status_ = 1 and live_room_status_ = 1,1,0)) as onlineNum
+        from im_live_broadcast_room_member
+        where room_uid_ = #{roomUid}
+        group by room_uid_
+    </select>
 </mapper>