Browse Source

学员进入房间前增加是否可以进直播间的校验

hgw 3 years ago
parent
commit
c370fca1c8

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

@@ -131,10 +131,18 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
     }
 
     public ImLiveBroadcastRoomVo queryRoomAndCheck(String roomUid, SysUser sysUser, Integer osType) {
+        Optional<ImLiveBroadcastRoomVo> optional;
+        //如果是学生端,则需要检查是否有权限进入
+        if (osType == 1) {
+            Map<String, Object> param = new HashMap<>();
+            param.put("roomUid", roomUid);
+            optional = Optional.of(param).map(this::getImLiveBroadcastRoomVo);
+            optional.orElseThrow(() -> new BizException("您无法观看该直播"));
+        } else {
+            optional = Optional.ofNullable(roomUid).map(this::queryRoomInfo);
+            optional.orElseThrow(() -> new BizException("直播间不存在"));
+        }
         //直播间信息校验
-        Optional<ImLiveBroadcastRoomVo> optional = Optional.ofNullable(roomUid)
-                .map(this::queryRoomInfo);
-        optional.orElseThrow(() -> new BizException("直播间不存在"));
         optional.filter(r -> r.getTenantId().equals(sysUser.getTenantId()))
                 .orElseThrow(() -> new BizException("您不是该直播机构人员,不可观看!"));
         optional.filter(r -> r.getRoomState() != 1).orElseThrow(() -> new BizException("直播间不存在"));
@@ -203,7 +211,7 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
         //查询该人员分部  及 分部下包含的学校(合作单位)
         SysUser sysUser = getSysUser();
         //分部
-        String organIds = null;
+        String organIds;
         //如果是超管就查询当前机构所有的直播间
         if (sysUser.getTenantId() == -1 || sysUser.getIsSuperAdmin()) {
             param.put("allRoom", 1);
@@ -396,6 +404,10 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
         param.put("tenantId", TenantContextHolder.getTenantId());
         param.put("popularize", 1);
         param.put("liveState", 1);
+        return getImLiveBroadcastRoomVo(param);
+    }
+
+    private ImLiveBroadcastRoomVo getImLiveBroadcastRoomVo(Map<String, Object> param) {
         PageInfo<ImLiveBroadcastRoomVo> pageInfo = imLiveRoomReservationService.queryPageStudent(param);
         List<ImLiveBroadcastRoomVo> list = pageInfo.getRows();
         if (CollectionUtils.isNotEmpty(list)) {

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveRoomReservationServiceImpl.java

@@ -98,6 +98,7 @@ public class ImLiveRoomReservationServiceImpl extends ServiceImpl<ImLiveRoomRese
         if (Objects.nonNull(student) && Objects.nonNull(student.getCooperationOrganId())) {
             param.put("schoolId", student.getCooperationOrganId());
         }
+        //乐团
         String teamIds = baseMapper.queryMusicGroupIds(user.getId());
         if (StringUtils.isNotBlank(teamIds)) {
             param.put("teamIds", teamIds);

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

@@ -89,6 +89,9 @@
             <if test="param.popularize != null">
                 and a.popularize_ = #{param.popularize}
             </if>
+            <if test="param.roomUid != null">
+                and a.room_uid_ = #{param.roomUid}
+            </if>
         </where>
     </select>