| 
					
				 | 
			
			
				@@ -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()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //机构专辑简介 
			 |