Bladeren bron

管乐迷曲目来源内容平台

zouxuan 1 jaar geleden
bovenliggende
commit
a3c1d4634d

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysMusicScoreAccompanimentService.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service;
 
 
+import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
 import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.entity.SysMusicScore;
 import com.ym.mec.biz.dal.entity.SysMusicScoreAccompaniment;
@@ -16,6 +17,9 @@ public interface SysMusicScoreAccompanimentService extends BaseService<Integer,
 
     List<SysMusicScoreAccompaniment> queryAll(SysExamSongQueryInfo queryInfo);
 
+    SysMusicScoreAccompaniment initSysMusicScoreAccompaniment(CbsMusicSheetWrapper.MusicSheetApplication musicSheetApplication,
+                                                              CbsMusicSheetWrapper.MusicSheetSound sound);
+
     List<SysMusicScoreAccompaniment> queryAccPage(SysExamSongQueryInfo queryInfo);
 
     List<Subject> querySubjectIds(Integer categoriesId);

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysMusicScoreService.java

@@ -19,6 +19,10 @@ public interface SysMusicScoreService extends BaseService<Integer, SysMusicScore
 
     SysMusicScoreDao getDao();
 
+    CbsMusicSheetWrapper.MusicSheetApplicationQuery getMusicSheetApplicationQuery();
+
+    List<CbsMusicSheetWrapper.MusicSheetApplication> queryCbsMusicSheetApplication(CbsMusicSheetWrapper.MusicSheetApplicationQuery query);
+
     List<CbsMusicSheetWrapper.MusicSheetApplication> queryCbsMusicSheetApplication(List<String> cbsMusicSheetIds);
 
     //获取乐器名称

+ 43 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicScoreAccompanimentServiceImpl.java

@@ -94,10 +94,10 @@ public class SysMusicScoreAccompanimentServiceImpl extends BaseServiceImpl<Integ
 				throw new BizException("曲目原音信息不存在,曲目ID:" + accompaniment.getCbsMusicSheetId());
 			}
 			List<SysMusicScoreAccompaniment> childAccompaniments = new ArrayList<>();
-			int num = 1;
 			for (int i = 0; i < musicSheetApplication.getMusicSheetSoundList().size(); i++) {
+				CbsMusicSheetWrapper.MusicSheetSound sheetSound = musicSheetApplication.getMusicSheetSoundList().get(i);
 				SysMusicScoreAccompaniment record = new SysMusicScoreAccompaniment();
-				record.setId(num++);
+				record.setId(sheetSound.getId().intValue());
 				record.setType(accompaniment.getType());
 				record.setRankIds("FREE".equals(musicSheetApplication.getPaymentType()) ? null : "1");
 				record.setClientType(accompaniment.getClientType());
@@ -139,6 +139,46 @@ public class SysMusicScoreAccompanimentServiceImpl extends BaseServiceImpl<Integ
 	}
 
 	@Override
+	public SysMusicScoreAccompaniment initSysMusicScoreAccompaniment(CbsMusicSheetWrapper.MusicSheetApplication musicSheetApplication,
+																	 CbsMusicSheetWrapper.MusicSheetSound sound){
+		SysMusicScoreAccompaniment record = new SysMusicScoreAccompaniment();
+//		record.setId(sheetSound.getId().intValue());
+//		record.setType(accompaniment.getType());
+		record.setRankIds("FREE".equals(musicSheetApplication.getPaymentType()) ? null : "1");
+//		record.setClientType(accompaniment.getClientType());
+//		record.setExamSongId(accompaniment.getExamSongId());
+		record.setCbsMusicSheetId(musicSheetApplication.getId().toString());
+		record.setPlayMode(SysMusicScore.PlayMode.valueOf(musicSheetApplication.getPlayMode().getCode()));
+		record.setExtConfigJson(musicSheetApplication.getExtConfigJson());
+//				record.setSubjectId(accompaniment.getSubjectId());
+		record.setExtStyleConfigJson(musicSheetApplication.getExtStyleConfigJson());
+		if(musicSheetApplication.getMusicSheetCategoryId() != null){
+			record.setCategoriesId(musicSheetApplication.getMusicSheetCategoryId().intValue());
+		}
+		record.setMusicSheetType(musicSheetApplication.getMusicSheetType().getCode());
+//		record.setParentCategoriesId(accompaniment.getParentCategoriesId());
+		record.setExamSongName(musicSheetApplication.getName());
+		record.setCategoriesName(musicSheetApplication.getMusicSheetCategoryName());
+		record.setSpeed(musicSheetApplication.getPlaySpeed());
+		record.setMetronomeMp3Url(sound.getAudioFileUrl());
+		record.setTrack(sound.getTrack());
+		record.setSubjectName(sound.getTrack());
+		record.setXmlUrl(musicSheetApplication.getXmlFileUrl());
+		record.setMidiUrl(musicSheetApplication.getMidiFileUrl());
+		record.setEnableEvaluation(musicSheetApplication.getIsEvaluated());
+		record.setIsOpenMetronome(musicSheetApplication.getIsUseSystemBeat());
+		List<CbsMusicSheetWrapper.MusicSheetAccompaniment> accompanimentList = musicSheetApplication.getMusicSheetAccompanimentList();
+		if (CollectionUtils.isNotEmpty(accompanimentList)) {
+			record.setMetronomeUrl(accompanimentList.get(0).getAudioFileUrl());
+			record.setUrl(accompanimentList.get(0).getAudioFileUrl());
+		}
+		record.setMetronomeMp3Url(sound.getAudioFileUrl());
+		record.setMp3Url(sound.getAudioFileUrl());
+		record.setIsShowFingering(musicSheetApplication.getIsShowFingering());
+		return record;
+	}
+
+	@Override
 	public List<SysMusicScoreAccompaniment> queryAccPage(SysExamSongQueryInfo queryInfo) {
 		if(queryInfo.getCategoriesId() != null){
 			List<Integer> categoriesIdList = new ArrayList<>();
@@ -229,7 +269,7 @@ public class SysMusicScoreAccompanimentServiceImpl extends BaseServiceImpl<Integ
 			queryInfo.setFilterCategoriesIds(filterCategoriesIdList.stream().map(String :: valueOf).collect(Collectors.joining(",")));
 		}
 		PageInfo<SysMusicScoreAccompaniment> info = this.queryPage(queryInfo);
-		this.initAccompaniment(info.getRows());
+		info.setRows(this.initAccompaniment(info.getRows()));
 		return info;
 	}
     

+ 14 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicScoreServiceImpl.java

@@ -94,14 +94,17 @@ public class SysMusicScoreServiceImpl extends BaseServiceImpl<Integer, SysMusicS
     }
 
     @Override
-    public List<CbsMusicSheetWrapper.MusicSheetApplication> queryCbsMusicSheetApplication(List<String> cbsMusicSheetIds){
+    public CbsMusicSheetWrapper.MusicSheetApplicationQuery getMusicSheetApplicationQuery() {
         CbsMusicSheetWrapper.MusicSheetApplicationQuery query = new CbsMusicSheetWrapper.MusicSheetApplicationQuery();
-        query.setMusicSheetIds(cbsMusicSheetIds.stream().map(Long::parseLong).collect(Collectors.toList()));
         query.setDetailFlag(true);
         query.setDelFlag(true);
         query.setPage(1);
-        query.setRows(cbsMusicSheetIds.size());
         query.setApplicationId(applicationId);
+        return query;
+    }
+
+    @Override
+    public List<CbsMusicSheetWrapper.MusicSheetApplication> queryCbsMusicSheetApplication(CbsMusicSheetWrapper.MusicSheetApplicationQuery query) {
         R<com.microsvc.toolkit.common.response.paging.PageInfo<CbsMusicSheetWrapper.MusicSheetApplication>> pageInfoR =
                 musicFeignClientService.musicSheetPageByApplication(query);
         if(pageInfoR.getCode() != 200){
@@ -114,6 +117,14 @@ public class SysMusicScoreServiceImpl extends BaseServiceImpl<Integer, SysMusicS
         return new ArrayList<>();
     }
 
+    @Override
+    public List<CbsMusicSheetWrapper.MusicSheetApplication> queryCbsMusicSheetApplication(List<String> cbsMusicSheetIds){
+        CbsMusicSheetWrapper.MusicSheetApplicationQuery query = this.getMusicSheetApplicationQuery();
+        query.setMusicSheetIds(cbsMusicSheetIds.stream().map(Long::parseLong).collect(Collectors.toList()));
+        query.setRows(cbsMusicSheetIds.size());
+        return this.queryCbsMusicSheetApplication(query);
+    }
+
     //获取乐器名称
     @Override
     public List<CbsMusicalInstrumentWrapper.MusicalInstrumentQueryDto> queryMusicalInstrument(List<Integer> musicalInstrumentIds){

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/SysMusicScoreAccompanimentMapper.xml

@@ -200,7 +200,7 @@
 		SELECT s.* FROM sys_music_score sms
 		LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,sms.subject_ids_)
 		LEFT JOIN sys_music_score_categories sesc ON sesc.id_ = sms.music_score_categories_id_
-		WHERE sms.del_flag_ = 0 AND s.id_ IS NOT NULL
+		WHERE sms.del_flag_ = 0 AND sms.cbs_music_sheet_id_ IS NOT NULL AND s.id_ IS NOT NULL
 		<if test="categoriesIdList != null and categoriesIdList.size > 0">
 			AND sesc.id_ IN
 			<foreach collection="categoriesIdList" separator="," item="item" open="(" close=")">

+ 40 - 7
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -3,8 +3,11 @@ package com.ym.service.Impl;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
+import com.microsvc.toolkit.common.response.paging.PageInfo;
+import com.microsvc.toolkit.common.response.template.R;
 import com.microsvc.toolkit.middleware.rtc.RTCRoomPluginContext;
 import com.microsvc.toolkit.middleware.rtc.RTCRoomPluginService;
 import com.microsvc.toolkit.middleware.rtc.enums.EMemberAction;
@@ -113,9 +116,11 @@ public class RoomServiceImpl implements RoomService {
     @Autowired
     private SysExamSongDao sysExamSongDao;
     @Autowired
+    private SysMusicScoreService sysMusicScoreService;
+    @Autowired
     private CourseScheduleStudentMusicScoreDao courseScheduleStudentMusicScoreDao;
     @Autowired
-    private SysMusicScoreAccompanimentDao sysMusicScoreAccompanimentDao;
+    private SysMusicScoreAccompanimentService sysMusicScoreAccompanimentService;
     @Autowired
     private SysTenantConfigService sysTenantConfigService;
     @Autowired
@@ -2719,28 +2724,42 @@ public class RoomServiceImpl implements RoomService {
         List<CourseScheduleStudentMusicScore> scheduleStudentMusicScores =
                 courseScheduleStudentMusicScoreDao.queryByScoreIdAndCourseId(musicScoreData.getMusicScoreAccompanimentId(),
                         courseScheduleId, null, null, 0);
-        SysMusicScoreAccompaniment accompaniment = sysMusicScoreAccompanimentDao.get(musicScoreData.getMusicScoreAccompanimentId());
+        CbsMusicSheetWrapper.MusicSheetApplicationQuery query = sysMusicScoreService.getMusicSheetApplicationQuery();
+        query.setRows(1);
+        query.setMusicSheetSoundId(musicScoreData.getMusicScoreAccompanimentId().longValue());
+        List<CbsMusicSheetWrapper.MusicSheetApplication> applications = sysMusicScoreService.queryCbsMusicSheetApplication(query);
+        if (CollectionUtils.isEmpty(applications)) {
+            throw new BizException("曲目信息不存在");
+        }
+        CbsMusicSheetWrapper.MusicSheetApplication sheetApplication = applications.get(0);
+        List<CbsMusicSheetWrapper.MusicSheetSound> soundList = sheetApplication.getMusicSheetSoundList();
+        if (CollectionUtils.isEmpty(soundList)) {
+            throw new BizException("曲目原音信息不存在");
+        }
+        CbsMusicSheetWrapper.MusicSheetSound sheetSound = soundList.stream().
+                filter(e -> e.getId().equals(musicScoreData.getMusicScoreAccompanimentId().longValue())).collect(Collectors.toList()).get(0);
         if (scheduleStudentMusicScores.size() == 0) {
             //第一次下载,生成数据
             List<CourseScheduleStudentPayment> courseScheduleStudentPayments = courseScheduleStudentPaymentDao.findByCourseSchedule(courseScheduleId);
             Set<Integer> studentIds = courseScheduleStudentPayments.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
             studentIds.forEach(e -> {
                 CourseScheduleStudentMusicScore musicScore = new CourseScheduleStudentMusicScore();
-                musicScore.setMusicScoreAccompanimentId(accompaniment.getId());
-                musicScore.setSpeed(accompaniment.getSpeed());
+                musicScore.setMusicScoreAccompanimentId(musicScoreData.getMusicScoreAccompanimentId());
+                musicScore.setSpeed(sheetApplication.getPlaySpeed());
                 musicScore.setCourseScheduleId(courseScheduleId);
                 musicScore.setUserId(e);
                 scheduleStudentMusicScores.add(musicScore);
             });
             CourseScheduleStudentMusicScore musicScore = new CourseScheduleStudentMusicScore();
-            musicScore.setMusicScoreAccompanimentId(accompaniment.getId());
-            musicScore.setSpeed(accompaniment.getSpeed());
+            musicScore.setMusicScoreAccompanimentId(musicScoreData.getMusicScoreAccompanimentId());
+            musicScore.setSpeed(sheetApplication.getPlaySpeed());
             musicScore.setCourseScheduleId(courseScheduleId);
             musicScore.setUserId(authUser.getId());
             musicScore.setUserType(1);
             scheduleStudentMusicScores.add(musicScore);
             courseScheduleStudentMusicScoreDao.batchInsert(scheduleStudentMusicScores);
         }
+        SysMusicScoreAccompaniment accompaniment = sysMusicScoreAccompanimentService.initSysMusicScoreAccompaniment(sheetApplication, sheetSound);
         MusicScoreMessage musicScoreMessage = JSON.parseObject(JSON.toJSONString(accompaniment), MusicScoreMessage.class);
         // 发送消息
         String serviceProvider = getRoomServiceProvider(musicScoreData.getRoomId());
@@ -2822,7 +2841,21 @@ public class RoomServiceImpl implements RoomService {
         Integer accompanimentId = musicScoreData.getMusicScoreAccompanimentId();
         List<CourseScheduleStudentMusicScore> studentMusicScores = courseScheduleStudentMusicScoreDao.queryByScoreIdAndCourseId(accompanimentId, scheduleId, studentId, null, null);
         if (accompanimentId != null) {
-            SysMusicScoreAccompaniment accompaniment = sysMusicScoreAccompanimentDao.get(accompanimentId);
+            CbsMusicSheetWrapper.MusicSheetApplicationQuery query = sysMusicScoreService.getMusicSheetApplicationQuery();
+            query.setRows(1);
+            query.setMusicSheetSoundId(accompanimentId.longValue());
+            List<CbsMusicSheetWrapper.MusicSheetApplication> applications = sysMusicScoreService.queryCbsMusicSheetApplication(query);
+            if (CollectionUtils.isEmpty(applications)) {
+                throw new BizException("曲目信息不存在");
+            }
+            CbsMusicSheetWrapper.MusicSheetApplication sheetApplication = applications.get(0);
+            List<CbsMusicSheetWrapper.MusicSheetSound> soundList = sheetApplication.getMusicSheetSoundList();
+            if (CollectionUtils.isEmpty(soundList)) {
+                throw new BizException("曲目原音信息不存在");
+            }
+            CbsMusicSheetWrapper.MusicSheetSound sheetSound = soundList.stream().
+                    filter(e -> e.getId().equals(musicScoreData.getMusicScoreAccompanimentId().longValue())).collect(Collectors.toList()).get(0);
+            SysMusicScoreAccompaniment accompaniment = sysMusicScoreAccompanimentService.initSysMusicScoreAccompaniment(sheetApplication,sheetSound);
             if (accompaniment == null) {
                 throw new BizException("曲目信息不存在");
             }