Просмотр исходного кода

Merge branch 'saas_2022_05_17_activity' of http://git.dayaedu.com/yonge/mec into saas_2022-06-01_zouxuan

zouxuan 3 лет назад
Родитель
Сommit
5a39583c85
23 измененных файлов с 544 добавлено и 94 удалено
  1. 13 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImLiveBroadcastRoomDao.java
  2. 1 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImLiveRoomBlackDao.java
  3. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImLiveRoomReservationDao.java
  4. 33 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ImLiveBroadcastRoomDto.java
  5. 41 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/RoomReservationUserSearch.java
  6. 35 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImLiveBroadcastRoom.java
  7. 44 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/vo/ImLiveBroadcastRoomVo.java
  8. 80 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/vo/RoomReservationUserVo.java
  9. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ImLiveBroadcastRoomService.java
  10. 13 3
      mec-biz/src/main/java/com/ym/mec/biz/service/ImLiveRoomBlackService.java
  11. 13 4
      mec-biz/src/main/java/com/ym/mec/biz/service/ImLiveRoomReservationService.java
  12. 61 26
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveBroadcastRoomServiceImpl.java
  13. 10 8
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveRoomBlackServiceImpl.java
  14. 21 7
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveRoomReservationServiceImpl.java
  15. 69 16
      mec-biz/src/main/resources/config/mybatis/ImLiveBroadcastRoomMapper.xml
  16. 12 8
      mec-biz/src/main/resources/config/mybatis/ImLiveRoomBlackMapper.xml
  17. 41 2
      mec-biz/src/main/resources/config/mybatis/ImLiveRoomReservationMapper.xml
  18. 13 0
      mec-common/common-core/src/main/java/com/ym/mec/common/page/PageUtil.java
  19. 1 0
      mec-im/src/main/java/com/ym/mec/im/IMHelper.java
  20. 1 1
      mec-student/src/main/java/com/ym/mec/student/controller/ImLiveRoomReservationController.java
  21. 11 1
      mec-web/src/main/java/com/ym/mec/web/controller/ImLiveBroadcastRoomController.java
  22. 14 12
      mec-web/src/main/java/com/ym/mec/web/controller/ImLiveRoomBlackController.java
  23. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/ImLiveRoomReservationController.java

+ 13 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImLiveBroadcastRoomDao.java

@@ -3,9 +3,12 @@ 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.RoomReservationUserSearch;
 import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoom;
 import com.ym.mec.biz.dal.vo.BaseRoomUserVo;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomVo;
+import com.ym.mec.biz.dal.vo.RoomReservationUserVo;
+import com.ym.mec.common.page.PageInfo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -25,9 +28,18 @@ public interface ImLiveBroadcastRoomDao extends BaseMapper<ImLiveBroadcastRoom>
 
     int insertBatch(@Param("entities") List<ImLiveBroadcastRoom> entities);
 
-    IPage<Map<Integer,Object>> queryUserPageByTenantId(Page<Map<Integer,Object>> page);
+    IPage<Map<Integer, Object>> queryUserPageByTenantId(Page<Map<Integer, Object>> page);
 
     List<BaseRoomUserVo> queryBaseUserInfo(@Param("list") List<Integer> list);
 
+    /**
+     * 查询直播间预约用户信息
+     *
+     * @return
+     */
+    IPage<RoomReservationUserVo> queryRoomUser(@Param("page") IPage<RoomReservationUserVo> page,
+                                               @Param("query") RoomReservationUserSearch query);
+
+    String querySchoolIds(@Param("organIds") String organIds);
 }
 

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

@@ -3,7 +3,6 @@ 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.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.ImLiveRoomBlack;
 import org.apache.ibatis.annotations.Param;
 
@@ -20,7 +19,7 @@ public interface ImLiveRoomBlackDao extends BaseMapper<ImLiveRoomBlack> {
 
     int insertBatch(@Param("entities") List<ImLiveRoomBlack> entities);
 
-    List<SysUser> queryStudent(@Param("tenantId") Integer tenantId, @Param("search") String search, @Param("roomUid") String roomUid);
+    <T> IPage<T> queryStudent(Page<T> page, @Param("param") Map<String, Object> param);
 
     <T> IPage<T> queryBlackList(Page<T> page, @Param("param") Map<String, Object> param);
 

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

@@ -22,5 +22,12 @@ public interface ImLiveRoomReservationDao extends BaseMapper<ImLiveRoomReservati
 
     IPage<ImLiveBroadcastRoomVo> queryPageStudent(Page<ImLiveBroadcastRoomVo> page, @Param("param") Map<String, Object> param);
 
+    /**
+     * 查询房间预约人数
+     *
+     * @param roomIdList 房间id集合
+     * @return
+     */
+    List<ImLiveBroadcastRoomVo> selectCountRoomReservation(@Param("roomIdList") List<String> roomIdList);
 }
 

+ 33 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ImLiveBroadcastRoomDto.java

@@ -1,6 +1,5 @@
 package com.ym.mec.biz.dal.dto;
 
-
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -49,6 +48,16 @@ public class ImLiveBroadcastRoomDto implements Serializable {
     @ApiModelProperty(value = "房间配置")
     private RoomConfig roomConfig;
 
+    @NotBlank(message = "直播间类型不能为空")
+    @ApiModelProperty(value = "推广的直播间可见类型-全部可见、部分分部可见、部分合作单位可见")
+    private String popularizeType;
+
+    @ApiModelProperty(value = "分部id-多个id逗号分割")
+    private String popularizeOrgIds;
+
+    @ApiModelProperty(value = "学校id-合作单位id,多个id逗号分割")
+    private String popularizeSchoolIds;
+
     @ApiModel(value = "房间配置")
     public static class RoomConfig implements Serializable {
 
@@ -172,5 +181,28 @@ public class ImLiveBroadcastRoomDto implements Serializable {
         this.roomConfig = roomConfig;
     }
 
+    public String getPopularizeType() {
+        return popularizeType;
+    }
+
+    public void setPopularizeType(String popularizeType) {
+        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;
+    }
 }
 

+ 41 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/RoomReservationUserSearch.java

@@ -0,0 +1,41 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-05-31
+ */
+public class RoomReservationUserSearch extends QueryInfo {
+
+    @NotBlank(message = "房间号不能为空")
+    @ApiModelProperty("直播房间号")
+    private String roomUid;
+
+    @ApiModelProperty("用户编号/用户名/用户手机号")
+    private String search;
+
+
+    public String getRoomUid() {
+        return roomUid;
+    }
+
+    public void setRoomUid(String roomUid) {
+        this.roomUid = roomUid;
+    }
+
+    @Override
+    public String getSearch() {
+        return search;
+    }
+
+    @Override
+    public void setSearch(String search) {
+        this.search = search;
+    }
+}

+ 35 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImLiveBroadcastRoom.java

@@ -71,6 +71,18 @@ public class ImLiveBroadcastRoom implements Serializable {
     @ApiModelProperty(value = "是否在首页推广 0否 1是 - 每个机构只能有一个直播间在首页推广")
     private Integer popularize;
 
+    @TableField("popularize_type_")
+    @ApiModelProperty(value = "推广的直播间可见类型-全部可见ALL、部分分部可见ORGAN、部分合作单位可见SCHOOL")
+    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;
+
     @TableField("created_by_")
     @ApiModelProperty(value = "创建人")
     private Integer createdBy;
@@ -243,5 +255,28 @@ public class ImLiveBroadcastRoom implements Serializable {
         this.updatedTime = updatedTime;
     }
 
+    public String getPopularizeType() {
+        return popularizeType;
+    }
+
+    public void setPopularizeType(String popularizeType) {
+        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;
+    }
 }
 

+ 44 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/ImLiveBroadcastRoomVo.java

@@ -1,6 +1,5 @@
 package com.ym.mec.biz.dal.vo;
 
-
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -80,6 +79,15 @@ public class ImLiveBroadcastRoomVo implements Serializable {
     @ApiModelProperty(value = "当前登录人是否是黑名单用户 0否 1是")
     private Integer blacklistFlag = 0;
 
+    @ApiModelProperty(value = "推广的直播间可见类型-全部可见ALL、部分分部可见ORGAN、部分合作单位可见SCHOOL")
+    private String popularizeType;
+
+    @ApiModelProperty(value = "分部id-多个id逗号分割")
+    private String popularizeOrgIds;
+
+    @ApiModelProperty(value = "学校id-合作单位id,多个id逗号分割")
+    private String popularizeSchoolIds;
+
     @ApiModelProperty(value = "点赞数")
     private Integer likeNum;
     @ApiModelProperty(value = "当前观看人数")
@@ -87,6 +95,9 @@ public class ImLiveBroadcastRoomVo implements Serializable {
     @ApiModelProperty(value = "累计观看人数")
     private Integer totalLookNum;
 
+    @ApiModelProperty("预约人数")
+    private Integer roomReservationNum;
+
     public Integer getId() {
         return id;
     }
@@ -284,5 +295,37 @@ public class ImLiveBroadcastRoomVo implements Serializable {
     public void setBlacklistFlag(Integer blacklistFlag) {
         this.blacklistFlag = blacklistFlag;
     }
+
+    public Integer getRoomReservationNum() {
+        return roomReservationNum;
+    }
+
+    public void setRoomReservationNum(Integer roomReservationNum) {
+        this.roomReservationNum = roomReservationNum;
+    }
+
+    public String getPopularizeType() {
+        return popularizeType;
+    }
+
+    public void setPopularizeType(String popularizeType) {
+        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;
+    }
 }
 

+ 80 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/RoomReservationUserVo.java

@@ -0,0 +1,80 @@
+package com.ym.mec.biz.dal.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-05-31
+ */
+@ApiModel("预约直播课人员信息")
+public class RoomReservationUserVo {
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("用户名")
+    private String username;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty("分部id")
+    private Long organId;
+
+    @ApiModelProperty("分部名")
+    private  String organName;
+
+    @ApiModelProperty("声部名")
+    private String subjectName;
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public Long getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(Long organId) {
+        this.organId = organId;
+    }
+
+    public String getOrganName() {
+        return organName;
+    }
+
+    public void setOrganName(String organName) {
+        this.organName = organName;
+    }
+
+    public String getSubjectName() {
+        return subjectName;
+    }
+
+    public void setSubjectName(String subjectName) {
+        this.subjectName = subjectName;
+    }
+}

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

@@ -2,9 +2,11 @@ package com.ym.mec.biz.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ym.mec.biz.dal.dto.ImLiveBroadcastRoomDto;
+import com.ym.mec.biz.dal.dto.RoomReservationUserSearch;
 import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoom;
 import com.ym.mec.biz.dal.vo.BaseRoomUserVo;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomVo;
+import com.ym.mec.biz.dal.vo.RoomReservationUserVo;
 import com.ym.mec.common.entity.ImUserState;
 import com.ym.mec.common.page.PageInfo;
 
@@ -85,5 +87,12 @@ public interface ImLiveBroadcastRoomService extends IService<ImLiveBroadcastRoom
      */
     List<BaseRoomUserVo> queryBaseUserInfo(List<Integer> userIdList);
 
+    /**
+     * 获取直播间预约用户信息
+     *
+     * @param query
+     * @return
+     */
+    PageInfo<RoomReservationUserVo> queryRoomUser(RoomReservationUserSearch query);
 }
 

+ 13 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/ImLiveRoomBlackService.java

@@ -6,7 +6,6 @@ import com.ym.mec.biz.dal.entity.ImLiveRoomBlack;
 import com.ym.mec.biz.dal.vo.ImLiveRoomBlackVo;
 import com.ym.mec.common.page.PageInfo;
 
-import java.util.List;
 import java.util.Map;
 
 /**
@@ -20,9 +19,11 @@ public interface ImLiveRoomBlackService extends IService<ImLiveRoomBlack> {
     /**
      * 查询当前机构学生 -下拉框
      *
-     * @param search 搜索关键字不能为空
+     * @param param 参数
+     *              <p> search - 搜索关键字
+     *              <p> roomUid - 房间uid
      */
-    List<SysUser> queryStudentList(String roomUid, String search);
+    PageInfo<SysUser> queryStudentList(Map<String, Object> param);
 
     /**
      * 添加用户到房间黑名单中
@@ -48,5 +49,14 @@ public interface ImLiveRoomBlackService extends IService<ImLiveRoomBlack> {
      * <P> search  搜索关键字
      */
     PageInfo<ImLiveRoomBlackVo> queryBlackList(Map<String, Object> param);
+
+    /**
+     * 发送黑名单消息到直播房间
+     *
+     * @param roomUid    房间uid
+     * @param fromUserId 发送人id
+     * @param userId     用户id
+     */
+    void sendBlackMsg(String roomUid, Integer fromUserId, Integer userId, String type);
 }
 

+ 13 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/ImLiveRoomReservationService.java

@@ -5,8 +5,8 @@ import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoom;
 import com.ym.mec.biz.dal.entity.ImLiveRoomReservation;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomVo;
 import com.ym.mec.common.page.PageInfo;
-import org.springframework.transaction.annotation.Transactional;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -28,9 +28,10 @@ public interface ImLiveRoomReservationService extends IService<ImLiveRoomReserva
     void cancel(ImLiveRoomReservation entity);
 
     /**
-     * 分页查询直播间
-     * @param param
-     * <p> liveState 直播状态 0未开始 1开始 2结束
+     * 学生端-分页查询直播间
+     *
+     * @param param 参数
+     *              <p> liveState 直播状态 0未开始 1开始 2结束
      */
     PageInfo<ImLiveBroadcastRoomVo> queryPageStudent(Map<String, Object> param);
 
@@ -38,5 +39,13 @@ public interface ImLiveRoomReservationService extends IService<ImLiveRoomReserva
      * 预约直播间推送极光
      */
     void push(ImLiveBroadcastRoom room);
+
+    /**
+     * 查询直播间预约人数
+     *
+     * @param roomIdList 房间号
+     * @return
+     */
+    List<ImLiveBroadcastRoomVo> countRoomReservation(List<String> roomIdList);
 }
 

+ 61 - 26
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveBroadcastRoomServiceImpl.java

@@ -15,13 +15,12 @@ import com.ym.mec.biz.dal.dao.ImLiveBroadcastRoomDao;
 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.entity.ImLiveBroadcastRoom;
-import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoomData;
-import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoomMember;
-import com.ym.mec.biz.dal.entity.ImLiveRoomBlack;
+import com.ym.mec.biz.dal.dto.RoomReservationUserSearch;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.vo.BaseRoomUserVo;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomVo;
+import com.ym.mec.biz.dal.vo.RoomReservationUserVo;
 import com.ym.mec.biz.dal.vo.RoomUserInfoVo;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.entity.ImRoomMessage;
@@ -87,6 +86,8 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
     private ImLiveRoomReservationService imLiveRoomReservationService;
     @Autowired
     private ImLiveRoomBlackService imLiveRoomBlackService;
+    @Autowired
+    private EmployeeService employeeService;
 
     //待替换的变量
     public static final String USER_ID = "${userId}";
@@ -181,6 +182,7 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
     private ImLiveBroadcastRoomVo getImLiveBroadcastRoomVo(String roomUid) {
         List<ImLiveBroadcastRoomVo> list = baseMapper.queryPage(new HashMap<String, Object>() {{
             put("roomUid", roomUid);
+            put("allRoom", 1);
         }});
         if (CollectionUtils.isEmpty(list)) {
             return null;
@@ -189,18 +191,44 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
     }
 
     /**
-     * 分页查询直播间列表
+     * 后台-分页查询直播间列表
      */
     @Override
     public PageInfo<ImLiveBroadcastRoomVo> queryPage(Map<String, Object> param) {
-        Page<ImLiveBroadcastRoomVo> pageInfo = PageUtil.getPageInfo(param);
+        Page<ImLiveBroadcastRoomVo> pageInfo = PageUtil.concatTimePage(param, "startTime", "endTime");
         pageInfo.setDesc("a.created_time_");
         param.put("tenantId", TenantContextHolder.getTenantId());
-        BiConsumer<String, String> addTimeCons = (key, time) -> Optional.ofNullable(param.get(key)).map(String::valueOf)
-                .ifPresent(date -> param.put(key, date + " " + time));
-        addTimeCons.accept("startTime", "00:00:00");
-        addTimeCons.accept("endTime", "23:59:59");
+        //查询该人员分部  及 分部下包含的学校(合作单位)
+        Integer userId = getSysUser().getId();
+        Employee employee = employeeService.get(userId);
+        if (Objects.nonNull(employee) && Objects.nonNull(employee.getOrganIdList())) {
+            param.put("organIds", employee.getOrganIdList());
+            String schoolIds = baseMapper.querySchoolIds(employee.getOrganIdList());
+            if (StringUtils.isNotBlank(schoolIds)) {
+                param.put("schoolIds", schoolIds);
+            }
+        }
         IPage<ImLiveBroadcastRoomVo> page = baseMapper.queryPage(pageInfo, param);
+
+        // 查询预约人数
+        List<ImLiveBroadcastRoomVo> records = page.getRecords();
+        if (CollectionUtils.isEmpty(records)) {
+            return PageUtil.pageInfo(page);
+        }
+
+        List<String> roomIdList = records.stream().map(ImLiveBroadcastRoomVo::getRoomUid).collect(Collectors.toList());
+
+        List<ImLiveBroadcastRoomVo> countRoomReservationList = imLiveRoomReservationService.countRoomReservation(roomIdList);
+        Map<String, List<ImLiveBroadcastRoomVo>> collect = countRoomReservationList.stream()
+                .collect(Collectors.groupingBy(ImLiveBroadcastRoomVo::getRoomUid));
+        for (ImLiveBroadcastRoomVo record : records) {
+            List<ImLiveBroadcastRoomVo> imLiveBroadcastRoomVos = collect.get(record.getRoomUid());
+            if (CollectionUtils.isEmpty(imLiveBroadcastRoomVos)) {
+                continue;
+            }
+            record.setRoomReservationNum(imLiveBroadcastRoomVos.get(0).getRoomReservationNum());
+        }
+
         return PageUtil.pageInfo(page);
     }
 
@@ -239,14 +267,21 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
     @Transactional(rollbackFor = Exception.class)
     public void update(ImLiveBroadcastRoomDto dto) {
         Date now = new Date();
+        Integer userId = getSysUser().getId();
+        ImLiveBroadcastRoom obj = this.getById(dto.getId());
+        obj.setUpdatedBy(userId);
+        obj.setUpdatedTime(now);
+        //如果直播已经则只能修改是否全员禁麦 和聊天功能
+        if (obj.getLiveState() == 1) {
+            obj.setRoomConfig(JSONObject.toJSONString(dto.getRoomConfig()));
+            this.updateById(obj);
+            return;
+        }
         if (now.getTime() > dto.getLiveStartTime().getTime()) {
             throw new BizException("设置的直播开始时间不能小于当前时间");
         }
-        ImLiveBroadcastRoom obj = this.getById(dto.getId());
         BeanUtils.copyProperties(dto, obj);
         obj.setRoomConfig(JSONObject.toJSONString(dto.getRoomConfig()));
-        obj.setUpdatedBy(getSysUser().getId());
-        obj.setUpdatedTime(now);
         log.info("update room  >>>  :{}", JSONObject.toJSONString(obj));
         this.updateById(obj);
     }
@@ -330,21 +365,12 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
      */
     @Override
     public ImLiveBroadcastRoomVo queryPopularizeRoom() {
-        //查询该学生信息-获取分部
-        SysUser user = getSysUser();
-        //查询哪些分部无法推广直播间
-        String popularizeOrgan = sysConfigDao.findConfigValue("live_popularize_organ");
-        if (StringUtils.isNotBlank(popularizeOrgan)) {
-            List<String> organList = WrapperUtil.toList(popularizeOrgan);
-            if (Objects.nonNull(user.getOrganId()) && !organList.contains(user.getOrganId().toString())) {
-                return null;
-            }
-        }
         Map<String, Object> param = new HashMap<>();
         param.put("tenantId", TenantContextHolder.getTenantId());
         param.put("popularize", 1);
         param.put("liveState", 1);
-        List<ImLiveBroadcastRoomVo> list = baseMapper.queryPage(param);
+        PageInfo<ImLiveBroadcastRoomVo> pageInfo = imLiveRoomReservationService.queryPageStudent(param);
+        List<ImLiveBroadcastRoomVo> list = pageInfo.getRows();
         if (CollectionUtils.isNotEmpty(list)) {
             return list.get(0);
         }
@@ -1036,13 +1062,13 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
     private SysUser getSysUser(Integer userId) {
         return Optional.ofNullable(userId)
                 .map(sysUserFeignService::queryUserById)
-                .orElseThrow(() -> new BizException("用户不存在"));
+                .orElseThrow(() -> new BizException("用户不存在."));
     }
 
     private SysUser getSysUser() {
         //修改机构基础信息
         return Optional.ofNullable(sysUserFeignService.queryUserInfo())
-                .orElseThrow(() -> new BizException("用户不存在"));
+                .orElseThrow(() -> new BizException("用户不存在."));
     }
 
     /**
@@ -1148,6 +1174,15 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
                 .orElseThrow(() -> new BizException("用户id集合不能为空"));
     }
 
+    @Override
+    public PageInfo<RoomReservationUserVo> queryRoomUser(RoomReservationUserSearch query) {
+
+
+        IPage<RoomReservationUserVo> page = new Page<>(query.getPage(), query.getRows());
+        page = baseMapper.queryRoomUser(page, query);
+        return PageUtil.pageInfo(page);
+    }
+
     /**
      * 查询直播间所有用户信息
      *

+ 10 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveRoomBlackServiceImpl.java

@@ -45,17 +45,20 @@ public class ImLiveRoomBlackServiceImpl extends ServiceImpl<ImLiveRoomBlackDao,
     /**
      * 查询当前机构学生 -下拉框
      *
-     * @param search 搜索关键字不能为空
+     * @param param 参数
+     *              <p> search - 搜索关键字
+     *              <p> roomUid - 房间uid
      */
     @Override
-    public List<SysUser> queryStudentList(String roomUid, String search) {
-        Optional.ofNullable(search).orElseThrow(() -> new BizException("search is null"));
+    public PageInfo<SysUser> queryStudentList(Map<String, Object> param) {
+        Page<SysUser> pageInfo = PageUtil.getPageInfo(param);
+        pageInfo.setDesc("a.id_");
         Integer tenantId = TenantContextHolder.getTenantId();
         //管理员机构id 是-1
-        if (Objects.nonNull(tenantId) && tenantId == -1) {
-            tenantId = null;
+        if (Objects.nonNull(tenantId) && tenantId != -1) {
+            param.put("tenantId", tenantId);
         }
-        return baseMapper.queryStudent(tenantId, search, roomUid);
+        return PageUtil.pageInfo(baseMapper.queryStudent(pageInfo, param));
     }
 
     /**
@@ -122,7 +125,6 @@ public class ImLiveRoomBlackServiceImpl extends ServiceImpl<ImLiveRoomBlackDao,
         WrapperUtil.toStr(param, "roomUid", "房间编号不能为空");
         Page<ImLiveRoomBlackVo> pageInfo = PageUtil.getPageInfo(param);
         pageInfo.setDesc("a.create_time_");
-        param.put("tenantId", TenantContextHolder.getTenantId());
         IPage<ImLiveRoomBlackVo> imLiveRoomBlackVoIPage = baseMapper.queryBlackList(pageInfo, param);
         return PageUtil.pageInfo(imLiveRoomBlackVoIPage);
     }
@@ -134,7 +136,7 @@ public class ImLiveRoomBlackServiceImpl extends ServiceImpl<ImLiveRoomBlackDao,
      * @param fromUserId 发送人id
      * @param userId     用户id
      */
-    private void sendBlackMsg(String roomUid, Integer fromUserId, Integer userId, String type) {
+    public void sendBlackMsg(String roomUid, Integer fromUserId, Integer userId, String type) {
         //校验传入参数,房间uid和发送人id不能为空
         if (!WrapperUtil.checkObj(roomUid, fromUserId, userId, type)) {
             log.info(" sendBlackMsg>>>> param is null   roomUid: {}  fromUserId:{}  type:{}", roomUid, fromUserId, type);

+ 21 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveRoomReservationServiceImpl.java

@@ -11,9 +11,11 @@ import com.ym.mec.biz.dal.dao.ImLiveRoomReservationDao;
 import com.ym.mec.biz.dal.dao.SysConfigDao;
 import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoom;
 import com.ym.mec.biz.dal.entity.ImLiveRoomReservation;
+import com.ym.mec.biz.dal.entity.Student;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomVo;
 import com.ym.mec.biz.service.ImLiveRoomReservationService;
+import com.ym.mec.biz.service.StudentService;
 import com.ym.mec.biz.service.SysConfigService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.exception.BizException;
@@ -47,7 +49,7 @@ public class ImLiveRoomReservationServiceImpl extends ServiceImpl<ImLiveRoomRese
     @Autowired
     private SysUserFeignService sysUserFeignService;
     @Autowired
-    private SysConfigDao sysConfigDao;
+    private StudentService studentService;
     @Autowired
     private SysMessageService sysMessageService;
 
@@ -84,14 +86,21 @@ public class ImLiveRoomReservationServiceImpl extends ServiceImpl<ImLiveRoomRese
      */
     @Override
     public PageInfo<ImLiveBroadcastRoomVo> queryPageStudent(Map<String, Object> param) {
-        param.put("userId", getUser().getId());
-        Page<ImLiveBroadcastRoomVo> pageInfo = PageUtil.getPageInfo(param);
+        SysUser user = getUser();
+        Page<ImLiveBroadcastRoomVo> pageInfo = PageUtil.concatTimePage(param,"startTime","endTime");
         pageInfo.setDesc("a.created_time_");
+        param.put("userId", user.getId());
         param.put("tenantId", TenantContextHolder.getTenantId());
-        BiConsumer<String, String> addTimeCons = (key, time) -> Optional.ofNullable(param.get(key)).map(String::valueOf)
-                .ifPresent(date -> param.put(key, date + " " + time));
-        addTimeCons.accept("startTime", "00:00:00");
-        addTimeCons.accept("endTime", "23:59:59");
+        //查询该学员 所属分部
+        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());
+        }
         IPage<ImLiveBroadcastRoomVo> page = baseMapper.queryPageStudent(pageInfo, param);
         return PageUtil.pageInfo(page);
     }
@@ -130,6 +139,11 @@ public class ImLiveRoomReservationServiceImpl extends ServiceImpl<ImLiveRoomRese
                 .eq(ImLiveRoomReservation::getRoomUid, room.getRoomUid()));
     }
 
+    @Override
+    public List<ImLiveBroadcastRoomVo> countRoomReservation(List<String> roomIdList) {
+        return baseMapper.selectCountRoomReservation(roomIdList);
+    }
+
     private SysUser getUser() {
         return Optional.ofNullable(sysUserFeignService.queryUserInfo())
                 .orElseThrow(() -> new BizException("用户信息获取失败,请刷新页面或者重新登录!"));

+ 69 - 16
mec-biz/src/main/resources/config/mybatis/ImLiveBroadcastRoomMapper.xml

@@ -15,28 +15,28 @@
         <result column="live_state_" jdbcType="INTEGER" property="liveState"/>
         <result column="room_state_" jdbcType="INTEGER" property="roomState"/>
         <result column="popularize_" jdbcType="INTEGER" property="popularize"/>
+        <result column="popularize_type_" jdbcType="VARCHAR" property="popularizeType"/>
+        <result column="popularize_org_ids_" jdbcType="VARCHAR" property="popularizeOrgIds"/>
+        <result column="popularize_school_ids_" jdbcType="VARCHAR" property="popularizeSchoolIds"/>
         <result column="created_by_" jdbcType="INTEGER" property="createdBy"/>
         <result column="created_time_" jdbcType="TIMESTAMP" property="createdTime"/>
         <result column="updated_by_" jdbcType="INTEGER" property="updatedBy"/>
         <result column="updated_time_" jdbcType="TIMESTAMP" property="updatedTime"/>
     </resultMap>
 
-    <sql id="Base_Column_List">
-        id_
-        , tenant_id_, speaker_id_, room_uid_, room_title_, live_start_time_, live_end_time_, live_remark_, pre_template_, room_config_, live_state_, room_state_, popularize_, created_by_, created_time_, updated_by_, updated_time_
-    </sql>
-
     <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
             parameterType="com.ym.mec.biz.dal.entity.ImLiveBroadcastRoom">
         insert into im_live_broadcast_room(tenant_id_, speaker_id_, room_uid_, room_title_, live_start_time_,
-        live_end_time_, live_remark_, pre_template_, room_config_, live_state_, room_state_, popularize_, created_by_, created_time_,
-        updated_by_, updated_time_)
+        live_end_time_, live_remark_, pre_template_, room_config_, live_state_, room_state_,
+        popularize_, popularize_type_,popularize_org_ids_,popularize_school_ids_,
+        created_by_, created_time_, updated_by_, updated_time_)
         values
         <foreach collection="entities" item="entity" separator=",">
             (#{entity.tenantId}, #{entity.speakerId}, #{entity.roomUid}, #{entity.roomTitle}, #{entity.liveStartTime},
             #{entity.liveEndTime}, #{entity.liveRemark}, #{entity.preTemplate}, #{entity.roomConfig},
-            #{entity.liveState}, #{entity.roomState}, #{entity.popularize}, #{entity.createdBy}, #{entity.createdTime}, #{entity.updatedBy},
-            #{entity.updatedTime})
+            #{entity.liveState}, #{entity.roomState}, #{entity.popularize},
+            #{entity.popularizeType},#{entity.popularizeOrgIds},#{entity.popularizeSchoolIds},
+            #{entity.createdBy}, #{entity.createdTime}, #{entity.updatedBy},#{entity.updatedTime})
         </foreach>
     </insert>
 
@@ -58,8 +58,31 @@
         c.real_name_ AS createdByName,
         a.pre_template_ AS preTemplate,
         a.room_config_ AS roomConfig,
-        a.popularize_ AS popularize
-        from im_live_broadcast_room as a
+        a.popularize_ AS popularize,
+        a.popularize_type_ AS popularizeType,
+        a.popularize_org_ids_ AS popularizeOrgIds,
+        a.popularize_school_ids_ AS popularizeSchoolIds
+        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_ = 'ORGAN'
+            and INTE_ARRAY(a.popularize_org_ids_, #{param.organIds}) = 1
+        </if>
+        <if test="param.organIds != 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>
+        ) 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_
@@ -94,17 +117,22 @@
     </select>
 
     <select id="queryUserPageByTenantId" resultType="map">
-        SELECT id_,username_
+        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_ != ''
+        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">
-    select
+        select
         id_ AS userId,
         username_ AS userName
-    from sys_user
+        from sys_user
         <where>
             id_ IN
             <foreach collection="list" item="id" open="(" separator="," close=")">
@@ -113,4 +141,29 @@
         </where>
     </select>
 
+    <select id="queryRoomUser" resultType="com.ym.mec.biz.dal.vo.RoomReservationUserVo">
+
+        select
+        su.id_ as userId
+        ,su.username_ as username
+        ,su.phone_ as phone
+        ,su.organ_id_ as organId
+        ,o.name_ as organName
+        ,(select group_concat(sub.name_) from subject sub
+        where find_in_set(sub.id_,s.subject_id_list_) and sub.del_flag_ = 0 ) as subjectName
+        from im_live_room_reservation ilrr
+        left join sys_user su on su.id_ = ilrr.user_id_
+        left join organization o on o.id_ = su.organ_id_
+        left join student s on s.user_id_ = su.id_
+        where ilrr.room_uid_ = #{query.roomUid}
+        <if test="query.search != null and query.search != ''">
+            and (su.id_ like concat('%',#{query.search},'%')
+            or su.phone_ like concat('%',#{query.search},'%')
+            or su.username_ like concat('%',#{query.search},'%'))
+        </if>
+    </select>
+
+    <select id="querySchoolIds" resultType="string">
+        select GROUP_CONCAT(id_)  from cooperation_organ where  find_in_set(organ_id_,#{organIds})
+    </select>
 </mapper>

+ 12 - 8
mec-biz/src/main/resources/config/mybatis/ImLiveRoomBlackMapper.xml

@@ -25,24 +25,28 @@
     </insert>
 
     <select id="queryStudent" parameterType="object" resultType="com.ym.mec.auth.api.entity.SysUser">
-        select a.id_        as id,
+        select distinct a.id_        as id,
              a.username_  as username,
              a.real_name_ as realName,
              a.phone_     as phone
         from sys_user as a
         left join im_live_room_black as b on a.id_ != b.user_id_
-        where a.user_type_ like '%STUDENT%'
+        <if test="param.roomUid != null">
+            and b.room_uid_ = #{param.roomUid}
+        </if>
+        where find_in_set('STUDENT', a.user_type_)
         and a.lock_flag_ = 0
         and a.del_flag_ = 0
-        and b.room_uid_ = #{roomUid}
-        <if test="tenantId != null ">
-            and tenant_id_ = #{tenantId}
+        <if test="param.tenantId != null ">
+            and tenant_id_ = #{param.tenantId}
         </if>
+        <if test="param.search != null ">
             and (
-                 `id_` LIKE CONCAT('%', #{search},'%')
-                  OR `username_` LIKE CONCAT('%', #{search},'%')
-                 OR `phone_` LIKE CONCAT('%', #{search},'%')
+                 a.`id_` LIKE CONCAT('%', #{param.search},'%')
+                  OR a.`username_` LIKE CONCAT('%', #{param.search},'%')
+                 OR a.`phone_` LIKE CONCAT('%', #{param.search},'%')
                )
+        </if>
     </select>
 
     <select id="queryBlackList"  parameterType="map" resultType="com.ym.mec.biz.dal.vo.ImLiveRoomBlackVo">

+ 41 - 2
mec-biz/src/main/resources/config/mybatis/ImLiveRoomReservationMapper.xml

@@ -42,8 +42,25 @@
         a.pre_template_ AS preTemplate,
         a.room_config_ AS roomConfig,
         a.popularize_ AS popularize,
-        case when  d.user_id_ is null then 0 else 1 end as reserve
-        from im_live_broadcast_room as a
+        a.popularize_type_ AS popularizeType,
+        IF(d.user_id_ is null, 0, 1) as reserve
+        from (
+        select *
+        from im_live_broadcast_room
+        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>
+        ) 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_
@@ -62,6 +79,28 @@
             <if test="param.endTime != null">
                 <![CDATA[ AND a.live_start_time_  <= #{param.endTime} ]]>
             </if>
+            <if test="param.popularize != null">
+                and a.popularize_ = #{param.popularize}
+            </if>
         </where>
     </select>
+
+    <select id="selectCountRoomReservation" resultType="com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomVo">
+        select
+        lbr.room_uid_ as roomUid,
+        count(1) as roomReservationNum
+        from im_live_room_reservation lbr
+
+        <where>
+            <if test="roomIdList != null and roomIdList.size() != 0">
+                and lbr.room_uid_ in
+                <foreach collection="roomIdList" separator="," close=")" open="(" item="item" >
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+        group by lbr.room_uid_
+    </select>
+
+
 </mapper>

+ 13 - 0
mec-common/common-core/src/main/java/com/ym/mec/common/page/PageUtil.java

@@ -7,6 +7,7 @@ import com.ym.mec.common.tenant.TenantContextHolder;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
+import java.util.function.BiConsumer;
 
 /**
  * @author hgw
@@ -47,6 +48,18 @@ public class PageUtil {
     }
 
     /**
+     * 分页有需要拼接时分秒要求的可以使用这个方法
+     */
+    public static <T> Page<T> concatTimePage(Map<String, Object> param, String startTime, String endTime) {
+        Page<T> pageInfo = PageUtil.getPageInfo(param);
+        BiConsumer<String, String> addTimeCons = (key, time) -> Optional.ofNullable(param.get(key)).map(String::valueOf)
+                .ifPresent(date -> param.put(key, date + " " + time));
+        addTimeCons.accept(startTime, "00:00:00");
+        addTimeCons.accept(endTime, "23:59:59");
+        return pageInfo;
+    }
+
+    /**
      * 获取Map中的关键字获取分页数据
      *
      * @param param Map<String, Object> param

+ 1 - 0
mec-im/src/main/java/com/ym/mec/im/IMHelper.java

@@ -434,6 +434,7 @@ public class IMHelper {
         log.info("publish msg: {}", msgStr);
         sb.append("&objectName=").append(URLEncoder.encode(message.getObjectName(), UTF8));
         sb.append("&content=").append(URLEncoder.encode(msgStr, UTF8));
+        sb.append("&isIncludeSender=1");
 
         String body = sb.toString();
         if (body.indexOf("&") == 0) {

+ 1 - 1
mec-student/src/main/java/com/ym/mec/student/controller/ImLiveRoomReservationController.java

@@ -61,7 +61,7 @@ public class ImLiveRoomReservationController extends BaseController {
             @ApiImplicitParam(name = "page", dataType = "Integer", value = "页数"),
             @ApiImplicitParam(name = "rows", dataType = "Integer", value = "每页数量"),
     })
-    @ApiOperation("分页查询直播间列表")
+    @ApiOperation("学生端-分页查询直播间")
     @PostMapping("/queryPageStudent")
     public HttpResponseResult<PageInfo<ImLiveBroadcastRoomVo>> queryPageStudent(@RequestBody Map<String, Object> param) {
         return succeed(imLiveRoomReservationService.queryPageStudent(param));

+ 11 - 1
mec-web/src/main/java/com/ym/mec/web/controller/ImLiveBroadcastRoomController.java

@@ -2,13 +2,16 @@ package com.ym.mec.web.controller;
 
 
 import com.ym.mec.biz.dal.dto.ImLiveBroadcastRoomDto;
+import com.ym.mec.biz.dal.dto.RoomReservationUserSearch;
 import com.ym.mec.biz.dal.vo.BaseRoomUserVo;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomVo;
+import com.ym.mec.biz.dal.vo.RoomReservationUserVo;
 import com.ym.mec.biz.service.ImLiveBroadcastRoomService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.entity.ImUserState;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.page.WrapperUtil;
 import io.swagger.annotations.*;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -45,12 +48,19 @@ public class ImLiveBroadcastRoomController extends BaseController {
             @ApiImplicitParam(name = "page", dataType = "Integer", value = "页数"),
             @ApiImplicitParam(name = "rows", dataType = "Integer", value = "每页数量"),
     })
-    @ApiOperation("分页查询直播间列表")
+    @ApiOperation("后台-分页查询直播间列表")
     @PostMapping("/queryPage")
     public HttpResponseResult<PageInfo<ImLiveBroadcastRoomVo>> queryPage(@RequestBody Map<String, Object> param) {
         return succeed(imLiveBroadcastRoomService.queryPage(param));
     }
 
+
+    @ApiOperation("直播间预约人员信息")
+    @PostMapping("/query/roomUser")
+    public HttpResponseResult<PageInfo<RoomReservationUserVo>> queryRoomUser(@RequestBody @Valid RoomReservationUserSearch query) {
+        return succeed(imLiveBroadcastRoomService.queryRoomUser(query));
+    }
+
     @ApiOperation("查询房间信息并校验房间是否合规")
     @GetMapping("/queryRoom")
     public HttpResponseResult<ImLiveBroadcastRoomVo> queryRoomAndCheck(@ApiParam(value = "房间uid", required = true) String roomUid,

+ 14 - 12
mec-web/src/main/java/com/ym/mec/web/controller/ImLiveRoomBlackController.java

@@ -2,20 +2,20 @@ package com.ym.mec.web.controller;
 
 
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.entity.ImLiveRoomBlack;
-import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomVo;
 import com.ym.mec.biz.dal.vo.ImLiveRoomBlackVo;
 import com.ym.mec.biz.service.ImLiveRoomBlackService;
+import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.page.PageInfo;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.*;
-import com.ym.mec.common.controller.BaseController;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
-import java.util.List;
 import java.util.Map;
 
 /**
@@ -35,12 +35,14 @@ public class ImLiveRoomBlackController extends BaseController {
 
     @ApiImplicitParams({
             @ApiImplicitParam(name = "roomUid", dataType = "String", value = "直播房间uid"),
-            @ApiImplicitParam(name = "search", dataType = "String", value = "搜索关键字-用户id,用户名,手机号"),
+            @ApiImplicitParam(name = "search", dataType = "String", value = "搜索关键字-用户id,用户名,手机号", required = true),
+            @ApiImplicitParam(name = "page", dataType = "Integer", value = "页数"),
+            @ApiImplicitParam(name = "rows", dataType = "Integer", value = "每页数量"),
     })
-    @ApiOperation("分页查询直播间列表")
-    @GetMapping("/queryStudentList")
-    public HttpResponseResult<List<SysUser>> queryStudentList(String roomUid, String search) {
-        return succeed(imLiveRoomBlackService.queryStudentList(roomUid, search));
+    @ApiOperation("查询当前机构学生 -下拉框")
+    @PostMapping("/queryStudentList")
+    public HttpResponseResult<PageInfo<SysUser>> queryStudentList(@RequestBody Map<String, Object> param) {
+        return succeed(imLiveRoomBlackService.queryStudentList(param));
     }
 
     @ApiImplicitParams({
@@ -49,7 +51,7 @@ public class ImLiveRoomBlackController extends BaseController {
     })
     @ApiOperation("添加用户到房间黑名单中")
     @PostMapping("/add")
-    public HttpResponseResult<Object> add(Map<String, Object> param){
+    public HttpResponseResult<Object> add(@RequestBody Map<String, Object> param) {
         imLiveRoomBlackService.add(param);
         return succeed();
     }
@@ -60,7 +62,7 @@ public class ImLiveRoomBlackController extends BaseController {
     })
     @ApiOperation("删除该用户从房间黑名单中移除")
     @PostMapping("/delete")
-    public HttpResponseResult<Object> delete(Map<String, Object> param){
+    public HttpResponseResult<Object> delete(@RequestBody Map<String, Object> param) {
         imLiveRoomBlackService.delete(param);
         return succeed();
     }

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/ImLiveRoomReservationController.java

@@ -59,7 +59,7 @@ public class ImLiveRoomReservationController extends BaseController {
             @ApiImplicitParam(name = "page", dataType = "Integer", value = "页数"),
             @ApiImplicitParam(name = "rows", dataType = "Integer", value = "每页数量"),
     })
-    @ApiOperation("分页查询直播间列表")
+    @ApiOperation("学生端-分页查询直播间")
     @PostMapping("/queryPageStudent")
     public HttpResponseResult<PageInfo<ImLiveBroadcastRoomVo>> queryPageStudent(@RequestBody Map<String, Object> param) {
         return succeed(imLiveRoomReservationService.queryPageStudent(param));