|
@@ -2,8 +2,6 @@ package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
-import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.beust.jcommander.internal.Lists;
|
|
|
import com.dayaedu.cbs.common.enums.EClientType;
|
|
|
import com.dayaedu.cbs.common.enums.music.EAudioType;
|
|
@@ -15,6 +13,7 @@ import com.dayaedu.cbs.domain.wrapper.MusicSheetWrapper;
|
|
|
import com.dayaedu.cbs.openfeign.client.MusicFeignClientService;
|
|
|
import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetApplicationExtendClientWrapper;
|
|
|
import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
|
|
|
+import com.dayaedu.cbs.openfeign.wrapper.musicInstrument.CbsMusicalInstrumentWrapper;
|
|
|
import com.microsvc.toolkit.common.response.template.R;
|
|
|
import com.ym.mec.biz.dal.dao.SysMusicScoreAccompanimentDao;
|
|
|
import com.ym.mec.biz.dal.dao.SysMusicScoreCategoriesDao;
|
|
@@ -26,7 +25,10 @@ import com.ym.mec.biz.dal.entity.SysMusicScoreAccompaniment;
|
|
|
import com.ym.mec.biz.dal.entity.SysMusicScoreCategories;
|
|
|
import com.ym.mec.biz.dal.enums.YesOrNoEnum;
|
|
|
import com.ym.mec.biz.dal.page.SysExamSongQueryInfo;
|
|
|
-import com.ym.mec.biz.service.*;
|
|
|
+import com.ym.mec.biz.service.OrganizationService;
|
|
|
+import com.ym.mec.biz.service.SubjectService;
|
|
|
+import com.ym.mec.biz.service.SysMusicScoreCategoriesService;
|
|
|
+import com.ym.mec.biz.service.SysMusicScoreService;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
import com.ym.mec.common.exception.BizException;
|
|
|
import com.ym.mec.common.page.PageInfo;
|
|
@@ -116,6 +118,21 @@ public class SysMusicScoreServiceImpl extends BaseServiceImpl<Integer, SysMusicS
|
|
|
return new ArrayList<>();
|
|
|
}
|
|
|
|
|
|
+ //获取乐器名称
|
|
|
+ @Override
|
|
|
+ public List<CbsMusicalInstrumentWrapper.MusicalInstrumentQueryDto> queryMusicalInstrument(List<Integer> musicalInstrumentIds){
|
|
|
+ //获取乐器名称
|
|
|
+ CbsMusicalInstrumentWrapper.MusicalInstrumentQuery musicalInstrumentQuery = new CbsMusicalInstrumentWrapper.MusicalInstrumentQuery();
|
|
|
+ musicalInstrumentQuery.setIds(musicalInstrumentIds);
|
|
|
+ musicalInstrumentQuery.setPage(1);
|
|
|
+ musicalInstrumentQuery.setRows(musicalInstrumentIds.size());
|
|
|
+ R<com.microsvc.toolkit.common.response.paging.PageInfo<CbsMusicalInstrumentWrapper.MusicalInstrumentQueryDto>> infoR = musicFeignClientService.musicalInstrumentPage(musicalInstrumentQuery);
|
|
|
+ if(infoR.getCode() != 200){
|
|
|
+ throw new com.microsvc.toolkit.common.webportal.exception.BizException("获取乐器信息失败,{}",infoR.getMessage());
|
|
|
+ }
|
|
|
+ return infoR.getData().getRows();
|
|
|
+ }
|
|
|
+
|
|
|
private void dealMusicScoreData(List<SysMusicScore> records){
|
|
|
if (CollectionUtils.isNotEmpty(records)) {
|
|
|
List<String> cbsMusicSheetIds = records.stream().map(SysMusicScore::getCbsMusicSheetId).collect(Collectors.toList());
|
|
@@ -132,19 +149,26 @@ public class SysMusicScoreServiceImpl extends BaseServiceImpl<Integer, SysMusicS
|
|
|
}
|
|
|
Map<Long, CbsMusicSheetWrapper.MusicSheetApplication> musicSheetApplicationMap = applications
|
|
|
.stream().collect(Collectors.toMap(CbsMusicSheetWrapper.MusicSheetApplication::getId, Function.identity()));
|
|
|
+
|
|
|
+ //获取乐器名称
|
|
|
+ String instrumentIds = applications.stream().map(CbsMusicSheetWrapper.MusicSheetApplication::getMusicalInstrumentIds).collect(Collectors.joining(","));
|
|
|
+ List<CbsMusicalInstrumentWrapper.MusicalInstrumentQueryDto> musicalInstrumentQueryDtos =
|
|
|
+ this.queryMusicalInstrument(Arrays.stream(instrumentIds.split(",")).map(Integer::parseInt).distinct().collect(Collectors.toList()));
|
|
|
+ Map<Integer,CbsMusicalInstrumentWrapper.MusicalInstrumentQueryDto> musicalInstrumentQueryMap = musicalInstrumentQueryDtos.stream()
|
|
|
+ .collect(Collectors.toMap(CbsMusicalInstrumentWrapper.MusicalInstrumentQueryDto::getId, o -> o, (o1, o2) -> o1));
|
|
|
for (SysMusicScore record : records) {
|
|
|
record.setCategoriesName(map.get(record.getMusicScoreCategoriesId()));
|
|
|
record.setOrganName(organMap.get(record.getMusicScoreCategoriesId()));
|
|
|
CbsMusicSheetWrapper.MusicSheetApplication musicSheetApplication = musicSheetApplicationMap.get(Long.parseLong(record.getCbsMusicSheetId()));
|
|
|
if(musicSheetApplication != null){
|
|
|
- this.initMusicSheetVo(record,musicSheetApplication);
|
|
|
+ this.initMusicSheetVo(record,musicSheetApplication,musicalInstrumentQueryMap);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void initMusicSheetVo(SysMusicScore record,CbsMusicSheetWrapper.MusicSheetApplication musicSheetApplication){
|
|
|
+ public void initMusicSheetVo(SysMusicScore record,CbsMusicSheetWrapper.MusicSheetApplication musicSheetApplication,Map<Integer,CbsMusicalInstrumentWrapper.MusicalInstrumentQueryDto> musicalInstrumentQueryMap){
|
|
|
record.setSubjectName(musicSheetApplication.getSubjectNames());
|
|
|
record.setRankIds(StringUtils.equals("FREE",musicSheetApplication.getPaymentType()) ? "" : "1");
|
|
|
record.setCbsMusicSheetId(musicSheetApplication.getId().toString());
|
|
@@ -173,6 +197,20 @@ public class SysMusicScoreServiceImpl extends BaseServiceImpl<Integer, SysMusicS
|
|
|
record.setOrder(musicSheetApplication.getSortNo());
|
|
|
record.setEnableEvaluation(musicSheetApplication.getIsEvaluated());
|
|
|
record.setIsOpenMetronome(musicSheetApplication.getIsUseSystemBeat() && musicSheetApplication.getIsPlayBeat());
|
|
|
+ if(StringUtils.isNotEmpty(musicSheetApplication.getMusicalInstrumentIds())){
|
|
|
+ String[] split = musicSheetApplication.getMusicalInstrumentIds().split(",");
|
|
|
+ for (String s : split) {
|
|
|
+ StringBuffer sb = new StringBuffer();
|
|
|
+ CbsMusicalInstrumentWrapper.MusicalInstrumentQueryDto musicalInstrumentQueryDto = musicalInstrumentQueryMap.get(Integer.parseInt(s));
|
|
|
+ if(Objects.nonNull(musicalInstrumentQueryDto)){
|
|
|
+ if(sb.length() > 0){
|
|
|
+ sb.append(",");
|
|
|
+ }
|
|
|
+ sb.append(musicalInstrumentQueryDto.getName());
|
|
|
+ }
|
|
|
+ record.setSubjectName(sb.toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|