|  | @@ -500,56 +500,43 @@ public class UserTenantAlbumRecordServiceImpl extends ServiceImpl<UserTenantAlbu
 | 
											
												
													
														|  |          String name = tenantAlbum.getName();
 |  |          String name = tenantAlbum.getName();
 | 
											
												
													
														|  |          //机构专辑封面
 |  |          //机构专辑封面
 | 
											
												
													
														|  |          String coverImg = tenantAlbum.getCoverImg();
 |  |          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());
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          //机构专辑简介
 |  |          //机构专辑简介
 |