Explorar o código

乐直播列表

liujc %!s(int64=2) %!d(string=hai) anos
pai
achega
6aeacf4b88

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroup.java

@@ -156,6 +156,8 @@ public class VipGroup extends BaseEntity {
 
 	private int enableDelete;
 
+    private Integer subjectId;
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/LiveGroupPlusMapper.java

@@ -2,10 +2,14 @@ package com.ym.mec.biz.dal.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ym.mec.biz.dal.dto.CourseScheduleDto;
 import com.ym.mec.biz.dal.wrapper.LiveGroupWrapper;
+import com.ym.mec.common.page.PageInfo;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 @Repository
 public interface LiveGroupPlusMapper extends BaseMapper<Object> {
 
@@ -13,4 +17,8 @@ public interface LiveGroupPlusMapper extends BaseMapper<Object> {
     IPage<LiveGroupWrapper.LiveGroupStudentList> liveStudentList(@Param("page") IPage<LiveGroupWrapper.LiveGroupStudentList> page,
                                                                  @Param("param") LiveGroupWrapper.LiveGroupStudentQuery query);
 
+    /**
+     * 直播课课表
+     */
+    List<CourseScheduleDto> liveCoursePage(@Param("page") IPage<CourseScheduleDto> page, @Param("param") LiveGroupWrapper.LiveCoursePageQuery queryInfo);
 }

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/VipGroupQueryInfo.java

@@ -23,6 +23,8 @@ public class VipGroupQueryInfo extends QueryInfo {
 
     private String status;
 
+    private Integer subjectId;
+
     private boolean isExport = false;
 
     private Integer educationalTeacherId;

+ 27 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/LiveGroupWrapper.java

@@ -75,4 +75,31 @@ public class LiveGroupWrapper {
 
     }
 
+
+
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel(" LiveCoursePageQuery-乐直播课程列表查询")
+    public static class LiveCoursePageQuery implements QueryInfo {
+
+        @ApiModelProperty("当前页")
+        private Integer page;
+
+        @ApiModelProperty("分页行数")
+        private Integer rows;
+
+
+        @ApiModelProperty("开始时间")
+        private Date startTime;
+
+        @ApiModelProperty("结束时间")
+        private Date endTime;
+
+        private Integer teacherId;
+
+        private Integer tenantId;
+
+    }
 }

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

@@ -13,6 +13,7 @@ import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.dal.school.dto.ClassesForDayDto;
 import com.ym.mec.biz.dal.school.dto.CourseStudentDto;
 import com.ym.mec.biz.dal.wrapper.DailySummaryOfClassesForTheCurrentSemesterWrapper;
+import com.ym.mec.biz.dal.wrapper.LiveGroupWrapper;
 import com.ym.mec.biz.dal.wrapper.TeachingPointWrapper;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.page.PageInfo;
@@ -771,4 +772,12 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
     Boolean teachingPointCourse(TeachingPointWrapper.TeachingPoint teachingPoint);
 
     List<CourseScheduleStudentDto> queryDetailList(CourseDetailQueryInfo courseDetailQueryInfo);
+
+    /**
+     * 老师乐直播直播课课程列表
+     *
+     * @param queryInfo
+     * @return
+     */
+    IPage<CourseScheduleDto> liveCoursePage(LiveGroupWrapper.LiveCoursePageQuery queryInfo);
 }

+ 75 - 44
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -11,11 +11,13 @@ import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.mapper.CourseSchedulePlusMapper;
+import com.ym.mec.biz.dal.mapper.LiveGroupPlusMapper;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.dal.school.dto.ClassesForDayDto;
 import com.ym.mec.biz.dal.school.dto.CourseStudentDto;
 import com.ym.mec.biz.dal.vo.ImLiveRoomVideoVo;
 import com.ym.mec.biz.dal.wrapper.DailySummaryOfClassesForTheCurrentSemesterWrapper;
+import com.ym.mec.biz.dal.wrapper.LiveGroupWrapper;
 import com.ym.mec.biz.dal.wrapper.TeachingPointWrapper;
 import com.ym.mec.biz.event.source.CourseEventSource;
 import com.ym.mec.biz.event.source.SendSeoMessageSource;
@@ -41,6 +43,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections.ListUtils;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.jetbrains.annotations.Nullable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
@@ -188,6 +191,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     @Autowired
     private ImLiveRoomVideoDao imLiveRoomVideoDao;
 
+    @Autowired
+    private LiveGroupPlusMapper liveGroupPlusMapper;
+
     private final Logger businessLogger = LoggerFactory
             .getLogger(this.getClass());
 
@@ -1286,8 +1292,18 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 						cs.getType().equals(CourseScheduleType.COMM))
                 .map(CourseScheduleDto::getId).collect(Collectors.toList());
 
-		// 直播课设置直播间信息
-		Map<String, ImLiveBroadcastRoomDto> liveRoomMap = getLiveRoomMap(teacherCourseSchedulesWithDate);
+        List<CourseScheduleDto> teacherCourseSchedulesWithDate1 = getTeacherCourseFormat(userId, classDate, tenantId, now,
+                teacherCourseSchedulesWithDate, allCourseScheduleIds, courseScheduleIds);
+        if (teacherCourseSchedulesWithDate1 != null) return teacherCourseSchedulesWithDate1;
+        return teacherCourseSchedulesWithDate;
+    }
+
+    // 数据整理
+    @Nullable
+    private List<CourseScheduleDto> getTeacherCourseFormat(Integer userId, Date classDate, Integer tenantId, Date now,
+                                                         List<CourseScheduleDto> teacherCourseSchedulesWithDate, List<Long> allCourseScheduleIds, List<Long> courseScheduleIds) {
+        // 直播课设置直播间信息
+        Map<String, ImLiveBroadcastRoomDto> liveRoomMap = getLiveRoomMap(teacherCourseSchedulesWithDate);
 
         Map<Integer, String> subjectNameCourseMap = new HashMap<>();
         Map<Integer, String> subjectIdCourseMap = new HashMap<>();
@@ -1314,72 +1330,72 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         List<Map<Integer, Integer>> classGroupStudentNumMaps = classGroupStudentMapperDao.countClassGroupsStudentNum(classGroupIds, ClassGroupStudentStatusEnum.NORMAL);
         Map<Integer, Long> classGroupStudentNumMap = MapUtil.convertIntegerMap(classGroupStudentNumMaps);
 
-		String tenantConfigValue = sysTenantConfigService.getTenantConfigValue(SysConfigService.ADVANCE_LEAVE_HOURS,tenantId);
-		Integer advanceLeaveHours = 0;
-		if(StringUtils.isNotEmpty(tenantConfigValue)){
-			advanceLeaveHours = Integer.parseInt(tenantConfigValue);
-		}
+        String tenantConfigValue = sysTenantConfigService.getTenantConfigValue(SysConfigService.ADVANCE_LEAVE_HOURS, tenantId);
+        Integer advanceLeaveHours = 0;
+        if(StringUtils.isNotEmpty(tenantConfigValue)){
+            advanceLeaveHours = Integer.parseInt(tenantConfigValue);
+        }
         List<Map<Long, Integer>> courseLeaveStudentNumMaps = studentAttendanceDao.countCourseLeaveStudentNumWithFourHoursAgo(allCourseScheduleIds, advanceLeaveHours);
         Map<Long,Long> courseLeaveStudentNumMap = MapUtil.convertIntegerMap((courseLeaveStudentNumMaps));
 
-		List<CourseScheduleReview> AllCourseScheduleReviews = courseScheduleReviewDao.findByCourseSchedules(allCourseScheduleIds);
-		Map<Integer, List<CourseScheduleReview>> idCourseReview=new HashMap<>();
-		if(!CollectionUtils.isEmpty(AllCourseScheduleReviews)){
-			idCourseReview=AllCourseScheduleReviews.stream().collect(Collectors.groupingBy(CourseScheduleReview::getCourseScheduleId));
-		}
+        List<CourseScheduleReview> AllCourseScheduleReviews = courseScheduleReviewDao.findByCourseSchedules(allCourseScheduleIds);
+        Map<Integer, List<CourseScheduleReview>> idCourseReview=new HashMap<>();
+        if(!CollectionUtils.isEmpty(AllCourseScheduleReviews)){
+            idCourseReview=AllCourseScheduleReviews.stream().collect(Collectors.groupingBy(CourseScheduleReview::getCourseScheduleId));
+        }
 
-		Set<Long> homeworkCourseIds = studentServeService.getTeacherHomeworkCourseIdsWithMonday(userId, classDate);
+        Set<Long> homeworkCourseIds = studentServeService.getTeacherHomeworkCourseIdsWithMonday(userId, classDate);
 
-		for (CourseScheduleDto courseScheduleDto : teacherCourseSchedulesWithDate) {
+        for (CourseScheduleDto courseScheduleDto : teacherCourseSchedulesWithDate) {
             Long studentNum = studentNumCourseMap.get(courseScheduleDto.getId());
             if (Objects.nonNull(studentNum)) {
-                courseScheduleDto.setStudentAttendanceIsFirstTime(studentNum > 0 ? 0 : 1);
+            courseScheduleDto.setStudentAttendanceIsFirstTime(studentNum > 0 ? 0 : 1);
             } else {
-                courseScheduleDto.setStudentAttendanceIsFirstTime(1);
+            courseScheduleDto.setStudentAttendanceIsFirstTime(1);
             }
 
             if (now.before(courseScheduleDto.getStartClassTime())) {
-                courseScheduleDto.setStatus(CourseStatusEnum.NOT_START);
+            courseScheduleDto.setStatus(CourseStatusEnum.NOT_START);
             } else if (now.after(courseScheduleDto.getEndClassTime())) {
-                courseScheduleDto.setStatus(CourseStatusEnum.OVER);
+            courseScheduleDto.setStatus(CourseStatusEnum.OVER);
             } else {
-                courseScheduleDto.setStatus(CourseStatusEnum.UNDERWAY);
+            courseScheduleDto.setStatus(CourseStatusEnum.UNDERWAY);
             }
             if (Objects.nonNull(courseScheduleDto.getClassGroupId())) {
-//                String[] studentNames = classGroupStudentMapperDao.findCourseStudentName(courseScheduleDto.getId().intValue());
-                List<StudentNameAndPhoneDto> courseStudentNameAndPhone = classGroupStudentMapperDao.findCourseStudentNameAndPhone(courseScheduleDto.getId().intValue());
-                if(!CollectionUtils.isEmpty(courseStudentNameAndPhone)){
-                    List<String> studentNames = courseStudentNameAndPhone.stream().filter(s->Objects.nonNull(s)&&Objects.nonNull(s.getUserName())).map(StudentNameAndPhoneDto::getUserName).collect(Collectors.toList());
-                    courseScheduleDto.setStudentNames(org.apache.commons.lang3.StringUtils.join(studentNames, ","));
-                    courseScheduleDto.setStudents(courseStudentNameAndPhone);
-                }
+            //                String[] studentNames = classGroupStudentMapperDao.findCourseStudentName(courseScheduleDto.getId().intValue());
+            List<StudentNameAndPhoneDto> courseStudentNameAndPhone = classGroupStudentMapperDao.findCourseStudentNameAndPhone(courseScheduleDto.getId().intValue());
+            if(!CollectionUtils.isEmpty(courseStudentNameAndPhone)){
+            List<String> studentNames = courseStudentNameAndPhone.stream().filter(s->Objects.nonNull(s)&&Objects.nonNull(s.getUserName())).map(StudentNameAndPhoneDto::getUserName).collect(Collectors.toList());
+            courseScheduleDto.setStudentNames(StringUtils.join(studentNames, ","));
+            courseScheduleDto.setStudents(courseStudentNameAndPhone);
+            }
             }
             courseScheduleDto.setSubjectName(subjectNameCourseMap.get(courseScheduleDto.getId()));
             courseScheduleDto.setSubjectId(subjectIdCourseMap.get(courseScheduleDto.getId()));
             Long leaveStudentNum = courseLeaveStudentNumMap.get(courseScheduleDto.getId());
             Long normalStudentNum = classGroupStudentNumMap.get(courseScheduleDto.getClassGroupId());
             if(Objects.nonNull(leaveStudentNum)&&Objects.nonNull(normalStudentNum)&&leaveStudentNum.intValue()==normalStudentNum.intValue()){
-                courseScheduleDto.setEnableAdjustInToday(1);
+            courseScheduleDto.setEnableAdjustInToday(1);
             }
-			List<CourseScheduleReview> courseScheduleReviews = idCourseReview.get(courseScheduleDto.getId().intValue());
+            List<CourseScheduleReview> courseScheduleReviews = idCourseReview.get(courseScheduleDto.getId().intValue());
             if(!CollectionUtils.isEmpty(courseScheduleReviews)){
-				courseScheduleDto.setComplaintsStatus(1);
-				CourseScheduleReview courseScheduleReview = courseScheduleReviews.get(0);
-				courseScheduleDto.setReviewId(courseScheduleReview.getId());
-			}else{
-            	courseScheduleDto.setComplaintsStatus(0);
-			}
+                courseScheduleDto.setComplaintsStatus(1);
+                CourseScheduleReview courseScheduleReview = courseScheduleReviews.get(0);
+                courseScheduleDto.setReviewId(courseScheduleReview.getId());
+            }else{
+                courseScheduleDto.setComplaintsStatus(0);
+            }
 
             if(homeworkCourseIds.contains(courseScheduleDto.getId())){
-				courseScheduleDto.setEnableAssignHomework(1);
-			}
+                courseScheduleDto.setEnableAssignHomework(1);
+            }
 
-			// 直播课直播间配置
-			courseScheduleDto.setLiveBroadcastRoom(liveRoomMap.get(courseScheduleDto.getMusicGroupId()));
-			if (Objects.nonNull(courseScheduleDto.getLiveBroadcastRoom())) {
-				courseScheduleDto.setOs(courseScheduleDto.getLiveBroadcastRoom().getOs());
-			}
-		}
+            // 直播课直播间配置
+            courseScheduleDto.setLiveBroadcastRoom(liveRoomMap.get(courseScheduleDto.getMusicGroupId()));
+            if (Objects.nonNull(courseScheduleDto.getLiveBroadcastRoom())) {
+                courseScheduleDto.setOs(courseScheduleDto.getLiveBroadcastRoom().getOs());
+            }
+        }
         return teacherCourseSchedulesWithDate;
     }
 
@@ -3645,7 +3661,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         Date date = new Date();
         //查询所有已上课乐团
         List<String> musicGroupIdList = courseScheduleDao.queryStartedCourseMusicGroupIdList(GroupType.MUSIC.getCode());
-        
+
         //自动更新课程状态至“已结束”
         List<CourseSchedule> list = courseScheduleDao.queryFinishedWithNoUpdateStatus();
 
@@ -3666,7 +3682,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             if (courseSchedule.getGroupType() == GroupType.VIP) {
                 courseScheduleIdList.add(courseSchedule.getId());
             }
-            
+
             if(courseSchedule.getGroupType() == GroupType.MUSIC){
             	if(!musicGroupIdList.contains(courseSchedule.getMusicGroupId())){
             		//乐团第一次上课
@@ -5842,6 +5858,21 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     }
 
     @Override
+    public IPage<CourseScheduleDto> liveCoursePage(LiveGroupWrapper.LiveCoursePageQuery queryInfo) {
+        IPage<CourseScheduleDto> page = com.microsvc.toolkit.common.response.paging.QueryInfo.getPage(queryInfo);
+        List<CourseScheduleDto> courseScheduleDtos = liveGroupPlusMapper.liveCoursePage(page, queryInfo);
+        if (CollectionUtils.isEmpty(courseScheduleDtos)) {
+            return page;
+        }
+        // id 集合
+        List<Long> courseIds = courseScheduleDtos.stream().map(CourseScheduleDto::getId).collect(Collectors.toList());
+        List<CourseScheduleDto> teacherCourseFormat = getTeacherCourseFormat(queryInfo.getTeacherId(), new Date(),
+                queryInfo.getTenantId(), new Date(), courseScheduleDtos, courseIds, courseIds);
+
+        return page.setRecords(teacherCourseFormat);
+    }
+
+    @Override
 	public List<CourseStudentDto> queryCourseStudentList(Long courseId) {
 		List<CourseStudentDto> courseStudentDtos = studentAttendanceDao.queryCourseStudentList(courseId);
 		if(CollectionUtils.isNotEmpty(courseStudentDtos)){

+ 28 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -216,6 +216,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
             throw new BizException("课程不存在");
         }
 
+        TeacherDefaultVipGroupSalary groupSalary = teacherDefaultVipGroupSalaryDao
+                .findByTeacherAndCategory(vipGroup.getVipGroupApplyBaseInfo().getUserId(), vipGroup.getVipGroupApplyBaseInfo().getVipGroupCategoryId());
+        if (groupSalary == null && vipGroup.getVipGroupApplyBaseInfo().getGroupType().equals(GroupType.LIVE.getCode())) {
+            throw new BizException("请设置教师课酬");
+        }
         // 声部
         VipGroupApplyDto vipGroupApplyDto = liveGroupDetail(vipGroup1.getId());
         // 检测是否有学生已经购买直播课
@@ -457,7 +462,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         if (Objects.isNull(vipGroupApplyBaseInfoDto.getOfflineTeacherSalary())) {
             throw new BizException("请设置教师课酬");
         }
-
+        TeacherDefaultVipGroupSalary groupSalary = teacherDefaultVipGroupSalaryDao
+                .findByTeacherAndCategory(vipGroup.getVipGroupApplyBaseInfo().getUserId(), vipGroup.getVipGroupApplyBaseInfo().getVipGroupCategoryId());
+        if (groupSalary == null && vipGroup.getVipGroupApplyBaseInfo().getGroupType().equals(GroupType.LIVE.getCode())) {
+            throw new BizException("请设置教师课酬");
+        }
         // 课程时间校验
         Integer totalClassTimes = vipGroupApplyBaseInfoDto.getOnlineClassesNum() + vipGroupApplyBaseInfoDto.getOfflineClassesNum();
         //获取第一节课
@@ -1822,6 +1831,20 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
                 if (!CollectionUtils.isEmpty(groupCoursesUnitPriceMaps)) {
                     groupCoursesUnitPrice = MapUtil.convertIntegerMap(groupCoursesUnitPriceMaps);
                 }
+                // 设置直播课声部
+                List<Integer> subjectIds = dataList.stream().map(o -> o.getSubjectId()).filter(Objects::nonNull).collect(Collectors.toList());
+
+                Map<Integer, Subject> subjectMap = subjectService.getMapByIds(subjectIds);
+                for (VipGroup vipGroup : dataList) {
+                    if (vipGroup.getSubjectId() != null) {
+                        Subject subject = subjectMap.get(vipGroup.getSubjectId());
+                        if (subject != null) {
+                            vipGroup.setSubjectName(subject.getName());
+                        } else if(vipGroup.getSubjectId() == -1){
+                            vipGroup.setSubjectName("乐理");
+                        }
+                    }
+                }
 
                 List<Integer> organIds = dataList.stream().map(VipGroup::getOrganId).collect(Collectors.toList());
                 // 直播课 分部为 organIdList
@@ -4945,14 +4968,15 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 
         SysMessageConfig sysMessageConfig = sysMessageConfigDao.queryByType(MessageTypeEnum.JIGUANG_LIVE_COURSE_START.getCode());
-        String teacherUrl = sysMessageConfig.getUrl();
         sysMessageConfig = sysMessageConfigDao.queryByType(MessageTypeEnum.JIGUANG_LIVE_COURSE_START_STUDENT.getCode());
-        String studentUrl = sysMessageConfig.getUrl();
         sysMessageConfig = sysMessageConfigDao.queryByType(MessageTypeEnum.IM_LIVE_COURSE_START_GROUP.getCode());
-        String imUrl = sysMessageConfig.getUrl();
 
 
         for (CourseSchedule courseSchedule : courseSchedules) {
+            String studentUrl = sysMessageConfig.getUrl();
+            String teacherUrl = sysMessageConfig.getUrl();
+
+            String imUrl = sysMessageConfig.getUrl();
 
             // 获取班级名
             ClassGroup classGroup = classGroupDao.get(courseSchedule.getClassGroupId());

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

@@ -4330,7 +4330,6 @@
         select *
         from course_schedule cs
         where cs.status_ = 'NOT_START'
-          and cs.live_remind_ = 0
           and cs.type_ = 'LIVE'
           and cs.class_date_ = date_format(now(),'%Y-%m-%d')
           and CONCAT(class_date_,' ',start_class_time_)  &lt;= date_format(date_add(now(),interval #{minutes} minute),'%Y-%m-%d %H:%i:%s')

+ 48 - 0
mec-biz/src/main/resources/config/mybatis/LiveGroupPlusMapper.xml

@@ -17,4 +17,52 @@
     </where>
 
     </select>
+
+<select id="liveCoursePage" resultMap="com.ym.mec.biz.dal.dao.CourseScheduleDao.courseScheduleDto">
+    SELECT
+    cs.id_ seal_class_id_,
+    cs.new_course_id_,
+    cg.name_,
+    su.real_name_ teacher_name_,
+    cs.type_,
+    cs.id_,
+    cs.class_group_id_,
+    cs.class_date_,
+    CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
+    CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
+    cs.status_,
+    csts.user_id_ actual_teacher_id_,
+    csts.teacher_role_,
+    cg.expect_student_num_,
+    cs.schoole_id_,
+    s.name_ school_name_,
+    IF(ta.sign_in_status_ IS NULL,3,ta.sign_in_status_) sign_in_status_enum_,
+    IF(ta.sign_out_status_ IS NULL,3,ta.sign_out_status_) sign_out_status_enum_,
+    IF(ta.sign_in_status_ IS NULL,0,1) sign_in_status_,
+    IF(ta.sign_out_status_ IS NULL,0,1) sign_out_status_,
+    cs.teach_mode_,
+    cs.live_room_id_,
+    cs.group_type_,
+    cs.music_group_id_
+    FROM
+    course_schedule_teacher_salary csts
+    LEFT JOIN course_schedule cs ON csts.course_schedule_id_=cs.id_
+    left join im_live_broadcast_room ilbr on ilbr.room_uid_ = cs.live_room_id_
+    LEFT JOIN sys_user su ON csts.user_id_ = su.id_
+    LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
+    LEFT JOIN school s ON cs.schoole_id_ = s.id_
+    LEFT JOIN teacher_attendance ta ON cs.id_=ta.course_schedule_id_ AND ta.teacher_id_=#{param.teacherId}
+    WHERE
+    (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
+    AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
+    and cs.type_ = 'LIVE' and ilbr.os_ = 'client'
+    <if test="param.startTime != null">
+        AND cs.class_date_ &gt;= date_format(#{param.startTime},'%Y-%m-%d')
+    </if>
+    <if test="param.endTime != null">
+        AND cs.class_date_ &lt;= date_format(#{param.endTime},'%Y-%m-%d')
+    </if>
+    AND csts.user_id_ = #{param.teacherId} AND cs.pre_course_flag_ = 0
+    ORDER BY start_class_time_
+    </select>
 </mapper>

+ 4 - 0
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -50,6 +50,7 @@
         <result column="educational_teacher_name_" property="educationalTeacherName" />
         <result column="live_config_json_" property="liveConfigJson" />
         <result column="tenant_id_" property="tenantId" />
+        <result column="subject_id_" property="subjectId" />
     </resultMap>
 
     <resultMap type="com.ym.mec.biz.dal.entity.School" id="School">
@@ -212,6 +213,9 @@
             <if test="groupType != null and groupType != ''">
                 AND vg.group_type_ = #{groupType}
             </if>
+            <if test="subjectId != null">
+                AND vg.subject_id_ = #{subjectId}
+            </if>
         </where>
     </sql>
 

+ 17 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherCourseScheduleController.java

@@ -9,11 +9,13 @@ import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
 import com.ym.mec.biz.dal.page.*;
+import com.ym.mec.biz.dal.wrapper.LiveGroupWrapper;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 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.QueryInfo;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
@@ -374,4 +376,19 @@ public class TeacherCourseScheduleController extends BaseController {
         return succeed(scheduleService.queryStudyStandardWaitVisit(queryInfo));
     }
 
+
+    @ApiOperation(value = "老师乐直播直播课课程列表")
+    @PostMapping("/liveCoursePage")
+    public HttpResponseResult<PageInfo<CourseScheduleDto>> liveCoursePage(LiveGroupWrapper.LiveCoursePageQuery queryInfo){
+
+
+        SysUser user = sysUserService.getUser();
+        if(null == user.getTenantId()){
+            return failed("用户机构信息异常,请联系管理员");
+        }
+        queryInfo.setTeacherId(user.getId());
+        queryInfo.setTenantId(user.getTenantId());
+        return succeed(PageUtil.pageInfo(scheduleService.liveCoursePage(queryInfo)));
+    }
+
 }