Procházet zdrojové kódy

修改:
增加一个test接口用于测试查询数据用
修复bug

hgw před 3 roky
rodič
revize
2760d60b2b

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/ImLiveBroadcastRoomMemberVo.java

@@ -11,6 +11,12 @@ import java.util.Date;
  */
 public class ImLiveBroadcastRoomMemberVo implements java.io.Serializable {
 
+    @ApiModelProperty(value = "房间编号")
+    private String roomUid;
+
+    @ApiModelProperty(value = "房间标题")
+    private String roomTitle;
+
     @ApiModelProperty(value = "学生编号")
     private Integer studentId;
 
@@ -77,4 +83,20 @@ public class ImLiveBroadcastRoomMemberVo implements java.io.Serializable {
     public void setTotalViewTime(Integer totalViewTime) {
         this.totalViewTime = totalViewTime;
     }
+
+    public String getRoomUid() {
+        return roomUid;
+    }
+
+    public void setRoomUid(String roomUid) {
+        this.roomUid = roomUid;
+    }
+
+    public String getRoomTitle() {
+        return roomTitle;
+    }
+
+    public void setRoomTitle(String roomTitle) {
+        this.roomTitle = roomTitle;
+    }
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/ImLiveBroadcastRoomService.java

@@ -47,7 +47,7 @@ public interface ImLiveBroadcastRoomService extends IService<ImLiveBroadcastRoom
 
     void createLiveRoom();
 
-    void test();
+    String test(String roomUid, Integer userId);
 
     /**
     * @description: 分享直播链接

+ 47 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveBroadcastRoomServiceImpl.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.ImLiveBroadcastRoomDao;
@@ -140,6 +141,7 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
     public PageInfo<ImLiveBroadcastRoomVo> queryPage(Map<String, Object> param) {
         Page<ImLiveBroadcastRoomVo> pageInfo = PageUtil.getPageInfo(param);
         pageInfo.setDesc("a.created_time_");
+        param.put("tenantId",TenantContextHolder.getTenantId());
         IPage<ImLiveBroadcastRoomVo> page = baseMapper.queryPage(pageInfo, param);
         return PageUtil.pageInfo(page);
     }
@@ -298,6 +300,9 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
      */
     @Override
     public void quitRoom(List<ImUserState> userState) {
+        if (CollectionUtils.isEmpty(userState)) {
+            return;
+        }
         userState.forEach(user -> {
             log.info("quitRoom>>>> {}", JSONObject.toJSONString(user));
             if (StringUtils.isBlank(user.getStatus()) || user.getStatus().equals("0")) {
@@ -447,12 +452,13 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
         //关闭直播
         RBucket<RoomSpeakerInfo> speakerCache = redissonClient.getBucket(LIVE_SPEAKER_INFO.replace(USER_ID, userId.toString()));
         RoomSpeakerInfo roomSpeakerInfo = speakerCache.get();
-
-        if (Objects.nonNull(roomSpeakerInfo.getWhetherVideo()) && roomSpeakerInfo.getWhetherVideo() == 0) {
+        boolean stateFlag = Objects.nonNull(roomSpeakerInfo.getState()) && roomSpeakerInfo.getState() == 0;
+        if (Objects.nonNull(roomSpeakerInfo.getWhetherVideo()) && roomSpeakerInfo.getWhetherVideo() == 0
+                && stateFlag) {
             //停止录制视频
             imFeignService.stopRecord(roomUid);
         }
-        if (Objects.nonNull(roomSpeakerInfo.getState()) && roomSpeakerInfo.getState() == 0) {
+        if (stateFlag) {
             roomSpeakerInfo.setState(1);
             //计算时长
             int minutesBetween = getMinutesBetween(roomSpeakerInfo.getStartLiveTime(), new Date());
@@ -562,8 +568,42 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
     /**
      * 测试
      */
-    public void test() {
+    public String test(String roomUid, Integer userId) {
+        String result = "roomUid: " + roomUid + "  userId : " + userId + "  ";
+        //点赞
+        Object like = redissonClient.getBucket(LIVE_ROOM_LIKE.replace(ROOM_UID, roomUid)).get();
+        if (Objects.isNull(like)) {
+            like = 0;
+        }
+        //0用户数量
+        RList<Object> list = redissonClient.getList(LIVE_ROOM_USER_LIST.replace(ROOM_UID, roomUid));
+        int size = list.size();
+        //0累计总用户数量
+        int totalLook = redissonClient.getMap(LIVE_ROOM_TOTAL_USER_LIST.replace(ROOM_UID, roomUid)).size();
+        result = result + " 点赞数量:" + like + "  用户数量:" + size + "  累计总用户数量:" + totalLook + ">>>>>>>>>>>>";
 
+        //获取用户信息
+        RBucket<RoomSpeakerInfo> speakerCache = redissonClient.getBucket(LIVE_SPEAKER_INFO.replace(USER_ID, userId.toString()));
+        if (speakerCache.isExists()) {
+            RoomSpeakerInfo roomSpeakerInfo = speakerCache.get();
+            result = result + "  主讲人信息:" + "createRoomTime :" + DateUtil.dateToString(roomSpeakerInfo.getCreateRoomTime(), DateUtil.EXPANDED_DATE_TIME_FORMAT) +
+                    "joinRoomTime :" + DateUtil.dateToString(roomSpeakerInfo.getJoinRoomTime(), DateUtil.EXPANDED_DATE_TIME_FORMAT) +
+                    ",roomUid:" + roomSpeakerInfo.getRoomUid() + ",speakerId:" + roomSpeakerInfo.getSpeakerId() + ",speakerName:" + roomSpeakerInfo.getSpeakerName() +
+                    ",tenantId:" + roomSpeakerInfo.getTenantId() + " ,totalLiveTime:" + roomSpeakerInfo.getTotalLiveTime() + ", whetherVideo:" + roomSpeakerInfo.getWhetherVideo()
+                    + ">>>>>>>>>>>>";
+        } else {
+            result = result + "  主讲人信息:" + "主讲人信息不存在" + ">>>>>>>>>>>>";
+        }
+
+        //获取总用户信息
+        RMap<Integer, RoomUserInfoVo> roomTotalUser = redissonClient.getMap(LIVE_ROOM_TOTAL_USER_LIST.replace(ROOM_UID, roomUid));
+        if (roomTotalUser.isExists()) {
+            List<RoomUserInfoVo> collect = new ArrayList<>(roomTotalUser.values());
+            result = result + "  总人员信息:" + JSONObject.toJSONString(collect);
+        } else {
+            result = result + "  总人员信息:" + "总人员信息不存在" + ">>>>>>>>>>>>";
+        }
+        return result;
     }
 
     @Override
@@ -633,10 +673,13 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
         //房间创建时间
         private Date createRoomTime;
         //进入房间时间
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
         private Date joinRoomTime;
         //开始直播时间
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
         private Date startLiveTime;
         //退出房间时间
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
         private Date exitRoomTime;
         //总直播时间
         private Integer totalLiveTime = 0;

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/ImLiveBroadcastRoomMapper.xml

@@ -69,6 +69,9 @@
                 OR a.`room_title_` LIKE CONCAT('%', #{param.search},'%')
                 )
             </if>
+            <if test="param.tenantId != null ">
+                AND a.tenant_id_ = #{param.tenantId}
+            </if>
             <if test="param.roomUid != null">
                 and a.room_uid_ = #{param.roomUid}
             </if>

+ 18 - 10
mec-biz/src/main/resources/config/mybatis/ImLiveBroadcastRoomMemberMapper.xml

@@ -25,18 +25,26 @@
     </insert>
 
     <select id="queryMemberPage" resultType="com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomMemberVo">
-        select
-            a.user_id_ as studentId,
-            su.username_ as studentName,
-            su.phone_ as phone,
-            b.name_ as subName,
-            a.join_time_ as joinTime,
-            a.total_time_ as totalViewTime
+        select i.room_uid_ as roomUid,
+        i.room_title_ as roomTitle,
+        a.user_id_ as studentId,
+        su.username_ as studentName,
+        su.phone_ as phone,
+        b.name_ as subName,
+        a.join_time_ as joinTime,
+        a.total_time_ as totalViewTime
         from im_live_broadcast_room_member as a
-                 left join sys_user as su on su.id_ = a.user_id_
-                 left join student st on su.id_ = st.user_id_
-                 left join subject as b on st.subject_id_list_ = b.id_
+        left join im_live_broadcast_room as i on a.room_uid_ = i.room_uid_
+        left join sys_user as su on su.id_ = a.user_id_
+        left join student st on su.id_ = st.user_id_
+        left join subject as b on st.subject_id_list_ = b.id_
         where a.room_uid_ = #{param.roomUid}
+        <if test="param.search != null ">
+            AND (
+            a.room_uid_ LIKE CONCAT('%', #{param.search},'%')
+            OR i.room_title_ LIKE CONCAT('%', #{param.search},'%')
+            )
+        </if>
     </select>
 
 </mapper>