|
@@ -1,5 +1,6 @@
|
|
|
package com.yonge.cooleshow.biz.dal.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.util.NumberUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
@@ -34,6 +35,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
+import java.util.stream.Stream;
|
|
|
|
|
|
/**
|
|
|
* 机构专辑曲目
|
|
@@ -105,20 +107,6 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
|
|
|
TenantAlbumMusicWrapper.StudentTenantAlbumMusicQuery query) {
|
|
|
List<TenantAlbumMusicWrapper.StudentTenantAlbumMusic> musicSheets = new ArrayList<>();
|
|
|
if (query.getSubjectType() != SubjectTypeEnum.COURSEWARE) {
|
|
|
- // 如果分类不为空,查询分类下的曲目
|
|
|
- List<Long> categoryIds = new ArrayList<>();
|
|
|
- if (query.getCategoryId() !=null) {
|
|
|
- } else {
|
|
|
- Long categoryId = getCategoryId(query.getSubjectType().name());
|
|
|
- query.setCategoryId(categoryId);
|
|
|
- }
|
|
|
- MusicSheetCategoriesWrapper.MusicSheetCategories musicSheetCategories = musicFeignClientService.getChildTreeById(query.getCategoryId()).feignData();
|
|
|
-
|
|
|
- categoryIds.add(query.getCategoryId());
|
|
|
- if (musicSheetCategories !=null) {
|
|
|
- formatCategory(categoryIds, musicSheetCategories.getMusicSheetCategoriesList());
|
|
|
- }
|
|
|
- query.setCategoryIds(categoryIds);
|
|
|
|
|
|
musicSheets = tenantAlbumMusicMapper.selectPage(page, query);
|
|
|
if (CollectionUtils.isEmpty(musicSheets)) {
|
|
@@ -227,16 +215,6 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
|
|
|
return page.setRecords(musicSheets);
|
|
|
}
|
|
|
|
|
|
- private void formatCategory(List<Long> categoryIds, List<MusicSheetCategoriesWrapper.MusicSheetCategories> musicSheetCategoriesList) {
|
|
|
- if (CollectionUtils.isEmpty(musicSheetCategoriesList)) {
|
|
|
- return;
|
|
|
- }
|
|
|
- for (MusicSheetCategoriesWrapper.MusicSheetCategories musicSheetCategories : musicSheetCategoriesList) {
|
|
|
- categoryIds.add(musicSheetCategories.getId());
|
|
|
- formatCategory(categoryIds,musicSheetCategories.getMusicSheetCategoriesList());
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 添加
|
|
|
* @param tenantAlbumMusic TenantAlbumMusicWrapper.TenantAlbumMusic
|
|
@@ -307,46 +285,32 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
- // 获取曲目所有分类
|
|
|
- List<Long> categoryIds = musicSheets.stream().map(MusicSheet::getTenantCategoryId)
|
|
|
- .filter(StringUtils::isNotBlank).map(Long::parseLong).distinct().collect(Collectors.toList());
|
|
|
-
|
|
|
-
|
|
|
- // 查询分类
|
|
|
- MusicSheetCategoriesWrapper.MusicSheetCategories musicSheetCategories = musicFeignClientService.getChildTreeById(getCategoryId(query.getSubjectType().name())).feignData();
|
|
|
-
|
|
|
- // 过滤掉不存在的分类
|
|
|
- List<Long> ids = new ArrayList<>();
|
|
|
- getCategory(musicSheetCategories.getMusicSheetCategoriesList(),categoryIds,ids);
|
|
|
- filterCategory(musicSheetCategories.getMusicSheetCategoriesList(),ids);
|
|
|
- data.setCategoyList(musicSheetCategories.getMusicSheetCategoriesList());
|
|
|
-
|
|
|
// 类型
|
|
|
-// List<Long> typeIds =list.stream().map(TenantAlbumMusic::getType).distinct().filter(StringUtils::isNotBlank)
|
|
|
-// .filter(NumberUtil::isNumber).map(Long::valueOf).collect(Collectors.toList());
|
|
|
-// if (!typeIds.isEmpty()) {
|
|
|
-// List<TenantAlbumCategoryDetail> typeList = tenantAlbumCategoryDetailService.lambdaQuery()
|
|
|
-// .in(TenantAlbumCategoryDetail::getId, typeIds).list();
|
|
|
-// List<String> typeNameList = typeList.stream()
|
|
|
-// .map(TenantAlbumCategoryDetail::getValue).collect(Collectors.toList());
|
|
|
-// data.setTypes(typeNameList);
|
|
|
-// data.setTypeList(typeList);
|
|
|
-// } else {
|
|
|
-// data.setTypes(new ArrayList<>());
|
|
|
-// }
|
|
|
-// // 级别
|
|
|
-// List<Long> levelIds =list.stream().map(TenantAlbumMusic::getLevel).distinct().filter(StringUtils::isNotBlank)
|
|
|
-// .filter(NumberUtil::isNumber).map(Long::valueOf).collect(Collectors.toList());
|
|
|
-// if (!levelIds.isEmpty()) {
|
|
|
-// List<TenantAlbumCategoryDetail> levelList = tenantAlbumCategoryDetailService.lambdaQuery()
|
|
|
-// .in(TenantAlbumCategoryDetail::getId, levelIds).list();
|
|
|
-// List<String> levelNameList = levelList.stream()
|
|
|
-// .map(TenantAlbumCategoryDetail::getValue).collect(Collectors.toList());
|
|
|
-// data.setLevels(levelNameList);
|
|
|
-// data.setLevelList(levelList);
|
|
|
-// } else {
|
|
|
-// data.setLevels(new ArrayList<>());
|
|
|
-// }
|
|
|
+ List<Long> typeIds =list.stream().map(TenantAlbumMusic::getType).distinct().filter(StringUtils::isNotBlank)
|
|
|
+ .filter(NumberUtil::isNumber).map(Long::valueOf).collect(Collectors.toList());
|
|
|
+ if (!typeIds.isEmpty()) {
|
|
|
+ List<TenantAlbumCategoryDetail> typeList = tenantAlbumCategoryDetailService.lambdaQuery()
|
|
|
+ .in(TenantAlbumCategoryDetail::getId, typeIds).list();
|
|
|
+ List<String> typeNameList = typeList.stream()
|
|
|
+ .map(TenantAlbumCategoryDetail::getValue).collect(Collectors.toList());
|
|
|
+ data.setTypes(typeNameList);
|
|
|
+ data.setTypeList(typeList);
|
|
|
+ } else {
|
|
|
+ data.setTypes(new ArrayList<>());
|
|
|
+ }
|
|
|
+ // 级别
|
|
|
+ List<Long> levelIds =list.stream().map(TenantAlbumMusic::getLevel).distinct().filter(StringUtils::isNotBlank)
|
|
|
+ .filter(NumberUtil::isNumber).map(Long::valueOf).collect(Collectors.toList());
|
|
|
+ if (!levelIds.isEmpty()) {
|
|
|
+ List<TenantAlbumCategoryDetail> levelList = tenantAlbumCategoryDetailService.lambdaQuery()
|
|
|
+ .in(TenantAlbumCategoryDetail::getId, levelIds).list();
|
|
|
+ List<String> levelNameList = levelList.stream()
|
|
|
+ .map(TenantAlbumCategoryDetail::getValue).collect(Collectors.toList());
|
|
|
+ data.setLevels(levelNameList);
|
|
|
+ data.setLevelList(levelList);
|
|
|
+ } else {
|
|
|
+ data.setLevels(new ArrayList<>());
|
|
|
+ }
|
|
|
|
|
|
// 声部
|
|
|
String subjectIds = musicSheets.stream()
|
|
@@ -376,59 +340,6 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
|
|
|
|
|
|
}
|
|
|
|
|
|
- private void filterCategory(List<MusicSheetCategoriesWrapper.MusicSheetCategories> musicSheetCategoriesList, List<Long> ids) {
|
|
|
- if (CollectionUtils.isEmpty(musicSheetCategoriesList)) {
|
|
|
- return;
|
|
|
- }
|
|
|
- for (int i = 0; i < musicSheetCategoriesList.size(); i++) {
|
|
|
- MusicSheetCategoriesWrapper.MusicSheetCategories musicSheetCategories = musicSheetCategoriesList.get(i);
|
|
|
- if (!ids.contains(musicSheetCategories.getId())) {
|
|
|
- musicSheetCategoriesList.remove(i);
|
|
|
- i--;
|
|
|
- continue;
|
|
|
- }
|
|
|
- if (CollectionUtils.isNotEmpty(musicSheetCategories.getMusicSheetCategoriesList())) {
|
|
|
- filterCategory(musicSheetCategories.getMusicSheetCategoriesList(), ids);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private boolean getCategory(List<MusicSheetCategoriesWrapper.MusicSheetCategories> musicSheetCategoriesList,
|
|
|
- List<Long> categoryIds, List<Long> result) {
|
|
|
- boolean flag = false;
|
|
|
- if (CollectionUtils.isEmpty(musicSheetCategoriesList)) {
|
|
|
- return flag;
|
|
|
- }
|
|
|
- for (MusicSheetCategoriesWrapper.MusicSheetCategories musicSheetCategories : musicSheetCategoriesList) {
|
|
|
- if (categoryIds.contains(musicSheetCategories.getId())) {
|
|
|
- result.add(musicSheetCategories.getId());
|
|
|
- flag = true;
|
|
|
- }
|
|
|
- if (CollectionUtils.isNotEmpty(musicSheetCategories.getMusicSheetCategoriesList())) {
|
|
|
- boolean b = getCategory(musicSheetCategories.getMusicSheetCategoriesList(), categoryIds, result);
|
|
|
- if (b) {
|
|
|
- result.add(musicSheetCategories.getId());
|
|
|
- }
|
|
|
- flag = flag || b;
|
|
|
- }
|
|
|
- }
|
|
|
- return flag;
|
|
|
- }
|
|
|
-
|
|
|
- private Long getCategoryId(String subjectType) {
|
|
|
- if (StringUtils.isBlank(subjectType)) {
|
|
|
- return null;
|
|
|
- }
|
|
|
- if (SubjectTypeEnum.SUBJECT.name().equals(subjectType)) {
|
|
|
- return Long.parseLong(sysConfigService.findConfigValue(SysConfigConstant.TENANT_ALBUM_SUBJECT_TYPE_CATEGORY));
|
|
|
- } else if (SubjectTypeEnum.ENSEMBLE.name().equals(subjectType)) {
|
|
|
- return Long.parseLong(sysConfigService.findConfigValue(SysConfigConstant.TENANT_ALBUM_ENSEMBLE_TYPE_CATEGORY));
|
|
|
- } if (SubjectTypeEnum.MUSIC.name().equals(subjectType)) {
|
|
|
- return Long.parseLong(sysConfigService.findConfigValue(SysConfigConstant.TENANT_ALBUM_MUSIC_TYPE_CATEGORY));
|
|
|
- }
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
private List<ECourseType> courseTypeBySubject(Long subjectId) {
|
|
|
List<ECourseType> courseTypeList = new ArrayList<>();
|
|
|
|