shangke 2 years ago
parent
commit
295217ea55

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

@@ -99,6 +99,9 @@ public class CourseScheduleDto extends CourseSchedule {
 
 
     private int enableAssignHomework;
     private int enableAssignHomework;
 
 
+    @ApiModelProperty("直播间信息")
+    private ImLiveBroadcastRoomDto liveBroadcastRoom;
+
     public int getEnableAssignHomework() {
     public int getEnableAssignHomework() {
         return enableAssignHomework;
         return enableAssignHomework;
     }
     }
@@ -348,4 +351,12 @@ public class CourseScheduleDto extends CourseSchedule {
     public void setStudentId(Integer studentId) {
     public void setStudentId(Integer studentId) {
         this.studentId = studentId;
         this.studentId = studentId;
     }
     }
+
+    public ImLiveBroadcastRoomDto getLiveBroadcastRoom() {
+        return liveBroadcastRoom;
+    }
+
+    public void setLiveBroadcastRoom(ImLiveBroadcastRoomDto liveBroadcastRoom) {
+        this.liveBroadcastRoom = liveBroadcastRoom;
+    }
 }
 }

+ 43 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service.impl;
 
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
+import com.google.common.collect.Maps;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dao.*;
@@ -34,6 +35,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections.ListUtils;
 import org.apache.commons.collections.ListUtils;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.jetbrains.annotations.NotNull;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
@@ -1101,6 +1103,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 						|| cs.getType().equals(CourseScheduleType.COMM))
 						|| cs.getType().equals(CourseScheduleType.COMM))
                 .map(CourseScheduleDto::getId).collect(Collectors.toList());
                 .map(CourseScheduleDto::getId).collect(Collectors.toList());
 
 
+		// 直播课设置直播间信息
+		Map<String, ImLiveBroadcastRoomDto> liveRoomMap = getLiveRoomMap(studentCourseSchedulesWithDate);
+
 		Map<Integer, String> subjectNameCourseMap = new HashMap<>();
 		Map<Integer, String> subjectNameCourseMap = new HashMap<>();
         Map<Integer, String> subjectIdCourseMap = new HashMap<>();
         Map<Integer, String> subjectIdCourseMap = new HashMap<>();
         Map<Integer, Integer> reviewIdMap = new HashMap<>();
         Map<Integer, Integer> reviewIdMap = new HashMap<>();
@@ -1140,12 +1145,43 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			if(CourseScheduleType.PRACTICE.equals(courseScheduleDto.getType())&&Objects.nonNull(courseScheduleDto.getMusicGroupId())){
 			if(CourseScheduleType.PRACTICE.equals(courseScheduleDto.getType())&&Objects.nonNull(courseScheduleDto.getMusicGroupId())){
 				courseScheduleDto.setPracticeType(practiceGroupTypeMap.get(Long.valueOf(courseScheduleDto.getMusicGroupId())));
 				courseScheduleDto.setPracticeType(practiceGroupTypeMap.get(Long.valueOf(courseScheduleDto.getMusicGroupId())));
 			}
 			}
+
+			// 设置直播间配置
+			courseScheduleDto.setLiveBroadcastRoom(liveRoomMap.get(courseScheduleDto.getMusicGroupId()));
         }
         }
         result.put("list", studentCourseSchedulesWithDate);
         result.put("list", studentCourseSchedulesWithDate);
         return result;
         return result;
     }
     }
 
 
-    @Override
+	/**
+	 * 直播课设置直播间信息
+	 * @param studentCourseSchedulesWithDate List<CourseScheduleDto>
+	 * @return Map<String, ImLiveBroadcastRoomDto>
+	 */
+	private Map<String, ImLiveBroadcastRoomDto> getLiveRoomMap(List<CourseScheduleDto> studentCourseSchedulesWithDate) {
+
+		Map<String, ImLiveBroadcastRoomDto> liveRoomMap = Maps.newHashMap();
+		{
+			Map<Long, String> collect = studentCourseSchedulesWithDate.stream()
+					.filter(x -> x.getType().equals(CourseScheduleType.LIVE))
+					.collect(Collectors.toMap(CourseSchedule::getId, CourseSchedule::getMusicGroupId, (o, n) -> n));
+
+			if (MapUtils.isNotEmpty(collect)) {
+
+				List<Long> liveGroupIds = collect.values().stream().map(Long::parseLong).distinct().collect(Collectors.toList());
+
+				liveRoomMap = vipGroupDao.getVipGroupByIds(liveGroupIds).stream()
+						.filter(x -> Objects.nonNull(x.getLiveConfigJson()))
+						.collect(Collectors.toMap(x -> String.valueOf(x.getId()),
+								x -> JSON.parseObject(x.getLiveConfigJson(), ImLiveBroadcastRoomDto.class), (o, n) -> n));
+
+			}
+
+		}
+		return liveRoomMap;
+	}
+
+	@Override
     public PageInfo getCourseSchedulesWithDateByEdu(CourseScheduleQueryInfo queryInfo) {
     public PageInfo getCourseSchedulesWithDateByEdu(CourseScheduleQueryInfo queryInfo) {
 //        queryInfo.setOrganId(Long.parseLong(user.getOrganId()));
 //        queryInfo.setOrganId(Long.parseLong(user.getOrganId()));
         PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
         PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
@@ -1233,6 +1269,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 						cs.getType().equals(CourseScheduleType.COMM))
 						cs.getType().equals(CourseScheduleType.COMM))
                 .map(CourseScheduleDto::getId).collect(Collectors.toList());
                 .map(CourseScheduleDto::getId).collect(Collectors.toList());
 
 
+		// 直播课设置直播间信息
+		Map<String, ImLiveBroadcastRoomDto> liveRoomMap = getLiveRoomMap(teacherCourseSchedulesWithDate);
+
         Map<Integer, String> subjectNameCourseMap = new HashMap<>();
         Map<Integer, String> subjectNameCourseMap = new HashMap<>();
         Map<Integer, String> subjectIdCourseMap = new HashMap<>();
         Map<Integer, String> subjectIdCourseMap = new HashMap<>();
         if (!CollectionUtils.isEmpty(courseScheduleIds)) {
         if (!CollectionUtils.isEmpty(courseScheduleIds)) {
@@ -1317,6 +1356,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             if(homeworkCourseIds.contains(courseScheduleDto.getId())){
             if(homeworkCourseIds.contains(courseScheduleDto.getId())){
 				courseScheduleDto.setEnableAssignHomework(1);
 				courseScheduleDto.setEnableAssignHomework(1);
 			}
 			}
+
+			// 直播课直播间配置
+			courseScheduleDto.setLiveBroadcastRoom(liveRoomMap.get(courseScheduleDto.getMusicGroupId()));
 		}
 		}
         return teacherCourseSchedulesWithDate;
         return teacherCourseSchedulesWithDate;
     }
     }