|
@@ -500,56 +500,43 @@ public class UserTenantAlbumRecordServiceImpl extends ServiceImpl<UserTenantAlbu
|
|
|
String name = tenantAlbum.getName();
|
|
|
//机构专辑封面
|
|
|
String coverImg = tenantAlbum.getCoverImg();
|
|
|
- //机构专辑曲目数
|
|
|
- List<TenantAlbumMusic> tenantAlbumMusiclist = tenantAlbumMusicMapper.getByAlbumAndEnable(Lists.newArrayList(tenantAlbumId));
|
|
|
- // 过滤出曲目
|
|
|
- List<SubjectTypeEnum> enumList = com.beust.jcommander.internal.Lists.newArrayList(SubjectTypeEnum.MUSIC, SubjectTypeEnum.SUBJECT, SubjectTypeEnum.ENSEMBLE);
|
|
|
- List<Long> MusicSheetIds = tenantAlbumMusiclist.stream().filter(o->enumList.contains(o.getSubjectType()))
|
|
|
- .map(TenantAlbumMusic::getMusicSheetId).distinct().collect(Collectors.toList());
|
|
|
-
|
|
|
- List<Long> coursewareIds = tenantAlbumMusiclist.stream().filter(o->o.getSubjectType() == SubjectTypeEnum.COURSEWARE)
|
|
|
- .map(TenantAlbumMusic::getMusicSheetId).distinct().collect(Collectors.toList());
|
|
|
- CbsLessonCoursewareWrapper.LambdaQuery lambdaQuery = CbsLessonCoursewareWrapper.LambdaQuery.builder().ids(coursewareIds)
|
|
|
- .delFlag(false).enableFlag(true).build();
|
|
|
- List<CbsLessonCoursewareWrapper.Entity> entities = coursewareFeignService.lessonCoursewareLambdaQuery(lambdaQuery).feignData();
|
|
|
- if (CollectionUtils.isNotEmpty(entities)) {
|
|
|
- // id 集合
|
|
|
- List<Long> courseIds = entities.stream().map(CbsLessonCoursewareWrapper.Entity::getId).collect(Collectors.toList());
|
|
|
- // list 去除类型为COURSEWARE,id 不在courseIds
|
|
|
- album.setCoursewareCounts(courseIds.size());
|
|
|
- } else {
|
|
|
- album.setCoursewareCounts(0);
|
|
|
- }
|
|
|
|
|
|
- //计算符合条件的个数
|
|
|
- if (CollectionUtils.isNotEmpty(MusicSheetIds)) {
|
|
|
- size = musicSheetService.lambdaQuery().in(MusicSheet::getId, MusicSheetIds).eq(MusicSheet::getState, true)
|
|
|
- .eq(MusicSheet::getDelFlag, false).count();
|
|
|
+ List<TenantAlbumMusic> albumMusicList = tenantAlbumMusicMapper.getByAlbumAndEnable(tenantAlbumIds);
|
|
|
+ // 过滤出课件
|
|
|
+ List<Long> coursewareIds = albumMusicList.stream().filter(x -> x.getSubjectType() == SubjectTypeEnum.COURSEWARE).map(TenantAlbumMusic::getMusicSheetId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (CollectionUtils.isNotEmpty(coursewareIds)) {
|
|
|
+ CbsLessonCoursewareWrapper.LambdaQuery lambdaQuery = CbsLessonCoursewareWrapper.LambdaQuery.builder().ids(coursewareIds)
|
|
|
+ .delFlag(false).enableFlag(true).build();
|
|
|
+ List<CbsLessonCoursewareWrapper.Entity> entities = coursewareFeignService.lessonCoursewareLambdaQuery(lambdaQuery).feignData();
|
|
|
+ if (CollectionUtils.isNotEmpty(entities)) {
|
|
|
+ // id 集合
|
|
|
+ List<Long> courseIds = entities.stream().map(CbsLessonCoursewareWrapper.Entity::getId).collect(Collectors.toList());
|
|
|
+ // list 去除类型为COURSEWARE,id 不在courseIds
|
|
|
+ albumMusicList = albumMusicList.stream().filter(x -> x.getSubjectType() != SubjectTypeEnum.COURSEWARE || courseIds.contains(x.getMusicSheetId())).collect(Collectors.toList());
|
|
|
+ } else {
|
|
|
+ albumMusicList = albumMusicList.stream().filter(x -> x.getSubjectType() != SubjectTypeEnum.COURSEWARE).collect(Collectors.toList());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- //获取合奏曲目数量
|
|
|
- List<TenantAlbumMusic> ensembleLits = tenantAlbumMusicService.lambdaQuery().eq(TenantAlbumMusic::getSubjectType, "ENSEMBLE")
|
|
|
- .eq(TenantAlbumMusic::getTenantAlbumId, tenantAlbumId)
|
|
|
- .eq(TenantAlbumMusic::getDelFlag, false).list();
|
|
|
- List<Long> ensembleMusicSheetIds = ensembleLits.stream().map(TenantAlbumMusic::getMusicSheetId).distinct().collect(Collectors.toList());
|
|
|
-
|
|
|
- album.setEnsembleCounts(ensembleMusicSheetIds.size());
|
|
|
|
|
|
- //获取小曲目的曲目数量
|
|
|
- List<TenantAlbumMusic> musicLists = tenantAlbumMusicService.lambdaQuery().eq(TenantAlbumMusic::getSubjectType, "MUSIC")
|
|
|
- .eq(TenantAlbumMusic::getTenantAlbumId, tenantAlbumId)
|
|
|
- .eq(TenantAlbumMusic::getDelFlag, false).list();
|
|
|
- List<Long> musicSheetIds = musicLists.stream().map(TenantAlbumMusic::getMusicSheetId).distinct().collect(Collectors.toList());
|
|
|
-
|
|
|
- album.setMusicCounts(musicSheetIds.size());
|
|
|
-
|
|
|
- //获取声部的曲目数量
|
|
|
- List<TenantAlbumMusic> subjectLists = tenantAlbumMusicService.lambdaQuery().eq(TenantAlbumMusic::getSubjectType, "SUBJECT")
|
|
|
- .eq(TenantAlbumMusic::getTenantAlbumId, tenantAlbumId)
|
|
|
- .eq(TenantAlbumMusic::getDelFlag, false).list();
|
|
|
- List<Long> subjectSheetIds = subjectLists.stream().map(TenantAlbumMusic::getMusicSheetId).distinct().collect(Collectors.toList());
|
|
|
+ // 根据专辑ID分组 在根据声部分类 分组
|
|
|
+ Map<Long, Map<SubjectTypeEnum, Long>> map = albumMusicList.stream()
|
|
|
+ .collect(Collectors.groupingBy(TenantAlbumMusic::getTenantAlbumId, Collectors.groupingBy(TenantAlbumMusic::getSubjectType,Collectors.counting())));
|
|
|
|
|
|
- album.setSubjectCounts(subjectSheetIds.size());
|
|
|
+ Map<SubjectTypeEnum, Long> subjectTypeEnumLongMap = map.get(tenantAlbum.getId());
|
|
|
+ if (subjectTypeEnumLongMap != null) {
|
|
|
+ album.setMusicCounts(subjectTypeEnumLongMap.getOrDefault(SubjectTypeEnum.MUSIC,0L).intValue());
|
|
|
+ album.setEnsembleCounts(subjectTypeEnumLongMap.getOrDefault(SubjectTypeEnum.ENSEMBLE,0L).intValue());
|
|
|
+ album.setSubjectCounts(subjectTypeEnumLongMap.getOrDefault(SubjectTypeEnum.SUBJECT,0L).intValue());
|
|
|
+ album.setCoursewareCounts(subjectTypeEnumLongMap.getOrDefault(SubjectTypeEnum.COURSEWARE,0L).intValue());
|
|
|
+ } else {
|
|
|
+ album.setMusicCounts(0);
|
|
|
+ album.setEnsembleCounts(0);
|
|
|
+ album.setSubjectCounts(0);
|
|
|
+ album.setCoursewareCounts(0);
|
|
|
+ }
|
|
|
+ album.setMusicNum(album.getMusicCounts() + album.getEnsembleCounts()+album.getSubjectCounts());
|
|
|
|
|
|
|
|
|
//机构专辑简介
|