Browse Source

管乐迷曲目来源内容平台

zouxuan 1 year ago
parent
commit
165a1e32db

+ 3 - 1
mec-application/src/main/java/com/ym/mec/web/controller/education/EduMusicScoreController.java

@@ -4,6 +4,7 @@ import com.ym.mec.auth.api.dto.MusicScoreQueryInfo;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.entity.Employee;
+import com.ym.mec.biz.dal.entity.SysMusicScoreAccompaniment;
 import com.ym.mec.biz.dal.enums.ClientTypeEnum;
 import com.ym.mec.biz.dal.page.SysExamSongQueryInfo;
 import com.ym.mec.biz.service.OrganizationService;
@@ -11,6 +12,7 @@ import com.ym.mec.biz.service.SysMusicScoreAccompanimentService;
 import com.ym.mec.biz.service.SysMusicScoreCategoriesService;
 import com.ym.mec.biz.service.SysUserService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
@@ -49,7 +51,7 @@ public class EduMusicScoreController extends BaseController {
 
     @ApiOperation(value = "分页查询")
     @GetMapping("/queryPage")
-    public Object queryPage(SysExamSongQueryInfo queryInfo) {
+    public HttpResponseResult<List<SysMusicScoreAccompaniment>> queryPage(SysExamSongQueryInfo queryInfo) {
         queryInfo.setShowFlag(1);
         return succeed(sysMusicScoreAccompanimentService.queryAll(queryInfo));
     }

+ 56 - 48
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicScoreAccompanimentServiceImpl.java

@@ -68,71 +68,79 @@ public class SysMusicScoreAccompanimentServiceImpl extends BaseServiceImpl<Integ
 	public List<SysMusicScoreAccompaniment> queryAll(SysExamSongQueryInfo queryInfo) {
 		Map<String, Object> params = new HashMap<>();
 		MapUtil.populateMap(params, queryInfo);
-		List<SysMusicScoreAccompaniment> accompaniments = sysMusicScoreAccompanimentDao.queryPage(params);
-
-		return accompaniments;
+		return this.initAccompaniment(sysMusicScoreAccompanimentDao.queryPage(params));
 	}
 
-	public void initAccompaniment(List<SysMusicScoreAccompaniment> accompaniments,Integer subjectId){
+	public List<SysMusicScoreAccompaniment> initAccompaniment(List<SysMusicScoreAccompaniment> accompaniments){
+		List<SysMusicScoreAccompaniment> result = new ArrayList<>();
 		if(CollectionUtils.isEmpty(accompaniments)){
-			return;
+			return result;
 		}
-		List<SysMusicScoreAccompaniment> records = accompaniments.stream().filter(e -> e.getCbsMusicSheetId() != null).collect(Collectors.toList());
-		if(CollectionUtils.isEmpty(records)){
-			return;
+		long count = accompaniments.stream().filter(e -> e.getCbsMusicSheetId() != null).count();
+		if(count == 0){
+			return result;
 		}
-		List<Long> cbsMusicSheetIds = records.stream().map(SysMusicScoreAccompaniment::getCbsMusicSheetId).collect(Collectors.toList());
+		List<Long> cbsMusicSheetIds = accompaniments.stream().filter(e->e.getCbsMusicSheetId() != null)
+				.map(SysMusicScoreAccompaniment::getCbsMusicSheetId).collect(Collectors.toList());
 		List<CbsMusicSheetWrapper.MusicSheetApplication> applications = sysMusicScoreService.queryCbsMusicSheetApplication(cbsMusicSheetIds);
 		if (CollectionUtils.isEmpty(applications)) {
-			return;
+			throw new BizException("获取曲目信息失败");
 		}
 		List<Subject> subjects = subjectDao.queryCbsList(null);
 		Map<Long, Subject> subjectMap = subjects.stream().collect(Collectors.toMap(Subject::getCbsSubjectId, Function.identity()));
 		Map<Long, CbsMusicSheetWrapper.MusicSheetApplication> applicationMap = applications.stream().collect(Collectors.toMap(CbsMusicSheetWrapper.MusicSheetApplication::getId, Function.identity()));
-		for (SysMusicScoreAccompaniment record : records) {
-			CbsMusicSheetWrapper.MusicSheetApplication musicSheetApplication = applicationMap.get(record.getCbsMusicSheetId());
+		for (SysMusicScoreAccompaniment accompaniment : accompaniments) {
+			if(accompaniment.getCbsMusicSheetId() == null){
+				result.add(accompaniment);
+				continue;
+			}
+			CbsMusicSheetWrapper.MusicSheetApplication musicSheetApplication = applicationMap.get(accompaniment.getCbsMusicSheetId());
 			if (musicSheetApplication == null) {
-				throw new BizException("曲目信息不存在,曲目ID:" + record.getCbsMusicSheetId());
+				throw new BizException("曲目信息不存在,曲目ID:" + accompaniment.getCbsMusicSheetId());
 			}
-			if(StringUtils.isNotEmpty(musicSheetApplication.getSubjectIds())){
-				StringBuffer sb = new StringBuffer();
-				for (String s : musicSheetApplication.getSubjectIds().split(",")) {
-					Subject subject = subjectMap.get(Long.parseLong(s));
-					if(subject != null){
-						if (sb.length() > 0) {
-							sb.append(",");
+			if(CollectionUtils.isEmpty(musicSheetApplication.getMusicSheetSoundList())){
+				throw new BizException("曲目原音信息不存在,曲目ID:" + accompaniment.getCbsMusicSheetId());
+			}
+			List<SysMusicScoreAccompaniment> childAccompaniments = new ArrayList<>();
+			for (int i = 0; i < musicSheetApplication.getMusicSheetSoundList().size(); i++) {
+				SysMusicScoreAccompaniment record = new SysMusicScoreAccompaniment();
+				if(StringUtils.isNotEmpty(musicSheetApplication.getSubjectIds())){
+					StringBuffer sb = new StringBuffer();
+					for (String s : musicSheetApplication.getSubjectIds().split(",")) {
+						Subject subject = subjectMap.get(Long.parseLong(s));
+						if(subject != null){
+							if (sb.length() > 0) {
+								sb.append(",");
+							}
+							sb.append(subject.getName());
 						}
-						sb.append(subject.getName());
 					}
+					record.setSubjectName(sb.toString());
 				}
-				record.setSubjectName(sb.toString());
-			}
-			record.setCbsMusicSheetId(musicSheetApplication.getId());
-			record.setPlayMode(SysMusicScore.PlayMode.valueOf(musicSheetApplication.getPlayMode().getCode()));
-			record.setExtConfigJson(musicSheetApplication.getExtConfigJson());
-			record.setExtStyleConfigJson(musicSheetApplication.getExtStyleConfigJson());
-			if(musicSheetApplication.getMusicSheetCategoryId() != null){
-				record.setCategoriesId(musicSheetApplication.getMusicSheetCategoryId().intValue());
-			}
-			record.setExamSongName(musicSheetApplication.getName());
-			record.setCategoriesName(musicSheetApplication.getMusicSheetCategoryName());
-			record.setSpeed(musicSheetApplication.getPlaySpeed());
-			List<CbsMusicSheetWrapper.MusicSheetAccompaniment> accompanimentList = musicSheetApplication.getMusicSheetAccompanimentList();
-			if (CollectionUtils.isNotEmpty(accompanimentList)) {
-				record.setMetronomeUrl(accompanimentList.get(0).getAudioFileUrl());
-//				record.setUrl(accompanimentList.get(0).getAudioFileUrl());
-			}
-			List<CbsMusicSheetWrapper.MusicSheetSound> soundList = musicSheetApplication.getMusicSheetSoundList();
-			if (CollectionUtils.isNotEmpty(soundList)) {
-				record.setMp3Url(soundList.get(0).getAudioFileUrl());
-//				record.setAccompanimentUrl(soundList.get(0).getAudioFileUrl());
+				record.setCbsMusicSheetId(musicSheetApplication.getId());
+				record.setPlayMode(SysMusicScore.PlayMode.valueOf(musicSheetApplication.getPlayMode().getCode()));
+				record.setExtConfigJson(musicSheetApplication.getExtConfigJson());
+				record.setExtStyleConfigJson(musicSheetApplication.getExtStyleConfigJson());
+				if(musicSheetApplication.getMusicSheetCategoryId() != null){
+					record.setCategoriesId(musicSheetApplication.getMusicSheetCategoryId().intValue());
+				}
+				record.setExamSongName(musicSheetApplication.getName());
+				record.setCategoriesName(musicSheetApplication.getMusicSheetCategoryName());
+				record.setSpeed(musicSheetApplication.getPlaySpeed());
+				List<CbsMusicSheetWrapper.MusicSheetAccompaniment> accompanimentList = musicSheetApplication.getMusicSheetAccompanimentList();
+				if (CollectionUtils.isNotEmpty(accompanimentList)) {
+					record.setMetronomeUrl(accompanimentList.get(0).getAudioFileUrl());
+				}
+				record.setMp3Url(musicSheetApplication.getMusicSheetSoundList().get(i).getAudioFileUrl());
+				record.setXmlUrl(musicSheetApplication.getXmlFileUrl());
+				record.setMidiUrl(musicSheetApplication.getMidiFileUrl());
+				record.setEnableEvaluation(musicSheetApplication.getIsEvaluated());
+				record.setIsOpenMetronome(musicSheetApplication.getIsUseSystemBeat() && musicSheetApplication.getIsPlayBeat());
+				childAccompaniments.add(record);
 			}
-			record.setXmlUrl(musicSheetApplication.getXmlFileUrl());
-			record.setMidiUrl(musicSheetApplication.getMidiFileUrl());
-//			record.setOrder(musicSheetApplication.getSortNo());
-			record.setEnableEvaluation(musicSheetApplication.getIsEvaluated());
-			record.setIsOpenMetronome(musicSheetApplication.getIsUseSystemBeat() && musicSheetApplication.getIsPlayBeat());
+			result.addAll(childAccompaniments);
 		}
+		return result;
 	}
 
 	@Override
@@ -165,7 +173,7 @@ public class SysMusicScoreAccompanimentServiceImpl extends BaseServiceImpl<Integ
                 }
             }
         }
-        return sysMusicScoreAccompaniments;
+        return this.initAccompaniment(sysMusicScoreAccompaniments);
     }
 
 	@Override