فهرست منبع

Merge branch 'feature/0529-live' of http://git.dayaedu.com/yonge/mec into feature/0529-live

liujc 2 سال پیش
والد
کامیت
586ae63fb9

+ 55 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherClassCourseSchudeleDto.java

@@ -13,6 +13,9 @@ import java.util.Date;
  */
 public class TeacherClassCourseSchudeleDto {
 
+    @ApiModelProperty("课程编号")
+    private Long id;
+
     @ApiModelProperty(value = "班级编号", required = false)
     private Long classGroupId;
 
@@ -72,6 +75,18 @@ public class TeacherClassCourseSchudeleDto {
 
     private Date expiryDate;
 
+    @ApiModelProperty("教学内容")
+    private String teachingContent;
+
+    @ApiModelProperty("教学要点")
+    private String teachingPoint;
+
+    @ApiModelProperty("直播客户端")
+    private String os;
+
+    @ApiModelProperty("课程组编号")
+    private String musicGroupId;
+
     public Date getExpiryDate() {
         return expiryDate;
     }
@@ -239,4 +254,44 @@ public class TeacherClassCourseSchudeleDto {
     public void setType(CourseSchedule.CourseScheduleType type) {
         this.type = type;
     }
+
+    public String getTeachingContent() {
+        return teachingContent;
+    }
+
+    public void setTeachingContent(String teachingContent) {
+        this.teachingContent = teachingContent;
+    }
+
+    public String getTeachingPoint() {
+        return teachingPoint;
+    }
+
+    public void setTeachingPoint(String teachingPoint) {
+        this.teachingPoint = teachingPoint;
+    }
+
+    public String getOs() {
+        return os;
+    }
+
+    public void setOs(String os) {
+        this.os = os;
+    }
+
+    public String getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(String musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
 }

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

@@ -3470,7 +3470,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         }
         MapUtil.populateMap(params, queryInfo);
 
-        List dataList = null;
+        List<StudentCourseScheduleRecordDto> dataList = null;
         int count = courseScheduleDao.countStudentCourseScheduleRecords(params);
         if (count > 0) {
             pageInfo.setTotal(count);
@@ -3764,6 +3764,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				cttnMap = courseScheduleTeacherSalaries.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getCourseScheduleId, Collectors.groupingBy(CourseScheduleTeacherSalary::getTeacherRole, Collectors.mapping(CourseScheduleTeacherSalary::getUserName, Collectors.toSet()))));
 			}
 
+			// 课程组信息
+			Map<String, ImLiveBroadcastRoomDto> liveRoomMap = getCourseLiveRoomMap(dataList);
+
 			for (TeacherClassCourseSchudeleDto e : dataList) {
 				e.setCurrentClassTimes(courseScheduleDao.countCurrentTimes(e.getClassGroupId().intValue(),new Date()));
 				e.setTotalClassTimes(courseScheduleDao.countCurrentCourseTime(e.getCourseScheduleId()));
@@ -3777,6 +3780,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				if(cttnMap.containsKey(e.getCourseScheduleId())&&cttnMap.get(e.getCourseScheduleId()).containsKey(TeachTypeEnum.TEACHING)){
 					e.setTeachingNames(StringUtils.join(cttnMap.get(e.getCourseScheduleId()).get(TeachTypeEnum.TEACHING), ","));
 				}
+
+				// 直播课直播间配置
+				if (liveRoomMap.containsKey(e.getMusicGroupId())) {
+					e.setOs(liveRoomMap.get(e.getMusicGroupId()).getOs());
+				}
 			}
 		}
 		if (count == 0) {
@@ -3786,6 +3794,35 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		return pageInfo;
 	}
 
+	/**
+	 * 课程直播配置
+	 * @param dataList List<TeacherClassCourseSchudeleDto>
+	 * @return Map<String, ImLiveBroadcastRoomDto>
+	 */
+	public Map<String, ImLiveBroadcastRoomDto> getCourseLiveRoomMap(List<TeacherClassCourseSchudeleDto> dataList) {
+
+		Map<String, ImLiveBroadcastRoomDto> liveRoomMap = Maps.newHashMap();
+		{
+			Map<Long, String> collect = dataList.stream()
+					.filter(x -> StringUtils.isNotEmpty(x.getMusicGroupId()))
+					.filter(x -> x.getType().equals(CourseScheduleType.LIVE))
+					.collect(Collectors.toMap(TeacherClassCourseSchudeleDto::getId, TeacherClassCourseSchudeleDto::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 CourseAttendanceDetailHeadInfoDto findCourseAttendanceDetailHeadInfo(Long courseScheduleId) {
         if (Objects.isNull(courseScheduleId)) {

+ 13 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -1198,6 +1198,8 @@
                CONCAT(cs.class_date_, ' ', cs.end_class_time_)   end_class_time_,
                cs.teach_mode_,
                cs.class_group_id_,
+               cs.teaching_content_,
+               cs.teaching_point_,
         		s.name_ school_name_
         FROM course_schedule_student_payment cssp
         LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
@@ -1462,6 +1464,7 @@
     </select>
 
     <resultMap id="teacherClassCourseSchedule" type="com.ym.mec.biz.dal.dto.TeacherClassCourseSchudeleDto">
+        <result column="id_" property="id" />
         <result property="classGroupId" column="class_group_id_"/>
         <result property="courseScheduleId" column="course_schedule_id_"/>
         <result property="courseScheduleName" column="course_schedule_name_"/>
@@ -1481,6 +1484,9 @@
         <result column="school_id_" property="schoolId"/>
         <result column="school_name_" property="schoolName"/>
         <result column="expiry_date_" property="expiryDate"/>
+        <result column="teaching_content_" property="teachingContent" />
+        <result column="teaching_point_" property="teachingPoint" />
+        <result column="music_group_id_" property="musicGroupId" />
     </resultMap>
 
     <sql id="teacherClassCourseScheduleQueryCondition">
@@ -1523,6 +1529,9 @@
         su.real_name_ username_,
         cg.total_class_times_,
         cs.schoole_id_ school_id_,
+        cs.teaching_content_,
+        cs.teaching_point_,
+        cs.music_group_id_,
         s.name_ school_name_,
         ch.expiry_date_
         FROM
@@ -1574,6 +1583,7 @@
 
     <select id="queryTeacherHistoryClassCourseSchedule" resultMap="teacherClassCourseSchedule">
         SELECT
+        cs.id_,
         cs.class_group_id_,
         cs.id_ course_schedule_id_,
         cs.class_date_,
@@ -1592,6 +1602,9 @@
         MAX(sa.current_class_times_) current_class_times_,
         cs.schoole_id_ school_id_,
         ch.expiry_date_,
+        cs.teaching_content_,
+        cs.teaching_point_,
+        cs.music_group_id_,
         s.name_ school_name_
         FROM
         student_attendance sa