|
@@ -317,49 +317,51 @@ public class SubjectServiceImpl extends BaseServiceImpl<Long, Subject> implement
|
|
pageInfo.setTotal(count);
|
|
pageInfo.setTotal(count);
|
|
params.put("offset", pageInfo.getOffset());
|
|
params.put("offset", pageInfo.getOffset());
|
|
dataList = subjectDao.findPage(params);
|
|
dataList = subjectDao.findPage(params);
|
|
- // 转map
|
|
|
|
- Map<Long, SubjectWrapper.Subject> subjectMap = dataList.stream().collect(Collectors.toMap(SubjectWrapper.Subject::getCbsSubjectId, Function.identity(),(o1, o2)->o1));
|
|
|
|
- // cbs声部ID集合
|
|
|
|
- List<Long> cbsSubjectIds = dataList.stream().map(SubjectWrapper.Subject::getCbsSubjectId).collect(Collectors.toList());
|
|
|
|
- dataList = new ArrayList<>();
|
|
|
|
- CbsSubjectWrapper.SubjectQuery subjectQuery = new CbsSubjectWrapper.SubjectQuery();
|
|
|
|
- subjectQuery.setIds(cbsSubjectIds);
|
|
|
|
- subjectQuery.setName(query.getKeyword());
|
|
|
|
- subjectQuery.setPage(query.getPage());
|
|
|
|
- subjectQuery.setRows(query.getRows());
|
|
|
|
- try {
|
|
|
|
- com.microsvc.toolkit.common.response.paging.PageInfo<CbsSubjectWrapper.Subject> subjectPageInfo = musicFeignClientService.subjectPage(subjectQuery).feignData();
|
|
|
|
- List<CbsSubjectWrapper.Subject> rows = subjectPageInfo.getRows();
|
|
|
|
- if (org.apache.commons.collections.CollectionUtils.isNotEmpty(rows)) {
|
|
|
|
- for (CbsSubjectWrapper.Subject row : rows) {
|
|
|
|
- SubjectWrapper.Subject subject = subjectMap.get(row.getId());
|
|
|
|
- if (subject == null) {
|
|
|
|
- log.warn("未查询到声部信息,id:{}", row.getId());
|
|
|
|
- continue;
|
|
|
|
|
|
+ if(query.getParentSubjectId() == null){
|
|
|
|
+ // 转map
|
|
|
|
+ Map<Long, SubjectWrapper.Subject> subjectMap = dataList.stream().collect(Collectors.toMap(SubjectWrapper.Subject::getCbsSubjectId, Function.identity(),(o1, o2)->o1));
|
|
|
|
+ // cbs声部ID集合
|
|
|
|
+ List<Long> cbsSubjectIds = dataList.stream().map(SubjectWrapper.Subject::getCbsSubjectId).collect(Collectors.toList());
|
|
|
|
+ dataList = new ArrayList<>();
|
|
|
|
+ CbsSubjectWrapper.SubjectQuery subjectQuery = new CbsSubjectWrapper.SubjectQuery();
|
|
|
|
+ subjectQuery.setIds(cbsSubjectIds);
|
|
|
|
+ subjectQuery.setName(query.getKeyword());
|
|
|
|
+ subjectQuery.setPage(query.getPage());
|
|
|
|
+ subjectQuery.setRows(query.getRows());
|
|
|
|
+ try {
|
|
|
|
+ com.microsvc.toolkit.common.response.paging.PageInfo<CbsSubjectWrapper.Subject> subjectPageInfo = musicFeignClientService.subjectPage(subjectQuery).feignData();
|
|
|
|
+ List<CbsSubjectWrapper.Subject> rows = subjectPageInfo.getRows();
|
|
|
|
+ if (org.apache.commons.collections.CollectionUtils.isNotEmpty(rows)) {
|
|
|
|
+ for (CbsSubjectWrapper.Subject row : rows) {
|
|
|
|
+ SubjectWrapper.Subject subject = subjectMap.get(row.getId());
|
|
|
|
+ if (subject == null) {
|
|
|
|
+ log.warn("未查询到声部信息,id:{}", row.getId());
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ subject.setCbsSubjectName(row.getName());
|
|
|
|
+ subject.setName(row.getName());
|
|
|
|
+ subject.setCode(row.getCode());
|
|
|
|
+ dataList.add(subject);
|
|
}
|
|
}
|
|
- subject.setCbsSubjectName(row.getName());
|
|
|
|
- subject.setName(row.getName());
|
|
|
|
- subject.setCode(row.getCode());
|
|
|
|
- dataList.add(subject);
|
|
|
|
}
|
|
}
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ log.error("调用音乐服务查询曲目详情失败", e);
|
|
}
|
|
}
|
|
- } catch (Exception e) {
|
|
|
|
- log.error("调用音乐服务查询曲目详情失败", e);
|
|
|
|
|
|
+ // 设置声部下的乐器信息
|
|
|
|
+ List<Integer> subjectIds = dataList.stream().map(SubjectWrapper.Subject::getId).distinct().collect(Collectors.toList());
|
|
|
|
+ Map<Integer, List<InstrumentWrapper.Instrument>> groupBySubjectId = instrumentService.getGroupBySubjectId(subjectIds, query.getEnableFlag());
|
|
|
|
+ Map<Long, Subject> map = this.findBySubjectByIdList(dataList.stream().map(SubjectWrapper.Subject::getParentSubjectId).collect(Collectors.toList())).stream()
|
|
|
|
+ .collect(Collectors.toMap(Subject::getId, t -> t));
|
|
|
|
+ dataList.forEach(e -> {
|
|
|
|
+ if(e.getParentSubjectId() != null && e.getParentSubjectId() > 0) {
|
|
|
|
+ e.setParentSubjectName(map.get(e.getParentSubjectId()).getName());
|
|
|
|
+ }
|
|
|
|
+ List<InstrumentWrapper.Instrument> instruments = groupBySubjectId.get(e.getId());
|
|
|
|
+ if (org.apache.commons.collections.CollectionUtils.isNotEmpty(instruments)) {
|
|
|
|
+ e.setInstruments(instruments);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
}
|
|
}
|
|
- // 设置声部下的乐器信息
|
|
|
|
- List<Integer> subjectIds = dataList.stream().map(SubjectWrapper.Subject::getId).distinct().collect(Collectors.toList());
|
|
|
|
- Map<Integer, List<InstrumentWrapper.Instrument>> groupBySubjectId = instrumentService.getGroupBySubjectId(subjectIds, query.getEnableFlag());
|
|
|
|
- Map<Long, Subject> map = this.findBySubjectByIdList(dataList.stream().map(SubjectWrapper.Subject::getParentSubjectId).collect(Collectors.toList())).stream()
|
|
|
|
- .collect(Collectors.toMap(Subject::getId, t -> t));
|
|
|
|
- dataList.forEach(e -> {
|
|
|
|
- if(e.getParentSubjectId() != null && e.getParentSubjectId() > 0) {
|
|
|
|
- e.setParentSubjectName(map.get(e.getParentSubjectId()).getName());
|
|
|
|
- }
|
|
|
|
- List<InstrumentWrapper.Instrument> instruments = groupBySubjectId.get(e.getId());
|
|
|
|
- if (org.apache.commons.collections.CollectionUtils.isNotEmpty(instruments)) {
|
|
|
|
- e.setInstruments(instruments);
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
}
|
|
}
|
|
if (count == 0) {
|
|
if (count == 0) {
|
|
dataList = new ArrayList<>();
|
|
dataList = new ArrayList<>();
|