Browse Source

增加直播间乐团

hgw 2 years ago
parent
commit
08901e8f9f

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

@@ -43,6 +43,8 @@ public interface ImLiveBroadcastRoomDao extends BaseMapper<ImLiveBroadcastRoom>
 
     String querySchoolIds(@Param("organIds") String organIds);
 
+    String queryTeamIds(@Param("organIds") String organIds);
+
     List<LiveRoomGoodsOrderVo> queryLiveRoomGoodsOrderList(Map<String, Object> params);
 
     int countLiveRoomGoodsOrderList(Map<String, Object> params);

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

@@ -29,5 +29,7 @@ public interface ImLiveRoomReservationDao extends BaseMapper<ImLiveRoomReservati
      * @return
      */
     List<ImLiveBroadcastRoomVo> selectCountRoomReservation(@Param("roomIdList") List<String> roomIdList);
+
+    String queryMusicGroupIds(@Param("userId") Integer userId);
 }
 

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

@@ -58,6 +58,9 @@ public class ImLiveBroadcastRoomDto implements Serializable {
     @ApiModelProperty(value = "学校id-合作单位id,多个id逗号分割")
     private String popularizeSchoolIds;
 
+    @ApiModelProperty(value = "乐团id,多个id逗号分割")
+    private String popularizeTeamIds;
+
     @ApiModel(value = "房间配置")
     public static class RoomConfig implements Serializable {
 
@@ -204,5 +207,13 @@ public class ImLiveBroadcastRoomDto implements Serializable {
     public void setPopularizeSchoolIds(String popularizeSchoolIds) {
         this.popularizeSchoolIds = popularizeSchoolIds;
     }
+
+    public String getPopularizeTeamIds() {
+        return popularizeTeamIds;
+    }
+
+    public void setPopularizeTeamIds(String popularizeTeamIds) {
+        this.popularizeTeamIds = popularizeTeamIds;
+    }
 }
 

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

@@ -23,6 +23,7 @@ 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";
 
     @TableId(value = "id_", type = IdType.AUTO)
     @ApiModelProperty(value = "主键")
@@ -88,6 +89,10 @@ public class ImLiveBroadcastRoom implements Serializable {
     @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;
@@ -283,5 +288,13 @@ public class ImLiveBroadcastRoom implements Serializable {
     public void setPopularizeSchoolIds(String popularizeSchoolIds) {
         this.popularizeSchoolIds = popularizeSchoolIds;
     }
+
+    public String getPopularizeTeamIds() {
+        return popularizeTeamIds;
+    }
+
+    public void setPopularizeTeamIds(String popularizeTeamIds) {
+        this.popularizeTeamIds = popularizeTeamIds;
+    }
 }
 

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/ImLiveBroadcastRoomVo.java

@@ -88,6 +88,9 @@ public class ImLiveBroadcastRoomVo implements Serializable {
     @ApiModelProperty(value = "学校id-合作单位id,多个id逗号分割")
     private String popularizeSchoolIds;
 
+    @ApiModelProperty(value = "乐团id,多个id逗号分割")
+    private String popularizeTeamIds;
+
     @ApiModelProperty(value = "点赞数")
     private Integer likeNum;
     @ApiModelProperty(value = "当前观看人数")
@@ -327,5 +330,13 @@ public class ImLiveBroadcastRoomVo implements Serializable {
     public void setPopularizeSchoolIds(String popularizeSchoolIds) {
         this.popularizeSchoolIds = popularizeSchoolIds;
     }
+
+    public String getPopularizeTeamIds() {
+        return popularizeTeamIds;
+    }
+
+    public void setPopularizeTeamIds(String popularizeTeamIds) {
+        this.popularizeTeamIds = popularizeTeamIds;
+    }
 }
 

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

@@ -19,11 +19,7 @@ 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.page.LiveRoomGoodsOrderQueryInfo;
-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.LiveRoomGoodsOrderVo;
-import com.ym.mec.biz.dal.vo.RoomUserInfoVo;
+import com.ym.mec.biz.dal.vo.*;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.entity.ImRoomMessage;
 import com.ym.mec.common.entity.ImUserState;
@@ -213,6 +209,10 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
                 if (StringUtils.isNotBlank(schoolIds)) {
                     param.put("schoolIds", schoolIds);
                 }
+                String teamIds = baseMapper.queryTeamIds(employee.getOrganIdList());
+                if (StringUtils.isNotBlank(schoolIds)) {
+                    param.put("teamIds", teamIds);
+                }
             }
         }
         IPage<ImLiveBroadcastRoomVo> page = baseMapper.queryPage(pageInfo, param);
@@ -289,12 +289,21 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
         }
 
         String popularizeType = dto.getPopularizeType();
-        if (popularizeType.equals(ImLiveBroadcastRoom.ALL)) {
-            dto.setPopularizeOrgIds(null);
-            dto.setPopularizeSchoolIds(null);
-        } else if (popularizeType.equals(ImLiveBroadcastRoom.ORGAN)) {
-            dto.setPopularizeSchoolIds(null);
+        switch (popularizeType) {
+            case ImLiveBroadcastRoom.ALL:
+                dto.setPopularizeOrgIds(null);
+                dto.setPopularizeSchoolIds(null);
+                dto.setPopularizeTeamIds(null);
+                break;
+            case ImLiveBroadcastRoom.ORGAN:
+                dto.setPopularizeSchoolIds(null);
+                dto.setPopularizeTeamIds(null);
+                break;
+            case ImLiveBroadcastRoom.SCHOOL:
+                dto.setPopularizeTeamIds(null);
+                break;
         }
+
         BeanUtils.copyProperties(dto, obj);
         obj.setRoomConfig(JSONObject.toJSONString(dto.getRoomConfig()));
         log.info("update room  >>>  :{}", JSONObject.toJSONString(obj));

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

@@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 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;
@@ -16,7 +15,6 @@ 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;
 import com.ym.mec.common.page.PageInfo;
@@ -33,7 +31,6 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
-import java.util.function.BiConsumer;
 
 /**
  * 直播预约记录(ImLiveRoomReservation)表服务实现类
@@ -87,19 +84,23 @@ public class ImLiveRoomReservationServiceImpl extends ServiceImpl<ImLiveRoomRese
     @Override
     public PageInfo<ImLiveBroadcastRoomVo> queryPageStudent(Map<String, Object> param) {
         SysUser user = getUser();
-        Page<ImLiveBroadcastRoomVo> pageInfo = PageUtil.concatTimePage(param,"startTime","endTime");
+        Page<ImLiveBroadcastRoomVo> pageInfo = PageUtil.concatTimePage(param, "startTime", "endTime");
         pageInfo.setDesc("a.created_time_");
         param.put("userId", user.getId());
         param.put("tenantId", TenantContextHolder.getTenantId());
         //查询该学员 所属分部
         Integer organId = user.getOrganId();
-        if(Objects.nonNull(organId)){
+        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());
+        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);

+ 19 - 4
mec-biz/src/main/resources/config/mybatis/ImLiveBroadcastRoomMapper.xml

@@ -18,6 +18,7 @@
         <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="popularize_team_ids_" jdbcType="VARCHAR" property="popularizeTeamIds"/>
         <result column="created_by_" jdbcType="INTEGER" property="createdBy"/>
         <result column="created_time_" jdbcType="TIMESTAMP" property="createdTime"/>
         <result column="updated_by_" jdbcType="INTEGER" property="updatedBy"/>
@@ -28,14 +29,14 @@
             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_, popularize_type_,popularize_org_ids_,popularize_school_ids_,
+        popularize_, popularize_type_,popularize_org_ids_,popularize_school_ids_,popularize_team_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.popularizeType},#{entity.popularizeOrgIds},#{entity.popularizeSchoolIds},
+            #{entity.popularizeType},#{entity.popularizeOrgIds},#{entity.popularizeSchoolIds},#{entity.popularizeTeamIds},
             #{entity.createdBy}, #{entity.createdTime}, #{entity.updatedBy},#{entity.updatedTime})
         </foreach>
     </insert>
@@ -61,7 +62,8 @@
         a.popularize_ AS popularize,
         a.popularize_type_ AS popularizeType,
         a.popularize_org_ids_ AS popularizeOrgIds,
-        a.popularize_school_ids_ AS popularizeSchoolIds
+        a.popularize_school_ids_ AS popularizeSchoolIds,
+        a.popularize_team_ids_ AS popularizeTeamIds
         from (
         select *
         from im_live_broadcast_room
@@ -75,13 +77,20 @@
             where popularize_type_ = 'ORGAN'
             and INTE_ARRAY(a.popularize_org_ids_, #{param.organIds}) = 1
         </if>
-        <if test="param.organIds != null">
+        <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.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>
         ) 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_
@@ -219,4 +228,10 @@
     <select id="querySchoolIds" resultType="string">
         select GROUP_CONCAT(id_)  from cooperation_organ where  find_in_set(organ_id_,#{organIds})
     </select>
+
+    <select id="queryTeamIds" resultType="string">
+    select group_concat(id_)
+    from music_group where organ_id_ in (#{organIds}) group by organ_id_
+    </select>
+
 </mapper>

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

@@ -60,6 +60,13 @@
             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>
         ) 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_
@@ -102,5 +109,12 @@
         group by lbr.room_uid_
     </select>
 
+    <select id="queryMusicGroupIds" resultType="string">
+        select group_concat(music_group_id_)
+        from student_registration
+        where user_id_ = #{userId}
+          and music_group_status_ != 'QUIT'
+        group by user_id_
+    </select>
 
 </mapper>