瀏覽代碼

增加成员直播间观看权限

hgw 3 年之前
父節點
當前提交
8c93933f10
共有 17 個文件被更改,包括 237 次插入460 次删除
  1. 0 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImLiveBroadcastRoomDao.java
  2. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImLiveRoomPurviewDao.java
  3. 0 54
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ImLiveBroadcastRoomDto.java
  4. 2 41
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImLiveBroadcastRoom.java
  5. 7 7
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImLiveRoomPurview.java
  6. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/ImLiveBroadcastRoomService.java
  7. 15 11
      mec-biz/src/main/java/com/ym/mec/biz/service/ImLiveRoomPurviewService.java
  8. 10 104
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveBroadcastRoomServiceImpl.java
  9. 67 44
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveRoomPurviewServiceImpl.java
  10. 1 17
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveRoomReservationServiceImpl.java
  11. 2 13
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/PlatformProductServiceImpl.java
  12. 1 48
      mec-biz/src/main/resources/config/mybatis/ImLiveBroadcastRoomMapper.xml
  13. 77 55
      mec-biz/src/main/resources/config/mybatis/ImLiveRoomPurviewMapper.xml
  14. 3 37
      mec-biz/src/main/resources/config/mybatis/ImLiveRoomReservationMapper.xml
  15. 19 1
      mec-common/common-core/src/main/java/com/ym/mec/common/page/WrapperUtil.java
  16. 6 5
      mec-web/src/main/java/com/ym/mec/web/controller/ImLiveBroadcastRoomController.java
  17. 23 17
      mec-web/src/main/java/com/ym/mec/web/controller/ImLiveRoomPurviewController.java

+ 0 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImLiveBroadcastRoomDao.java

@@ -29,8 +29,6 @@ public interface ImLiveBroadcastRoomDao extends BaseMapper<ImLiveBroadcastRoom>
 
     int insertBatch(@Param("entities") List<ImLiveBroadcastRoom> entities);
 
-    IPage<Map<Integer, Object>> queryUserPageByTenantId(Page<Map<Integer, Object>> page);
-
     List<BaseRoomUserVo> queryBaseUserInfo(@Param("list") List<Integer> list);
 
     /**

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImLiveRoomPurviewDao.java

@@ -19,10 +19,10 @@ public interface ImLiveRoomPurviewDao extends BaseMapper<ImLiveRoomPurview> {
 
     int insertBatch(@Param("entities") List<ImLiveRoomPurview> entities);
 
-    <T> IPage<T> queryStudent(Page<T> page, @Param("param") Map<String, Object> param);
-
     <T> IPage<T> selectRoomPurviewStudent(Page<T> page, @Param("param") Map<String, Object> param);
 
+    <T> List<T> selectRoomPurviewStudent(@Param("param") Map<String, Object> param);
+
     <T> IPage<T> selectRoomPurviewGroup(Page<T> page, @Param("param") Map<String, Object> param);
 
 }

+ 0 - 54
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ImLiveBroadcastRoomDto.java

@@ -52,21 +52,6 @@ public class ImLiveBroadcastRoomDto implements Serializable {
     @ApiModelProperty(value = "直播间可见类型-全部可见ALL / 分部可见ORGAN / 学校可见SCHOOL / 乐团可见TEAM / 群组可见GROUP / 学生可见STUDENT")
     private String popularizeType;
 
-    @ApiModelProperty(value = "分部id-多个id逗号分割")
-    private String popularizeOrgIds;
-
-    @ApiModelProperty(value = "学校id-合作单位id,多个id逗号分割")
-    private String popularizeSchoolIds;
-
-    @ApiModelProperty(value = "乐团id,多个id逗号分割")
-    private String popularizeTeamIds;
-
-    @ApiModelProperty(value = "群组id,多个id逗号分割")
-    private String popularizeGroupIds;
-
-    @ApiModelProperty(value = "学生id,多个id逗号分割")
-    private String popularizeStudentIds;
-
     @ApiModel(value = "房间配置")
     public static class RoomConfig implements Serializable {
 
@@ -198,44 +183,5 @@ public class ImLiveBroadcastRoomDto implements Serializable {
         this.popularizeType = popularizeType;
     }
 
-    public String getPopularizeOrgIds() {
-        return popularizeOrgIds;
-    }
-
-    public void setPopularizeOrgIds(String popularizeOrgIds) {
-        this.popularizeOrgIds = popularizeOrgIds;
-    }
-
-    public String getPopularizeSchoolIds() {
-        return popularizeSchoolIds;
-    }
-
-    public void setPopularizeSchoolIds(String popularizeSchoolIds) {
-        this.popularizeSchoolIds = popularizeSchoolIds;
-    }
-
-    public String getPopularizeTeamIds() {
-        return popularizeTeamIds;
-    }
-
-    public void setPopularizeTeamIds(String popularizeTeamIds) {
-        this.popularizeTeamIds = popularizeTeamIds;
-    }
-
-    public String getPopularizeGroupIds() {
-        return popularizeGroupIds;
-    }
-
-    public void setPopularizeGroupIds(String popularizeGroupIds) {
-        this.popularizeGroupIds = popularizeGroupIds;
-    }
-
-    public String getPopularizeStudentIds() {
-        return popularizeStudentIds;
-    }
-
-    public void setPopularizeStudentIds(String popularizeStudentIds) {
-        this.popularizeStudentIds = popularizeStudentIds;
-    }
 }
 

+ 2 - 41
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImLiveBroadcastRoom.java

@@ -20,11 +20,7 @@ import java.io.Serializable;
 public class ImLiveBroadcastRoom implements Serializable {
 
     public static final String ALL = "ALL";
-    public static final String ORGAN = "ORGAN";
-    public static final String SCHOOL = "SCHOOL";
-    public static final String TEAM = "TEAM";
-    public static final String GROUP = "GROUP";
-    public static final String STUDENT = "STUDENT";
+    public static final String PRIVATE = "PRIVATE";
 
     @TableId(value = "id_", type = IdType.AUTO)
     @ApiModelProperty(value = "主键")
@@ -79,21 +75,9 @@ public class ImLiveBroadcastRoom implements Serializable {
     private Integer popularize;
 
     @TableField("popularize_type_")
-    @ApiModelProperty(value = "直播间可见类型-全部可见ALL / 部分分部可见ORGAN / 部分合作单位可见SCHOOL / 乐团可见TEAM / 群组可见GROUP / 学生可见STUDENT")
+    @ApiModelProperty(value = "直播间可见类型-全部可见 ALL / 学生可见 PRIVATE")
     private String popularizeType;
 
-    @TableField("popularize_org_ids_")
-    @ApiModelProperty(value = "分部id-多个id逗号分割")
-    private String popularizeOrgIds;
-
-    @ApiModelProperty(value = "学校id-合作单位id,多个id逗号分割")
-    @TableField("popularize_school_ids_")
-    private String popularizeSchoolIds;
-
-    @ApiModelProperty(value = "乐团id,多个id逗号分割")
-    @TableField("popularize_team_ids_")
-    private String popularizeTeamIds;
-
     @TableField("created_by_")
     @ApiModelProperty(value = "创建人")
     private Integer createdBy;
@@ -274,28 +258,5 @@ public class ImLiveBroadcastRoom implements Serializable {
         this.popularizeType = popularizeType;
     }
 
-    public String getPopularizeOrgIds() {
-        return popularizeOrgIds;
-    }
-
-    public void setPopularizeOrgIds(String popularizeOrgIds) {
-        this.popularizeOrgIds = popularizeOrgIds;
-    }
-
-    public String getPopularizeSchoolIds() {
-        return popularizeSchoolIds;
-    }
-
-    public void setPopularizeSchoolIds(String popularizeSchoolIds) {
-        this.popularizeSchoolIds = popularizeSchoolIds;
-    }
-
-    public String getPopularizeTeamIds() {
-        return popularizeTeamIds;
-    }
-
-    public void setPopularizeTeamIds(String popularizeTeamIds) {
-        this.popularizeTeamIds = popularizeTeamIds;
-    }
 }
 

+ 7 - 7
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImLiveRoomPurview.java

@@ -27,12 +27,12 @@ public class ImLiveRoomPurview implements Serializable {
     @ApiModelProperty(value = "房间编号")
     private String roomUid;
 
-    @TableField("biz_id_")
+    @TableField("user_id_")
     @ApiModelProperty(value = "业务id,如果类型是用户则是需要将VARCHAR类型转换为int再关联查询会更好")
-    private String bizId;
+    private Integer userId;
 
     @TableField("type_")
-    @ApiModelProperty(value = "类型-STUDENT 学员  GROUP-群组")
+    @ApiModelProperty(value = "保留字段-类型-STUDENT 学员  老师TEACHER  管理员ADMIN")
     private String type;
 
     @TableField("created_by_")
@@ -61,12 +61,12 @@ public class ImLiveRoomPurview implements Serializable {
         this.roomUid = roomUid;
     }
 
-    public String getBizId() {
-        return bizId;
+    public Integer getUserId() {
+        return userId;
     }
 
-    public void setBizId(String bizId) {
-        this.bizId = bizId;
+    public void setUserId(Integer userId) {
+        this.userId = userId;
     }
 
     public String getType() {

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

@@ -31,9 +31,9 @@ public interface ImLiveBroadcastRoomService extends IService<ImLiveBroadcastRoom
 
     ImLiveBroadcastRoomVo queryRoomInfo(String roomUid);
 
-    ImLiveBroadcastRoomVo add(ImLiveBroadcastRoomDto dto);
+    void add(ImLiveBroadcastRoomDto dto);
 
-    ImLiveBroadcastRoomVo update(ImLiveBroadcastRoomDto dto);
+    void update(ImLiveBroadcastRoomDto dto);
 
     void whetherChat(Integer id, Integer whetherChat);
 

+ 15 - 11
mec-biz/src/main/java/com/ym/mec/biz/service/ImLiveRoomPurviewService.java

@@ -21,7 +21,21 @@ public interface ImLiveRoomPurviewService extends IService<ImLiveRoomPurview> {
     ImLiveRoomPurviewDao getDao();
 
     /**
-     * 添加观看权限数据
+     * 批量添加/根据查询条件添加房间观看权限
+     *
+     * @param param 参数
+     *              <p> - search 搜索关键字
+     *              <p> - subjectId 声部ID
+     *              <p> - organIds 分部ID
+     *              <p> - groupIds 群聊ID
+     *              <p> - teamIds 乐团ID
+     *              <p> - schoolIds 学校id/合作单位id
+     *              <p> - roomUid 直播间UID
+     */
+    void addByCondition(Map<String, Object> param);
+
+    /**
+     * 指定多个学员id添加观看权限数据
      *
      * @param ids     bizId
      * @param roomUid 直播间UID
@@ -49,16 +63,6 @@ public interface ImLiveRoomPurviewService extends IService<ImLiveRoomPurview> {
     PageInfo<SysUserDto> queryStudent(Map<String, Object> param);
 
     /**
-     * 查询群聊列表-观看权限
-     *
-     * @param param 参数
-     *              <p> - search 搜索关键字
-     *              <p> - roomUid 直播间UID
-     *              <p> - groupType 群类型
-     */
-    PageInfo<ImGroup> queryGroup(Map<String, Object> param);
-
-    /**
      * 选择列表-观看权限-查询学员列表
      *
      * @param param 参数

+ 10 - 104
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveBroadcastRoomServiceImpl.java

@@ -2,7 +2,6 @@ package com.ym.mec.biz.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -92,8 +91,6 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
     private ImLiveRoomBlackService imLiveRoomBlackService;
     @Autowired
     private EmployeeService employeeService;
-    @Autowired
-    private ImLiveRoomPurviewService imLiveRoomPurviewService;
 
     //待替换的变量
     public static final String USER_ID = "${userId}";
@@ -217,25 +214,6 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
         Page<ImLiveBroadcastRoomVo> pageInfo = PageUtil.concatTimePage(param, "startTime", "endTime");
         pageInfo.setDesc("a.created_time_");
         param.put("tenantId", TenantContextHolder.getTenantId());
-        //查询该人员分部  及 分部下包含的学校(合作单位)
-        SysUser sysUser = getSysUser();
-        //分部
-        String organIds;
-        //如果是超管就查询当前机构所有的直播间
-        if (sysUser.getTenantId() == -1 || sysUser.getIsSuperAdmin()) {
-            param.put("allRoom", 1);
-        } else {
-            Employee employee = employeeService.get(sysUser.getId());
-            if (Objects.nonNull(employee) && Objects.nonNull(employee.getOrganIdList())) {
-                organIds = employee.getOrganIdList();
-                param.put("organIds", organIds);
-                String schoolIds = baseMapper.querySchoolIds(organIds);
-                if (StringUtils.isNotBlank(schoolIds)) {
-                    param.put("schoolIds", schoolIds);
-                }
-            }
-        }
-        param.put("userId", sysUser.getId());
         IPage<ImLiveBroadcastRoomVo> page = baseMapper.queryPage(pageInfo, param);
 
         // 查询预约人数
@@ -267,7 +245,7 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public ImLiveBroadcastRoomVo add(ImLiveBroadcastRoomDto dto) {
+    public void add(ImLiveBroadcastRoomDto dto) {
         SysUser sysUser = getSysUser(dto.getSpeakerId());
         Date now = new Date();
         if (now.getTime() > dto.getLiveStartTime().getTime()) {
@@ -284,7 +262,6 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
         obj.setCreatedBy(getSysUser().getId());
         obj.setCreatedTime(now);
         this.save(obj);
-        return getImLiveBroadcastRoomVo(roomUid);
     }
 
     /**
@@ -294,7 +271,7 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public ImLiveBroadcastRoomVo update(ImLiveBroadcastRoomDto dto) {
+    public void update(ImLiveBroadcastRoomDto dto) {
         Date now = new Date();
         Integer userId = getSysUser().getId();
         ImLiveBroadcastRoom obj = this.getById(dto.getId());
@@ -304,94 +281,16 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
         if (obj.getLiveState() == 1) {
             obj.setRoomConfig(JSONObject.toJSONString(dto.getRoomConfig()));
             this.updateById(obj);
-            return getImLiveBroadcastRoomVo(obj.getRoomUid());
+            return;
         }
         if (now.getTime() > dto.getLiveStartTime().getTime()) {
             throw new BizException("设置的直播开始时间不能小于当前时间");
         }
         //本次修改后的类型
-        String popularizeType = dto.getPopularizeType();
         BeanUtils.copyProperties(dto, obj);
-        //修改-删除直播可见权限部分数据
-        deleteRoomPurview(obj, popularizeType);
-        //添加直播间可见权限-只处理了群组和学生可是权限-其他的走原来的方式
-        insertGroupStudentPurview(dto, userId, obj.getRoomUid());
-
         obj.setRoomConfig(JSONObject.toJSONString(dto.getRoomConfig()));
         log.info("update room  >>>  :{}", JSONObject.toJSONString(obj));
         this.updateById(obj);
-        return getImLiveBroadcastRoomVo(obj.getRoomUid());
-    }
-
-    //添加直播间可见权限-只处理了群组和学生可是权限
-    private void insertGroupStudentPurview(ImLiveBroadcastRoomDto dto, Integer userId, String roomUid) {
-        Date now = new Date();
-        if (WrapperUtil.checkStr(dto.getPopularizeType(), ImLiveBroadcastRoom.GROUP, ImLiveBroadcastRoom.STUDENT)) {
-            List<String> bizIdList = new ArrayList<>();
-            if (ImLiveBroadcastRoom.GROUP.equals(dto.getPopularizeType())) {
-                bizIdList = WrapperUtil.toList(dto.getPopularizeGroupIds());
-            }
-            if (ImLiveBroadcastRoom.STUDENT.equals(dto.getPopularizeType())) {
-                bizIdList = WrapperUtil.toList(dto.getPopularizeStudentIds());
-            }
-            if (CollectionUtils.isEmpty(bizIdList)) {
-                return;
-            }
-            List<ImLiveRoomPurview> collect = bizIdList.stream().map((id) -> {
-                ImLiveRoomPurview imLiveRoomPurview = new ImLiveRoomPurview();
-                imLiveRoomPurview.setRoomUid(roomUid);
-                imLiveRoomPurview.setBizId(id);
-                imLiveRoomPurview.setType(dto.getPopularizeType());
-                imLiveRoomPurview.setCreatedBy(userId);
-                imLiveRoomPurview.setCreatedTime(now);
-                return imLiveRoomPurview;
-            }).collect(Collectors.toList());
-            Lists.partition(collect, 50).forEach(list -> imLiveRoomPurviewService.saveBatch(list));
-        }
-    }
-
-    private void deleteRoomPurview(ImLiveBroadcastRoom obj, String popularizeType) {
-        LambdaQueryWrapper<ImLiveRoomPurview> queryWrapper = null;
-        switch (popularizeType) {
-            case ImLiveBroadcastRoom.ALL:
-                obj.setPopularizeOrgIds(null);
-                obj.setPopularizeSchoolIds(null);
-                obj.setPopularizeTeamIds(null);
-                //删除purview表的数据
-                queryWrapper = Wrappers.lambdaQuery();
-                break;
-            case ImLiveBroadcastRoom.ORGAN:
-                obj.setPopularizeSchoolIds(null);
-                obj.setPopularizeTeamIds(null);
-                //删除purview表中不等于分部的数据
-                queryWrapper = Wrappers.<ImLiveRoomPurview>lambdaQuery()
-                        .ne(ImLiveRoomPurview::getType, ImLiveBroadcastRoom.ORGAN);
-                break;
-            case ImLiveBroadcastRoom.SCHOOL:
-                obj.setPopularizeTeamIds(null);
-                //删除purview表中对应的数据
-                queryWrapper = Wrappers.<ImLiveRoomPurview>lambdaQuery()
-                        .in(ImLiveRoomPurview::getType, ImLiveBroadcastRoom.TEAM, ImLiveBroadcastRoom.GROUP,
-                                ImLiveBroadcastRoom.STUDENT);
-                break;
-            case ImLiveBroadcastRoom.TEAM:
-                queryWrapper = Wrappers.<ImLiveRoomPurview>lambdaQuery()
-                        .in(ImLiveRoomPurview::getType, ImLiveBroadcastRoom.SCHOOL, ImLiveBroadcastRoom.GROUP,
-                                ImLiveBroadcastRoom.STUDENT);
-                break;
-            case ImLiveBroadcastRoom.GROUP:
-                queryWrapper = Wrappers.<ImLiveRoomPurview>lambdaQuery()
-                        .ne(ImLiveRoomPurview::getType, ImLiveBroadcastRoom.GROUP);
-                break;
-            case ImLiveBroadcastRoom.STUDENT:
-                queryWrapper = Wrappers.<ImLiveRoomPurview>lambdaQuery()
-                        .ne(ImLiveRoomPurview::getType, ImLiveBroadcastRoom.STUDENT);
-            default:
-                break;
-        }
-        if (Objects.nonNull(queryWrapper)) {
-            imLiveRoomPurviewService.remove(queryWrapper.eq(ImLiveRoomPurview::getRoomUid, obj.getRoomUid()));
-        }
     }
 
     /**
@@ -1220,10 +1119,17 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
                 .orElseThrow(() -> new BizException("用户不存在."));
     }
 
+    @Autowired
+    private ImLiveRoomPurviewService imLiveRoomPurviewService;
+
     /**
      * 测试
      */
     public Map<String, Object> test(String roomUid) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("roomUid", roomUid);
+        imLiveRoomPurviewService.selectRoomPurviewStudent(map);
+
         //test
         Map<String, Object> result = new HashMap<>();
         //校验房间心跳是否过期没续租

+ 67 - 44
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveRoomPurviewServiceImpl.java

@@ -8,17 +8,17 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.ImLiveRoomPurviewDao;
 import com.ym.mec.biz.dal.dto.SysUserDto;
-import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoom;
 import com.ym.mec.biz.dal.entity.ImLiveRoomPurview;
-import com.ym.mec.biz.service.EmployeeService;
 import com.ym.mec.biz.service.ImLiveBroadcastRoomService;
 import com.ym.mec.biz.service.ImLiveRoomPurviewService;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.PageUtil;
 import com.ym.mec.common.page.WrapperUtil;
+import com.ym.mec.common.tenant.TenantContextHolder;
+import org.apache.commons.collections.CollectionUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,6 +26,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.*;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * 直播间的观看权限表(ImLiveRoomPurview)表服务实现类
@@ -39,8 +40,6 @@ public class ImLiveRoomPurviewServiceImpl extends ServiceImpl<ImLiveRoomPurviewD
     private final static Logger log = LoggerFactory.getLogger(ImLiveRoomPurviewServiceImpl.class);
 
     @Autowired
-    private EmployeeService employeeService;
-    @Autowired
     private SysUserFeignService sysUserFeignService;
     @Autowired
     private ImLiveBroadcastRoomService imLiveBroadcastRoomService;
@@ -50,7 +49,32 @@ public class ImLiveRoomPurviewServiceImpl extends ServiceImpl<ImLiveRoomPurviewD
     }
 
     /**
-     * 添加观看权限数据
+     * 批量添加/根据查询条件添加房间观看权限
+     *
+     * @param param 参数
+     *              <p> - search 搜索关键字
+     *              <p> - subjectId 声部ID
+     *              <p> - organIds 分部ID
+     *              <p> - groupIds 群聊ID
+     *              <p> - teamIds 乐团ID
+     *              <p> - schoolIds 学校id/合作单位id
+     *              <p> - roomUid 直播间UID
+     */
+    public void addByCondition(Map<String, Object> param) {
+        String roomUid = WrapperUtil.toStr(param, "roomUid", "房间uid不能为空");
+        param.put("tenantId", TenantContextHolder.getTenantId());
+        //根据条件查询学员
+        List<SysUserDto> studentList = baseMapper.selectRoomPurviewStudent(param);
+        if (CollectionUtils.isEmpty(studentList)) {
+            throw new BizException("没有查询到人员信息");
+        }
+        Stream<Integer> userIdList = studentList.stream().map(SysUserDto::getUserId).map(Long::intValue);
+        //添加学员
+        batchInsert(userIdList, roomUid, "STUDENT");
+    }
+
+    /**
+     * 指定多个学员id添加观看权限数据
      *
      * @param ids     bizId
      * @param roomUid 直播间UID
@@ -58,18 +82,37 @@ public class ImLiveRoomPurviewServiceImpl extends ServiceImpl<ImLiveRoomPurviewD
     @Override
     public void add(String ids, String roomUid) {
         Optional.ofNullable(roomUid).orElseThrow(() -> new BizException("房间uid不能为空"));
-        Optional.ofNullable(ids).orElseThrow(() -> new BizException("请选择要删除的数据"));
+        Optional.ofNullable(ids)
+                .filter(WrapperUtil.StrPredicate)
+                .orElseThrow(() -> new BizException("请选择要删除的数据"));
         //查询房间类型
         ImLiveBroadcastRoom room = imLiveBroadcastRoomService.getOne(Wrappers.<ImLiveBroadcastRoom>lambdaQuery()
                 .eq(ImLiveBroadcastRoom::getRoomUid, roomUid));
+        if (Objects.isNull(room)) {
+            throw new BizException("房间不存在");
+        }
+        if (Objects.nonNull(room.getPopularizeType()) && Objects.equals(room.getPopularizeType(), ImLiveBroadcastRoom.ALL)) {
+            throw new BizException("该直播间为公开类型的直播间,不能添加观看权限");
+        }
+        //添加学员
+        List<Integer> userIdList = WrapperUtil.splitToIntList(ids);
+        if (CollectionUtils.isEmpty(userIdList)) {
+            return;
+        }
+        batchInsert(userIdList.stream(), roomUid, "STUDENT");
+    }
+
+    private void batchInsert(Stream<Integer> stream, String roomUid, String type) {
+        if (Objects.isNull(stream)) {
+            return;
+        }
         Date date = new Date();
         Integer userId = getSysUser().getId();
-        List<String> strings = WrapperUtil.toList(ids);
-        List<ImLiveRoomPurview> collect = strings.stream().map(id -> {
+        List<ImLiveRoomPurview> collect = stream.map(id -> {
             ImLiveRoomPurview imLiveRoomPurview = new ImLiveRoomPurview();
             imLiveRoomPurview.setRoomUid(roomUid);
-            imLiveRoomPurview.setBizId(id);
-            imLiveRoomPurview.setType(room.getPopularizeType());
+            imLiveRoomPurview.setUserId(id);
+            imLiveRoomPurview.setType(type);
             imLiveRoomPurview.setCreatedBy(userId);
             imLiveRoomPurview.setCreatedTime(date);
             return imLiveRoomPurview;
@@ -87,9 +130,9 @@ public class ImLiveRoomPurviewServiceImpl extends ServiceImpl<ImLiveRoomPurviewD
     public void delete(String ids, String roomUid) {
         Optional.ofNullable(roomUid).orElseThrow(() -> new BizException("房间uid不能为空"));
         Optional.ofNullable(ids).orElseThrow(() -> new BizException("请选择要删除的数据"));
-        List<String> strings = WrapperUtil.toList(ids);
+        List<Integer> userIdList = WrapperUtil.splitToIntList(ids);
         this.remove(Wrappers.<ImLiveRoomPurview>lambdaQuery()
-                .in(ImLiveRoomPurview::getBizId, strings)
+                .in(ImLiveRoomPurview::getUserId, userIdList)
                 .eq(ImLiveRoomPurview::getRoomUid, roomUid));
     }
 
@@ -99,6 +142,10 @@ public class ImLiveRoomPurviewServiceImpl extends ServiceImpl<ImLiveRoomPurviewD
      * @param param 参数
      *              <p> - search 搜索关键字
      *              <p> - subjectId 声部ID
+     *              <p> - organIds 分部ID
+     *              <p> - groupIds 群聊ID
+     *              <p> - teamIds 乐团ID
+     *              <p> - schoolIds 学校id/合作单位id
      *              <p> - roomUid 直播间UID
      *              <p> -page 页数
      *              <p> -rows 每页数量
@@ -106,23 +153,11 @@ public class ImLiveRoomPurviewServiceImpl extends ServiceImpl<ImLiveRoomPurviewD
     @Override
     public PageInfo<SysUserDto> queryStudent(Map<String, Object> param) {
         WrapperUtil.toStr(param, "roomUid", "房间uid不能为空");
+        param.put("in", 1);
+        param.put("tenantId", TenantContextHolder.getTenantId());
         Page<SysUserDto> pageInfo = PageUtil.getPageInfo(param);
-        return PageUtil.pageInfo(baseMapper.queryStudent(pageInfo, param));
-    }
+        return PageUtil.pageInfo(baseMapper.selectRoomPurviewStudent(pageInfo, param));
 
-    /**
-     * 查询群聊列表-观看权限
-     *
-     * @param param 参数
-     *              <p> - search 搜索关键字
-     *              <p> - roomUid 直播间UID
-     *              <p> - groupType 群类型
-     */
-    @Override
-    public PageInfo<ImGroup> queryGroup(Map<String, Object> param) {
-        WrapperUtil.toStr(param, "roomUid", "房间uid不能为空");
-        param.put("in", 1);
-        return getImGroupPageInfo(param);
     }
 
     /**
@@ -131,6 +166,10 @@ public class ImLiveRoomPurviewServiceImpl extends ServiceImpl<ImLiveRoomPurviewD
      * @param param 参数
      *              <p> - search 搜索关键字
      *              <p> - subjectId 声部ID
+     *              <p> - organIds 分部ID
+     *              <p> - groupIds 群聊ID
+     *              <p> - teamIds 乐团ID
+     *              <p> - schoolIds 学校id/合作单位id
      *              <p> - roomUid 直播间UID
      *              <p> -page 页数
      *              <p> -rows 每页数量
@@ -138,17 +177,8 @@ public class ImLiveRoomPurviewServiceImpl extends ServiceImpl<ImLiveRoomPurviewD
     @Override
     public PageInfo<SysUserDto> selectRoomPurviewStudent(Map<String, Object> param) {
         WrapperUtil.toStr(param, "roomUid", "房间uid不能为空");
+        param.put("tenantId", TenantContextHolder.getTenantId());
         Page<SysUserDto> pageInfo = PageUtil.getPageInfo(param);
-        //查询当前登录人分部
-        SysUser sysUser = getSysUser();
-        //分部id
-        String organIds = null;
-        Employee employee = employeeService.get(sysUser.getId());
-        if (Objects.nonNull(employee) && Objects.nonNull(employee.getOrganIdList())) {
-            organIds = employee.getOrganIdList();
-        }
-        param.put("organId", organIds);
-        param.put("type", ImLiveBroadcastRoom.STUDENT);
         return PageUtil.pageInfo(baseMapper.selectRoomPurviewStudent(pageInfo, param));
     }
 
@@ -162,16 +192,9 @@ public class ImLiveRoomPurviewServiceImpl extends ServiceImpl<ImLiveRoomPurviewD
      */
     @Override
     public PageInfo<ImGroup> selectRoomPurviewGroup(Map<String, Object> param) {
-        WrapperUtil.toStr(param, "roomUid", "房间uid不能为空");
-        param.put("notIn", 1);
-        return getImGroupPageInfo(param);
-    }
-
-    private PageInfo<ImGroup> getImGroupPageInfo(Map<String, Object> param) {
         //查询当前登录人分部
         SysUser sysUser = getSysUser();
         param.put("userId", sysUser.getId());
-        param.put("type", ImLiveBroadcastRoom.GROUP);
         Page<ImGroup> pageInfo = PageUtil.getPageInfo(param);
         return PageUtil.pageInfo(baseMapper.selectRoomPurviewGroup(pageInfo, param));
     }

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

@@ -88,23 +88,7 @@ public class ImLiveRoomReservationServiceImpl extends ServiceImpl<ImLiveRoomRese
         pageInfo.setDesc("a.created_time_");
         param.put("userId", user.getId());
         param.put("tenantId", TenantContextHolder.getTenantId());
-        //查询该学员 所属分部
-        Integer organId = user.getOrganId();
-        if (Objects.nonNull(organId)) {
-            param.put("organId", organId);
-        }
-        //合作单位
-        Student student = studentService.get(user.getId());
-        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);
-        }
-        IPage<ImLiveBroadcastRoomVo> page = baseMapper.queryPageStudent(pageInfo, param);
-        return PageUtil.pageInfo(page);
+        return PageUtil.pageInfo(baseMapper.queryPageStudent(pageInfo, param));
     }
 
     /**

+ 2 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PlatformProductServiceImpl.java

@@ -93,9 +93,9 @@ public class PlatformProductServiceImpl extends ServiceImpl<PlatformProductDao,
     @Transactional(rollbackFor = Exception.class)
     public void checkUpdateRole(String newMenuIds, String oldMenuIds, Map<Integer, Integer> map) {
         //需要添加的菜单id
-        List<Integer> newList = getList(newMenuIds);
+        List<Integer> newList = WrapperUtil.splitToIntList(newMenuIds);
         //需要删除的菜单id
-        List<Integer> oldList = getList(oldMenuIds);
+        List<Integer> oldList = WrapperUtil.splitToIntList(oldMenuIds);
         //合并修改权限
         opsRoleMenu(map, newList, oldList);
     }
@@ -125,17 +125,6 @@ public class PlatformProductServiceImpl extends ServiceImpl<PlatformProductDao,
         });
     }
 
-    private List<Integer> getList(String str) {
-        List<String> strings = Optional.ofNullable(str).map(WrapperUtil::toList).orElse(null);
-        if (CollectionUtils.isEmpty(strings)) {
-            return null;
-        }
-        return strings.stream()
-                .distinct()
-                .map(WrapperUtil::toInt)
-                .collect(Collectors.toList());
-    }
-
     /**
      * 根据多个id 查询出机构的id 和机构管理员id
      *

+ 1 - 48
mec-biz/src/main/resources/config/mybatis/ImLiveBroadcastRoomMapper.xml

@@ -64,41 +64,7 @@
         a.popularize_org_ids_ AS popularizeOrgIds,
         a.popularize_school_ids_ AS popularizeSchoolIds,
         a.popularize_team_ids_ AS popularizeTeamIds
-        from (
-        select *
-        from im_live_broadcast_room
-        <if test="param.allRoom == null">
-            where popularize_type_ = 'ALL'
-        </if>
-        <if test="param.organIds != null">
-            union all
-            select *
-            from im_live_broadcast_room as a
-            where popularize_type_ in ( 'ORGAN', 'TEAM')
-            and INTE_ARRAY(a.popularize_org_ids_, #{param.organIds}) = 1
-        </if>
-        <if test="param.schoolIds != null">
-            union all
-            select *
-            from im_live_broadcast_room as a
-            where popularize_type_ = 'SCHOOL'
-            and INTE_ARRAY(a.popularize_school_ids_, #{param.schoolIds}) = 1
-        </if>
-        <if test="param.userId != null">
-            union all
-            select distinct r.* from im_live_broadcast_room as r inner join
-            im_live_room_purview as a on r.room_uid_ = a.room_uid_
-            where
-            r.popularize_type_= 'GROUP'
-            and a.biz_id_ in (
-            select
-            distinct a.id_
-            from
-            im_group a
-            inner join im_group_member b on a.id_=b.im_group_id_
-            where b.user_id_ = #{param.userId})
-        </if>
-        ) as a
+        from im_live_broadcast_room as a
         left join tenant_info AS t on a.tenant_id_ = t.id_
         left join sys_user AS b on a.speaker_id_ = b.id_
         left join sys_user AS c on a.created_by_ = c.id_
@@ -129,19 +95,6 @@
                 and a.popularize_ = #{param.popularize}
             </if>
         </where>
-
-    </select>
-
-    <select id="queryUserPageByTenantId" resultType="map">
-        SELECT id_, username_
-        FROM sys_user
-        WHERE tenant_id_ = 1
-          and user_type_ = 'STUDENT'
-          and lock_flag_ = 0
-          and del_flag_ = 0
-          and is_super_admin_ = 0
-          and username_ is not null
-          and username_ != ''
     </select>
 
     <select id="queryBaseUserInfo" resultType="com.ym.mec.biz.dal.vo.BaseRoomUserVo">

+ 77 - 55
mec-biz/src/main/resources/config/mybatis/ImLiveRoomPurviewMapper.xml

@@ -4,7 +4,7 @@
     <resultMap id="BaseResultMap" type="com.ym.mec.biz.dal.entity.ImLiveRoomPurview">
         <id column="id_" jdbcType="INTEGER" property="id"/>
         <result column="room_uid_" jdbcType="VARCHAR" property="roomUid"/>
-        <result column="biz_id_" jdbcType="VARCHAR" property="bizId"/>
+        <result column="user_id_" jdbcType="VARCHAR" property="userId"/>
         <result column="type_" jdbcType="VARCHAR" property="type"/>
         <result column="created_by_" jdbcType="INTEGER" property="createdBy"/>
         <result column="created_time_" jdbcType="TIMESTAMP" property="createdTime"/>
@@ -12,71 +12,101 @@
 
     <sql id="Base_Column_List">
         id_
-        , room_uid_, biz_id_, type_, created_by_, created_time_
+        , room_uid_, user_id_, type_, created_by_, created_time_
     </sql>
 
     <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
             parameterType="com.ym.mec.biz.dal.entity.ImLiveRoomPurview">
-        insert into im_live_room_purview(room_uid_, biz_id_, type_, created_by_, created_time_)
+        insert into im_live_room_purview(room_uid_, user_id_, type_, created_by_, created_time_)
         values
         <foreach collection="entities" item="entity" separator=",">
-            (#{entity.roomUid}, #{entity.bizId}, #{entity.type}, #{entity.createdBy}, #{entity.createdTime})
+            (#{entity.roomUid}, #{entity.userId}, #{entity.type}, #{entity.createdBy}, #{entity.createdTime})
         </foreach>
     </insert>
 
-    <select id="queryStudent" parameterType="map" resultType="com.ym.mec.biz.dal.dto.SysUserDto">
-        SELECT
-            s.user_id_ as userId,
-            su.username_ as username,
-            su.phone_ as phone,
-            o.name_ as organName,
-            sb.name_ as subjectName
-        FROM (select CAST(biz_id_ AS SIGNED) as bizId, room_uid_ from im_live_room_purview where type_ = #{param.type}) a
-                 LEFT JOIN student s on a.bizId = s.user_id_
-                 LEFT JOIN sys_user su ON su.id_ = s.user_id_
-                 LEFT JOIN organization o ON o.id_ = su.organ_id_
-                 LEFT JOIN `subject` sb ON sb.id_ = s.subject_id_list_
-        where a.room_uid_ = #{param.roomUid}
-        <if test="param.subjectId != null">
-            AND s.subject_id_list_ = #{param.subjectId}
-        </if>
-        <if test="param.search != null ">
-            AND (
-            s.`user_id_` LIKE CONCAT('%', #{param.search},'%')
-            or su.phone_ like concat('%',#{query.search},'%')
-            or su.username_ like concat('%',#{query.search},'%')
-            )
-        </if>
-    </select>
-
     <select id="selectRoomPurviewStudent" parameterType="map" resultType="com.ym.mec.biz.dal.dto.SysUserDto">
-        SELECT
+        SELECT distinct
         s.user_id_ userId,
         su.username_ username,
         su.phone_ phone,
         o.name_ organName,
         sb.name_ subjectName
         FROM student s
+        <choose>
+            <when test="param.groupIds != null">
+                INNER JOIN
+            </when>
+            <otherwise>
+                LEFT JOIN
+            </otherwise>
+        </choose>
+                (select
+                     b.user_id_,
+                     replace(group_concat(a.name_,'|'),',','')  imGroupName,
+                     group_concat( a.id_ ) as im_group_id_
+                  from im_group a
+                  left join im_group_member b on a.id_ = b.im_group_id_
+                 <where>
+                     <if test="param.groupIds != null">
+                         and a.id_ in (#{param.groupIds})
+                     </if>
+                 </where>
+        group by b.user_id_) gm on s.user_id_ = gm.user_id_
         LEFT JOIN sys_user su ON su.id_ = s.user_id_
         LEFT JOIN organization o ON o.id_ = su.organ_id_
         LEFT JOIN `subject` sb ON sb.id_ = s.subject_id_list_
-        where
-        s.user_id_ not in(select CAST(biz_id_ AS SIGNED) from im_live_room_purview where room_uid_ = #{param.roomUid}
-        and type_ = #{param.type})
-        <if test="param.organId != null and param.organId != ''">
-            AND FIND_IN_SET(su.organ_id_,#{organId})
-        </if>
-        <if test="param.subjectId != null">
-            AND s.subject_id_list_ = #{param.subjectId}
-        </if>
-        <if test="param.search != null ">
-            AND (
-            s.`user_id_` LIKE CONCAT('%', #{param.search},'%')
-            or su.phone_ like concat('%',#{query.search},'%')
-            or su.username_ like concat('%',#{query.search},'%')
-            )
-        </if>
-
+        LEFT JOIN cooperation_organ co on co.organ_id_ = o.id_
+        <choose>
+            <when test="param.teamIds != null">
+                INNER JOIN
+            </when>
+            <otherwise>
+                LEFT JOIN
+            </otherwise>
+        </choose>
+            (select
+                user_id_,
+                replace(group_concat(a.name_,'|'),',','')  musicGroupName
+                from
+                music_group a left join
+                student_registration b  on a.id_ = b.music_group_id_
+                where b.music_group_status_ != 'QUIT'
+                <if test="param.teamIds != null">
+                     and a.id_ in (#{param.teamIds})
+                </if>
+        group by b.user_id_) sr on sr.user_id_ = s.user_id_
+        <where>
+            <if test="param.tenantId != null ">
+                AND s.tenant_id_ = #{param.tenantId}
+            </if>
+            <choose>
+                <when test="param.in != null and param.roomUid != null">
+                    AND s.user_id_ in
+                </when>
+                <otherwise>
+                    AND s.user_id_ not in
+                </otherwise>
+            </choose>
+            <if test="param.roomUid != null">
+                (select user_id_ from im_live_room_purview where room_uid_ = #{param.roomUid})
+            </if>
+            <if test="param.organIds != null and param.organIds != ''">
+                AND FIND_IN_SET(su.organ_id_,#{param.organIds})
+            </if>
+            <if test="param.subjectIds != null">
+                AND FIND_IN_SET(s.subject_id_list_,#{param.subjectIds})
+            </if>
+            <if test="param.schoolIds != null">
+                AND FIND_IN_SET(s.cooperation_organ_id_ ,#{param.schoolIds})
+            </if>
+            <if test="param.search != null ">
+                AND (
+                s.`user_id_` LIKE CONCAT('%', #{param.search},'%')
+                or su.phone_ like concat('%',#{param.search},'%')
+                or su.username_ like concat('%',#{param.search},'%')
+                )
+            </if>
+        </where>
     </select>
 
     <resultMap type="com.ym.mec.biz.dal.entity.ImGroup" id="ImGroup">
@@ -99,14 +129,6 @@
         from im_group as a
                  inner join im_group_member b on a.id_ = b.im_group_id_
         where b.user_id_ = (param.userId)
-        and a.id_
-        <if test="param.notIn != null">
-          not in
-        </if>
-        <if test="param.in != null">
-            in
-        </if>
-              (select biz_id_ from im_live_room_purview where room_uid_ = #{param.roomUid} and type_ = #{param.type})
         <if test="param.search != null and search != ''">
             AND (a.name_ like concat('%',#{param.search},'%') or a..tags_ like concat('%',#{param.search},'%'))
         </if>

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

@@ -50,43 +50,9 @@
         where popularize_type_ = 'ALL'
         union all
         select *
-        from im_live_broadcast_room
-        where popularize_type_ = 'ORGAN'
-        AND FIND_IN_SET(#{param.organId}, popularize_org_ids_)
-        <if test="param.schoolId != null">
-            union all
-            select *
-            from im_live_broadcast_room
-            where popularize_type_ = 'SCHOOL'
-            AND FIND_IN_SET(#{param.schoolId}, popularize_school_ids_)
-        </if>
-        <if test="param.teamIds != null">
-            union all
-            select *
-            from im_live_broadcast_room as a
-            where popularize_type_ = 'TEAM'
-            and INTE_ARRAY(a.popularize_team_ids_, #{param.teamIds}) = 1
-        </if>
-        union all
-        select distinct r.* from im_live_broadcast_room as r inner join
-        im_live_room_purview as a on r.room_uid_ = a.room_uid_
-        where
-        r.popularize_type_= 'GROUP'
-        and a.biz_id_ in (
-        select
-        distinct a.id_
-        from
-        im_group a
-        inner join im_group_member b on a.id_=b.im_group_id_
-        where b.user_id_ = #{param.userId})
-        union all
-        select b.* from
-        (select
-        room_uid_ from im_live_room_purview where
-        CAST(biz_id_ AS SIGNED)  = #{param.userId}
-        and type_ = 'STUDENT') a
-        left join  im_live_broadcast_room b on a.room_uid_ = b.room_uid_
-        where b.popularize_type_ = 'STUDENT'
+        from im_live_broadcast_room as a
+        inner join from im_live_room_purview as b on a.room_uid_ = b.room_uid_
+        where b.user_id_ = #{param.userId}
         ) as a
         left join tenant_info AS t on a.tenant_id_ = t.id_
         left join sys_user AS b on a.speaker_id_ = b.id_

+ 19 - 1
mec-common/common-core/src/main/java/com/ym/mec/common/page/WrapperUtil.java

@@ -146,7 +146,7 @@ public class WrapperUtil<T> {
                 .filter(StrPredicate);
     }
 
-    public static <S, O> boolean strParamIsNull(Map<S, O>  map, S str) {
+    public static <S, O> boolean strParamIsNull(Map<S, O> map, S str) {
         return StrPredicate.test(WrapperUtil.toStr(map, str));
     }
 
@@ -184,6 +184,24 @@ public class WrapperUtil<T> {
                 .collect(Collectors.toList());
     }
 
+    public static List<Integer> splitToIntList(String str) {
+        List<String> strList = WrapperUtil.toList(str);
+        if (CollectionUtils.isEmpty(strList)) {
+            return null;
+        }
+        return strToIntList(strList);
+    }
+
+    public static List<Integer> strToIntList(List<String> strList) {
+        if (CollectionUtils.isEmpty(strList)) {
+            return null;
+        }
+        return strList.stream()
+                .distinct()
+                .map(WrapperUtil::toInt)
+                .collect(Collectors.toList());
+    }
+
     /**
      * 全部有值则为true
      *

+ 6 - 5
mec-web/src/main/java/com/ym/mec/web/controller/ImLiveBroadcastRoomController.java

@@ -96,17 +96,18 @@ public class ImLiveBroadcastRoomController extends BaseController {
     @ApiOperation("创建直播间")
     @PostMapping("/add")
     @PreAuthorize("@pcs.hasPermissions('imLiveBroadcastRoom/add')")
-    public HttpResponseResult<ImLiveBroadcastRoomVo> add(@Valid @RequestBody ImLiveBroadcastRoomDto dto) {
-        ImLiveBroadcastRoomVo add = imLiveBroadcastRoomService.add(dto);
+    public HttpResponseResult<Object> add(@Valid @RequestBody ImLiveBroadcastRoomDto dto) {
+        imLiveBroadcastRoomService.add(dto);
         //看是否需要马上创建房间
         CompletableFuture.runAsync(imLiveBroadcastRoomService::createLiveRoom);
-        return succeed(add);
+        return succeed();
     }
 
     @ApiOperation("修改直播间信息-已开播无法修改")
     @PostMapping("/update")
-    public HttpResponseResult<ImLiveBroadcastRoomVo> update(@Valid @RequestBody ImLiveBroadcastRoomDto dto) {
-        return succeed(imLiveBroadcastRoomService.update(dto));
+    public HttpResponseResult<Object> update(@Valid @RequestBody ImLiveBroadcastRoomDto dto) {
+        imLiveBroadcastRoomService.update(dto);
+        return succeed();
     }
 
     /**

+ 23 - 17
mec-web/src/main/java/com/ym/mec/web/controller/ImLiveRoomPurviewController.java

@@ -31,10 +31,27 @@ public class ImLiveRoomPurviewController extends BaseController {
     private ImLiveRoomPurviewService imLiveRoomPurviewService;
 
     @ApiImplicitParams({
+            @ApiImplicitParam(name = "search", dataType = "String", value = "模糊查询关键字"),
+            @ApiImplicitParam(name = "subjectId", dataType = "String", value = "声部ID"),
+            @ApiImplicitParam(name = "organIds", dataType = "String", value = "分部ID"),
+            @ApiImplicitParam(name = "groupIds", dataType = "String", value = "群聊ID"),
+            @ApiImplicitParam(name = "teamIds", dataType = "String", value = "乐团ID"),
+            @ApiImplicitParam(name = "schoolIds", dataType = "String", value = "学校id/合作单位id"),
+            @ApiImplicitParam(name = "roomUid", dataType = "String", value = "直播间UID", required = true)
+    })
+    @ApiOperation("批量添加/根据查询条件添加房间观看权限")
+    @GetMapping("/add")
+    @PreAuthorize("@pcs.hasPermissions('imLiveRoomPurview/add')")
+    public HttpResponseResult<Object> addByCondition(@RequestBody Map<String, Object> param){
+        imLiveRoomPurviewService.addByCondition(param);
+        return succeed();
+    }
+
+    @ApiImplicitParams({
             @ApiImplicitParam(name = "ids", dataType = "String", value = "删除的id,学员id,群id, 逗号分开", required = true),
             @ApiImplicitParam(name = "roomUid", dataType = "String", value = "直播间UID", required = true),
     })
-    @ApiOperation("删除观看权限数据")
+    @ApiOperation("指定多个学员id添加观看权限数据")
     @GetMapping("/add")
     @PreAuthorize("@pcs.hasPermissions('imLiveRoomPurview/add')")
     public HttpResponseResult<Object> add(String ids, String roomUid) {
@@ -57,11 +74,15 @@ public class ImLiveRoomPurviewController extends BaseController {
     @ApiImplicitParams({
             @ApiImplicitParam(name = "search", dataType = "String", value = "模糊查询关键字"),
             @ApiImplicitParam(name = "subjectId", dataType = "String", value = "声部ID"),
+            @ApiImplicitParam(name = "organIds", dataType = "String", value = "分部ID"),
+            @ApiImplicitParam(name = "groupIds", dataType = "String", value = "群聊ID"),
+            @ApiImplicitParam(name = "teamIds", dataType = "String", value = "乐团ID"),
+            @ApiImplicitParam(name = "schoolIds", dataType = "String", value = "学校id/合作单位id"),
             @ApiImplicitParam(name = "roomUid", dataType = "String", value = "直播间UID", required = true),
             @ApiImplicitParam(name = "page", dataType = "Integer", value = "页数"),
             @ApiImplicitParam(name = "rows", dataType = "Integer", value = "每页数量"),
     })
-    @ApiOperation("查询当前直播间学员列表-观看权限")
+    @ApiOperation("查询当前直播间观看权限-学员列表")
     @PostMapping("/queryStudent")
     @PreAuthorize("@pcs.hasPermissions('imLiveRoomPurview/queryStudent')")
     public HttpResponseResult<PageInfo<SysUserDto>> queryStudent(@RequestBody Map<String, Object> param) {
@@ -70,20 +91,6 @@ public class ImLiveRoomPurviewController extends BaseController {
 
     @ApiImplicitParams({
             @ApiImplicitParam(name = "search", dataType = "String", value = "模糊查询关键字"),
-            @ApiImplicitParam(name = "groupType", dataType = "String", value = "群类型"),
-            @ApiImplicitParam(name = "roomUid", dataType = "String", value = "直播间UID", required = true),
-            @ApiImplicitParam(name = "page", dataType = "Integer", value = "页数"),
-            @ApiImplicitParam(name = "rows", dataType = "Integer", value = "每页数量"),
-    })
-    @ApiOperation("查询当前直播间群聊列表-观看权限")
-    @PostMapping("/queryGroup")
-    @PreAuthorize("@pcs.hasPermissions('imLiveRoomPurview/queryGroup')")
-    public HttpResponseResult<PageInfo<ImGroup>> queryGroup(@RequestBody Map<String, Object> param) {
-        return succeed(imLiveRoomPurviewService.queryGroup(param));
-    }
-
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "search", dataType = "String", value = "模糊查询关键字"),
             @ApiImplicitParam(name = "subjectId", dataType = "String", value = "声部ID"),
             @ApiImplicitParam(name = "roomUid", dataType = "String", value = "直播间UID", required = true),
             @ApiImplicitParam(name = "page", dataType = "Integer", value = "页数"),
@@ -99,7 +106,6 @@ public class ImLiveRoomPurviewController extends BaseController {
     @ApiImplicitParams({
             @ApiImplicitParam(name = "search", dataType = "String", value = "模糊查询关键字"),
             @ApiImplicitParam(name = "groupType", dataType = "String", value = "群类型"),
-            @ApiImplicitParam(name = "roomUid", dataType = "String", value = "直播间UID", required = true),
             @ApiImplicitParam(name = "page", dataType = "Integer", value = "页数"),
             @ApiImplicitParam(name = "rows", dataType = "Integer", value = "每页数量"),
     })