|
@@ -43,6 +43,7 @@ import java.math.BigDecimal;
|
|
|
import java.time.*;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
|
+import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import static com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType.*;
|
|
@@ -164,6 +165,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
private CooperationOrganService cooperationOrganService;
|
|
|
@Autowired
|
|
|
private ClassGroupTeacherMapperDao classGroupTeacherMapperDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ImLiveBroadcastRoomMemberService imLiveBroadcastRoomMemberService;
|
|
|
+
|
|
|
@Override
|
|
|
public BaseDAO<Integer, ClassGroup> getDAO() {
|
|
|
return classGroupDao;
|
|
@@ -1898,8 +1903,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
truantStudent.addAll(otherStudent);
|
|
|
truantStudent.addAll(leaveStudent);
|
|
|
Set<Long> collect = truantStudent.stream().map(e -> e.getStudentId()).collect(Collectors.toSet());
|
|
|
+ CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleId);
|
|
|
if (!CollectionUtils.isEmpty(truantStudent)) {
|
|
|
- CourseSchedule schedule = courseScheduleDao.get(courseScheduleId);
|
|
|
+ CourseSchedule schedule = courseSchedule;
|
|
|
if (schedule.getGroupType() == MUSIC) {
|
|
|
Map<Integer, String> paymentStatusMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.queryUserCoursePaymentStatus(collect, schedule.getMusicGroupId()));
|
|
|
|
|
@@ -1949,6 +1955,22 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
+ // 如果是直播课 查询观看时长
|
|
|
+ if(courseSchedule.getGroupType().equals(GroupType.LIVE)) {
|
|
|
+ List<ImLiveBroadcastRoomMember> memberList = imLiveBroadcastRoomMemberService.getByRoomUidAndUserIds(courseSchedule.getLiveRoomId(), collect);
|
|
|
+ if (!CollectionUtils.isEmpty(memberList)) {
|
|
|
+ Map<Integer, ImLiveBroadcastRoomMember> memberMap = memberList.stream().collect(Collectors.toMap(ImLiveBroadcastRoomMember::getUserId, Function.identity()));
|
|
|
+ truantStudent.forEach(studentAttendanceViewDto -> {
|
|
|
+ ImLiveBroadcastRoomMember member = memberMap.get(studentAttendanceViewDto.getStudentId().intValue());
|
|
|
+ if (member != null) {
|
|
|
+ studentAttendanceViewDto.setWatchTime(member.getTotalTime());
|
|
|
+ }else {
|
|
|
+ studentAttendanceViewDto.setWatchTime(0);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
return truantStudent;
|
|
|
}
|
|
|
|