|
@@ -196,6 +196,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
@Autowired
|
|
|
private ImLiveBroadcastRoomService imLiveBroadcastRoomService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ImLiveRoomVideoService imLiveRoomVideoService;
|
|
|
|
|
|
@Autowired
|
|
|
private ImLiveRoomVideoDao imLiveRoomVideoDao;
|
|
@@ -1282,6 +1284,18 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
if (count == 0) {
|
|
|
dataList = new ArrayList<>();
|
|
|
}
|
|
|
+
|
|
|
+ // 直播课判断时间,提前30分钟将课程改为进行中
|
|
|
+
|
|
|
+ Integer studentRemindTime = Integer.parseInt(sysConfigService.findByParamName(SysConfigService.LIVE_CLASS_START_REMIND_TIME).getParanValue());
|
|
|
+ for (CourseScheduleDto record : dataList) {
|
|
|
+ if (CourseScheduleType.LIVE.equals(record.getType()) && CourseStatusEnum.NOT_START.equals(record.getStatus())) {
|
|
|
+ Date date = DateUtil.addMinutes(new Date(), studentRemindTime);
|
|
|
+ if (date.after(record.getStartClassTime())) {
|
|
|
+ record.setStatus(CourseStatusEnum.UNDERWAY);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
pageInfo.setRows(dataList);
|
|
|
return pageInfo;
|
|
|
}
|
|
@@ -1302,16 +1316,15 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
cs.getType().equals(CourseScheduleType.COMM))
|
|
|
.map(CourseScheduleDto::getId).collect(Collectors.toList());
|
|
|
|
|
|
- List<CourseScheduleDto> teacherCourseSchedulesWithDate1 = getTeacherCourseFormat(userId, classDate, tenantId, now,
|
|
|
+ return getTeacherCourseFormat(userId, classDate, tenantId,
|
|
|
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) {
|
|
|
+ private List<CourseScheduleDto> getTeacherCourseFormat(Integer userId, Date classDate, Integer tenantId,
|
|
|
+ List<CourseScheduleDto> teacherCourseSchedulesWithDate, List<Long> allCourseScheduleIds,
|
|
|
+ List<Long> courseScheduleIds) {
|
|
|
// 直播课设置直播间信息
|
|
|
Map<String, ImLiveBroadcastRoomDto> liveRoomMap = getLiveRoomMap(teacherCourseSchedulesWithDate);
|
|
|
|
|
@@ -1406,6 +1419,32 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
courseScheduleDto.setOs(courseScheduleDto.getLiveBroadcastRoom().getOs());
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ // roomId
|
|
|
+ List<String> roomIdList = teacherCourseSchedulesWithDate.stream().map(CourseScheduleDto::getLiveRoomId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 查询直播间视频数
|
|
|
+ Map<String, Integer> uidCountMap = imLiveRoomVideoService.queryRoomUidCountMap(roomIdList);
|
|
|
+ for (CourseScheduleDto record : teacherCourseSchedulesWithDate) {
|
|
|
+ if (Objects.isNull(record.getLiveRoomId())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ Integer count = uidCountMap.get(record.getLiveRoomId());
|
|
|
+ if (count == null) {
|
|
|
+ record.setVideoNum(0);
|
|
|
+ }
|
|
|
+ record.setVideoNum(count);
|
|
|
+ }
|
|
|
+ // 直播课判断时间,提前30分钟将课程改为进行中
|
|
|
+ Integer studentRemindTime = Integer.parseInt(sysConfigService.findByParamName(SysConfigService.LIVE_CLASS_START_REMIND_TIME).getParanValue());
|
|
|
+ for (CourseScheduleDto record : teacherCourseSchedulesWithDate) {
|
|
|
+ if (CourseScheduleType.LIVE.equals(record.getType()) && CourseStatusEnum.NOT_START.equals(record.getStatus())) {
|
|
|
+ Date date = DateUtil.addMinutes(new Date(), studentRemindTime);
|
|
|
+ if (date.after(record.getStartClassTime())) {
|
|
|
+ record.setStatus(CourseStatusEnum.UNDERWAY);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
return teacherCourseSchedulesWithDate;
|
|
|
}
|
|
|
|
|
@@ -5908,7 +5947,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
// 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);
|
|
|
+ queryInfo.getTenantId(), courseScheduleDtos, courseIds, courseIds);
|
|
|
|
|
|
return page.setRecords(teacherCourseFormat);
|
|
|
}
|