|
@@ -117,6 +117,8 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
@Resource
|
|
|
private SubjectService subjectService;
|
|
|
@Resource
|
|
|
+ private InstrumentService instrumentService;
|
|
|
+ @Resource
|
|
|
private TeacherService teacherService;
|
|
|
@Resource
|
|
|
private CourseCoursewareService courseCoursewareService;
|
|
@@ -402,6 +404,16 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
MusicSheetDetailVo detailVo = JSON.parseObject(JSON.toJSONString(musicSheet), MusicSheetDetailVo.class);
|
|
|
List<MusicSheetAccompaniment> list = musicSheetAccompanimentService.lambdaQuery().eq(MusicSheetAccompaniment::getMusicSheetId, id).list();
|
|
|
detailVo.setBackground(list);
|
|
|
+ //声部名称
|
|
|
+ List<Subject> subjectList = subjectService.findBySubjectByIdList(musicSheet.getMusicSubject());
|
|
|
+ detailVo.setSubjectNames(subjectList.stream().map(e->e.getName()).collect(Collectors.joining(",")));
|
|
|
+ //曲目标签
|
|
|
+ if(StringUtils.isNotEmpty(musicSheet.getMusicTag())){
|
|
|
+ List<MusicTag> musicTagList = musicTagService.lambdaQuery()
|
|
|
+ .in(MusicTag::getId, Arrays.stream(musicSheet.getMusicTag().split(","))
|
|
|
+ .map(Long::parseLong).collect(Collectors.toList())).list();
|
|
|
+ detailVo.setMusicTagNames(musicTagList.stream().map(MusicTag::getName).collect(Collectors.joining(",")));
|
|
|
+ }
|
|
|
return detailVo;
|
|
|
}
|
|
|
|
|
@@ -496,7 +508,6 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
// }
|
|
|
sheet.setComposer(musicSheetApplication.getComposer());
|
|
|
sheet.setAudioType(AudioTypeEnum.valueOf(musicSheetApplication.getPlayMode().getCode()));
|
|
|
- sheet.setMp3Type(AudioTypeEnum.valueOf(musicSheetApplication.getIsPlayBeat()&&musicSheetApplication.getIsUseSystemBeat()?"MP3":"MP3_METRONOME"));
|
|
|
if (StringUtils.isNotEmpty(musicSheetApplication.getPlaySpeed())) {
|
|
|
sheet.setPlaySpeed(musicSheetApplication.getPlaySpeed());
|
|
|
}
|
|
@@ -532,6 +543,8 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
if (musicSheetApplication.getAppAuditFlag() != null){
|
|
|
sheet.setAuditVersion(musicSheetApplication.getAppAuditFlag()?YesOrNoEnum.YES:YesOrNoEnum.NO);
|
|
|
}
|
|
|
+ sheet.setHasBeat((musicSheetApplication.getIsPlayBeat() && !musicSheetApplication.getIsUseSystemBeat()) ? YesOrNoEnum.YES : YesOrNoEnum.NO);
|
|
|
+ sheet.setMp3Type((musicSheetApplication.getIsPlayBeat() && musicSheetApplication.getIsUseSystemBeat()) ? AudioTypeEnum.MP3 : AudioTypeEnum.MP3_METRONOME);
|
|
|
sheet.setUpdateBy(musicSheetApplication.getUpdateBy());
|
|
|
sheet.setExtConfigJson(musicSheetApplication.getExtConfigJson());
|
|
|
sheet.setMusicJSON(musicSheetApplication.getMusicJson());
|
|
@@ -552,7 +565,39 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
|
|
|
@Override
|
|
|
public MusicSheetDetailVo detail(Long id, SysUser sysUser, ClientEnum userType,String tenantAlbumId) {
|
|
|
-
|
|
|
+ MusicSheetDetailVo detailVo = baseMapper.detail(id);
|
|
|
+ if (detailVo == null) {
|
|
|
+ throw new BizException("未找到曲目信息");
|
|
|
+ }
|
|
|
+ if(detailVo.getDelFlag()){
|
|
|
+ //获取乐器名称
|
|
|
+ List<MusicSheetAccompaniment> background = detailVo.getBackground();
|
|
|
+ if (CollectionUtils.isNotEmpty(background)) {
|
|
|
+ String instrumentIds = background.stream().map(e -> e.getMusicalInstrumentId()).filter(StringUtils::isNotEmpty).collect(Collectors.joining(","));
|
|
|
+ if (StringUtils.isNotEmpty(instrumentIds)) {
|
|
|
+ List<Long> instrumentIsList = Arrays.stream(instrumentIds.split(",")).map(Long::valueOf).distinct().collect(Collectors.toList());
|
|
|
+ List<InstrumentWrapper.Instrument> instruments = instrumentService.getInstruments(instrumentIsList);
|
|
|
+ Map<Long,InstrumentWrapper.Instrument> instrumentMap =
|
|
|
+ instruments.stream().collect(Collectors.toMap(InstrumentWrapper.Instrument::getId, o -> o, (o1, o2) -> o1));
|
|
|
+ for (MusicSheetAccompaniment accompaniment : background) {
|
|
|
+ if (StringUtils.isNotEmpty(accompaniment.getMusicalInstrumentId())){
|
|
|
+ StringBuffer sb = new StringBuffer();
|
|
|
+ for (String s : accompaniment.getMusicalInstrumentId().split(",")) {
|
|
|
+ InstrumentWrapper.Instrument instrument = instrumentMap.get(Long.parseLong(s));
|
|
|
+ if (instrument != null){
|
|
|
+ if(sb.length() > 0) {
|
|
|
+ sb.append(",");
|
|
|
+ }
|
|
|
+ sb.append(instrument.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ accompaniment.setMusicalInstrumentName(sb.toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return detailVo;
|
|
|
+ }
|
|
|
MusicSheetDetailVo detail = this.getCbsDetail(id);
|
|
|
// 设置收藏人数
|
|
|
detail.setFavoriteCount(detail.getFavoriteCount() + detail.getVirtualNumber());
|
|
@@ -747,24 +792,11 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
}
|
|
|
|
|
|
public void initMusicSheetVo(MusicSheetVo record,CbsMusicSheetWrapper.MusicSheetApplication musicSheetApplication,Map<Long, CbsSubjectApiWrapper.Subject> subjectMap){
|
|
|
- if(StringUtils.isNotEmpty(musicSheetApplication.getSubjectIds())){
|
|
|
- StringBuffer sb = new StringBuffer();
|
|
|
- for (String s : musicSheetApplication.getSubjectIds().split(",")) {
|
|
|
- CbsSubjectApiWrapper.Subject subject = subjectMap.get(Long.parseLong(s));
|
|
|
- if(subject != null){
|
|
|
- if (sb.length() > 0) {
|
|
|
- sb.append(",");
|
|
|
- }
|
|
|
- sb.append(subject.getSubjectName());
|
|
|
- }
|
|
|
- }
|
|
|
- record.setSubjectNames(sb.toString());
|
|
|
- }
|
|
|
+ record.setSubjectNames(musicSheetApplication.getSubjectNames());
|
|
|
record.setCbsMusicSheetId(musicSheetApplication.getId());
|
|
|
record.setAudioType(AudioTypeEnum.valueOf(musicSheetApplication.getPlayMode().getCode()));
|
|
|
record.setCanEvaluate(musicSheetApplication.getIsEvaluated() ? YesOrNoEnum.YES : YesOrNoEnum.NO);
|
|
|
record.setShowFingering(musicSheetApplication.getIsShowFingering() ? YesOrNoEnum.YES : YesOrNoEnum.NO);
|
|
|
- record.setMusicTag(musicSheetApplication.getMusicTagIds());
|
|
|
record.setMusicTagNames(musicSheetApplication.getMusicTagNames());
|
|
|
List<CbsMusicSheetWrapper.MusicSheetAccompaniment> accompanimentList = musicSheetApplication.getMusicSheetAccompanimentList();
|
|
|
if (CollectionUtils.isNotEmpty(accompanimentList)) {
|
|
@@ -774,6 +806,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
record.setMidiUrl(musicSheetApplication.getMidiFileUrl());
|
|
|
record.setAuditVersion(musicSheetApplication.getAppAuditFlag() ? YesOrNoEnum.YES : YesOrNoEnum.NO);
|
|
|
record.setHasBeat((musicSheetApplication.getIsPlayBeat() && !musicSheetApplication.getIsUseSystemBeat()) ? YesOrNoEnum.YES : YesOrNoEnum.NO);
|
|
|
+ record.setMp3Type((musicSheetApplication.getIsPlayBeat() && musicSheetApplication.getIsUseSystemBeat()) ? AudioTypeEnum.MP3 : AudioTypeEnum.MP3_METRONOME);
|
|
|
record.setExtConfigJson(musicSheetApplication.getExtConfigJson());
|
|
|
record.setMusicJSON(musicSheetApplication.getMusicJson());
|
|
|
record.setMusicJianSvg(musicSheetApplication.getMusicJianSvg());
|
|
@@ -790,6 +823,8 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
if(CollectionUtils.isNotEmpty(records)){
|
|
|
List<Long> cbsMusicSheetIds = records.stream().map(e -> e.getCbsMusicSheetId()).collect(Collectors.toList());
|
|
|
CbsMusicSheetWrapper.MusicSheetApplicationQuery query = new CbsMusicSheetWrapper.MusicSheetApplicationQuery();
|
|
|
+ query.setPage(1);
|
|
|
+ query.setRows(cbsMusicSheetIds.size());
|
|
|
query.setMusicSheetIds(cbsMusicSheetIds);
|
|
|
query.setDetailFlag(true);
|
|
|
R<PageInfo<CbsMusicSheetWrapper.MusicSheetApplication>> pageInfoR = cbsMusicScoreService.selectPage(query);
|
|
@@ -824,58 +859,6 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
|
|
|
// 统计单曲归属专辑数
|
|
|
updateMusicAlbumNumInfo(records);
|
|
|
-
|
|
|
- // 声部
|
|
|
-
|
|
|
- /*List<Long> collect = records.stream().map(MusicSheetVo::getMusicSubject)
|
|
|
- .filter(StringUtils::isNotEmpty)
|
|
|
- .map(Long::parseLong)
|
|
|
- .collect(Collectors.toList());
|
|
|
-
|
|
|
-
|
|
|
- List<Subject> subjectList = subjectService.findBySubjectByIdList(collect);
|
|
|
- if (CollectionUtils.isNotEmpty(subjectList)) {
|
|
|
- Map<Long, String> subjectMap = subjectList.stream()
|
|
|
- .collect(Collectors.toMap(Subject::getId, Subject::getName));
|
|
|
- for (MusicSheetVo record : records) {
|
|
|
- if (StringUtils.isNotEmpty(record.getMusicSubject())) {
|
|
|
- record.setSubjectNames(subjectMap.get(Long.parseLong(record.getMusicSubject())));
|
|
|
- }
|
|
|
- }
|
|
|
- }*/
|
|
|
-
|
|
|
- // 标签
|
|
|
-
|
|
|
- List<Long>collect = records.stream().map(MusicSheetVo::getMusicTag)
|
|
|
- .filter(StringUtils::isNotEmpty)
|
|
|
- .flatMap(s -> Arrays.stream(s.split(",")))
|
|
|
- .filter(StringUtils::isNotEmpty)
|
|
|
- .map(Long::parseLong)
|
|
|
- .collect(Collectors.toList());
|
|
|
- List<MusicTag> list = new ArrayList<>();
|
|
|
- if (CollectionUtils.isNotEmpty(collect)) {
|
|
|
- list = musicTagService.lambdaQuery()
|
|
|
- .in(MusicTag::getId, collect)
|
|
|
- .eq(MusicTag::getDelFlag, 0)
|
|
|
- .eq(MusicTag::getState, 1)
|
|
|
- .list();
|
|
|
- }
|
|
|
- if (CollectionUtils.isNotEmpty(list)) {
|
|
|
- Map<Long, String> tagMap = list.stream()
|
|
|
- .collect(Collectors.toMap(MusicTag::getId, MusicTag::getName));
|
|
|
- for (MusicSheetVo record : records) {
|
|
|
- if (StringUtils.isNotEmpty(record.getMusicTag())) {
|
|
|
-
|
|
|
- List<Long> tagIdList = Arrays.stream(record.getMusicTag().split(","))
|
|
|
- .filter(StringUtils::isNotEmpty)
|
|
|
- .map(Long::parseLong)
|
|
|
- .collect(Collectors.toList());
|
|
|
- String tagNames = tagIdList.stream().map(tagMap::get).collect(Collectors.joining(","));
|
|
|
- record.setMusicTagNames(tagNames);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
// 是否关注
|
|
|
if (query.getStudentId() != null) {
|
|
|
List<Long> musicIdList = records.stream().map(MusicSheetVo::getId).collect(Collectors.toList());
|
|
@@ -1988,6 +1971,12 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
if (addMusicSheet.getMusicCategoryId() == null) {
|
|
|
addMusicSheet.setMusicCategoryId(-2L);
|
|
|
}
|
|
|
+ if (addMusicSheet.getAudioType() == null) {
|
|
|
+ addMusicSheet.setAudioType(EAudioType.HOMEMODE);
|
|
|
+ }
|
|
|
+ if (addMusicSheet.getIsUseSystemBeat() == null) {
|
|
|
+ addMusicSheet.setIsUseSystemBeat(true);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -2012,6 +2001,8 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
musicSheetAudit.setMusicSvg(addMusicSheet.getMusicSvg());
|
|
|
musicSheetAudit.setComposer(addMusicSheet.getComposer());
|
|
|
musicSheetAudit.setTitleImg(addMusicSheet.getMusicCover());
|
|
|
+ musicSheetAudit.setExtConfigJson(addMusicSheet.getExtConfigJson());
|
|
|
+ musicSheetAudit.setRemark(addMusicSheet.getRemark());
|
|
|
if(addMusicSheet.getAudioType() != null){
|
|
|
musicSheetAudit.setAccompanimentType(AccompanimentTypeEnum.valueOf(addMusicSheet.getAudioType().getCode()));
|
|
|
}
|
|
@@ -2031,6 +2022,14 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
if(addMusicSheet.getIsEvaluated() != null){
|
|
|
musicSheetAudit.setCanEvaluate(addMusicSheet.getIsEvaluated()? YesOrNoEnum.YES: YesOrNoEnum.NO);
|
|
|
}
|
|
|
+ //兼容审核流程修改,是否自带节拍器
|
|
|
+ if(addMusicSheet.getIsUseSystemBeat() == null || !addMusicSheet.getIsUseSystemBeat()){
|
|
|
+ musicSheetAudit.setHasBeat(YesOrNoEnum.NO);
|
|
|
+ musicSheetAudit.setMp3Type(AudioTypeEnum.MP3);
|
|
|
+ }else {
|
|
|
+ musicSheetAudit.setHasBeat(YesOrNoEnum.YES);
|
|
|
+ musicSheetAudit.setMp3Type(AudioTypeEnum.MP3_METRONOME);
|
|
|
+ }
|
|
|
List<CbsMusicSheetWrapper.MusicSheetAccompaniment> accompanimentList = addMusicSheet.getMusicSheetAccompanimentList();
|
|
|
if (CollectionUtils.isNotEmpty(accompanimentList)) {
|
|
|
musicSheetAudit.setMetronomeUrl(accompanimentList.get(0).getAudioFileUrl());
|
|
@@ -2051,13 +2050,86 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
if(applicationExtend.getExquisiteFlag() != null){
|
|
|
musicSheetAudit.setExquisiteFlag(applicationExtend.getExquisiteFlag()? YesOrNoEnum.YES: YesOrNoEnum.NO);
|
|
|
}
|
|
|
+ musicSheetAudit.setSortNumber(applicationExtend.getSortNo());
|
|
|
+ musicSheetAudit.setMusicPrice(applicationExtend.getMusicPrice());
|
|
|
+ }
|
|
|
+ return musicSheetAudit;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void initMusicSheetDetailVo(CbsMusicSheetWrapper.AddMusicSheet addMusicSheet, MusicSheetDetailVo musicSheetAudit) {
|
|
|
+ musicSheetAudit.setProviderType(SourceTypeEnum.TEACHER);
|
|
|
+ musicSheetAudit.setSourceType(SourceTypeEnum.TEACHER);
|
|
|
+ musicSheetAudit.setMusicSheetName(addMusicSheet.getName());
|
|
|
+ musicSheetAudit.setMusicSubject(addMusicSheet.getSubjectIds());
|
|
|
+ musicSheetAudit.setMusicSvg(addMusicSheet.getMusicSvg());
|
|
|
+ musicSheetAudit.setComposer(addMusicSheet.getComposer());
|
|
|
+ musicSheetAudit.setTitleImg(addMusicSheet.getMusicCover());
|
|
|
+ musicSheetAudit.setExtConfigJson(addMusicSheet.getExtConfigJson());
|
|
|
+ musicSheetAudit.setRemark(addMusicSheet.getRemark());
|
|
|
+ if(addMusicSheet.getAudioType() != null){
|
|
|
+ musicSheetAudit.setAccompanimentType(AccompanimentTypeEnum.valueOf(addMusicSheet.getAudioType().getCode()));
|
|
|
+ }
|
|
|
+ musicSheetAudit.setPlaySpeed(addMusicSheet.getPlaySpeed());
|
|
|
+ if(addMusicSheet.getIsConvertibleScore() != null){
|
|
|
+ musicSheetAudit.setNotation(addMusicSheet.getIsConvertibleScore()? YesOrNoEnum.YES: YesOrNoEnum.NO);
|
|
|
+ }
|
|
|
+ if(addMusicSheet.getMusicSheetType() != null){
|
|
|
+ musicSheetAudit.setMusicSheetType(MusicSheetTypeEnum.valueOf(addMusicSheet.getMusicSheetType().getCode()));
|
|
|
+ }
|
|
|
+ if(addMusicSheet.getPlayMode() != null){
|
|
|
+ musicSheetAudit.setAudioType(AudioTypeEnum.valueOf(addMusicSheet.getPlayMode().getCode()));
|
|
|
+ }
|
|
|
+ if(addMusicSheet.getIsShowFingering() != null){
|
|
|
+ musicSheetAudit.setShowFingering(addMusicSheet.getIsShowFingering()? YesOrNoEnum.YES: YesOrNoEnum.NO);
|
|
|
+ }
|
|
|
+ if(addMusicSheet.getIsEvaluated() != null){
|
|
|
+ musicSheetAudit.setCanEvaluate(addMusicSheet.getIsEvaluated()? YesOrNoEnum.YES: YesOrNoEnum.NO);
|
|
|
+ }
|
|
|
+ //兼容审核流程修改,是否自带节拍器
|
|
|
+ if(addMusicSheet.getIsUseSystemBeat() == null || !addMusicSheet.getIsUseSystemBeat()){
|
|
|
+ musicSheetAudit.setHasBeat(YesOrNoEnum.NO);
|
|
|
+ musicSheetAudit.setMp3Type(AudioTypeEnum.MP3);
|
|
|
+ }else {
|
|
|
+ musicSheetAudit.setHasBeat(YesOrNoEnum.YES);
|
|
|
+ musicSheetAudit.setMp3Type(AudioTypeEnum.MP3_METRONOME);
|
|
|
+ }
|
|
|
+ List<CbsMusicSheetWrapper.MusicSheetAccompaniment> accompanimentList = addMusicSheet.getMusicSheetAccompanimentList();
|
|
|
+ if (CollectionUtils.isNotEmpty(accompanimentList)) {
|
|
|
+ musicSheetAudit.setMetronomeUrl(accompanimentList.get(0).getAudioFileUrl());
|
|
|
+ }
|
|
|
+ List<CbsMusicSheetWrapper.MusicSheetSound> soundList = addMusicSheet.getMusicSheetSoundList();
|
|
|
+ if (CollectionUtils.isNotEmpty(soundList)) {
|
|
|
+ List<MusicSheetAccompaniment> background = new ArrayList<>();
|
|
|
+ for (CbsMusicSheetWrapper.MusicSheetSound sound : soundList) {
|
|
|
+ MusicSheetAccompaniment musicSheetAccompaniment = new MusicSheetAccompaniment();
|
|
|
+ musicSheetAccompaniment.setAudioFileUrl(sound.getAudioFileUrl());
|
|
|
+ musicSheetAccompaniment.setSortNumber(sound.getSortNumber());
|
|
|
+ musicSheetAccompaniment.setTrack(sound.getTrack());
|
|
|
+ musicSheetAccompaniment.setMusicalInstrumentId(sound.getMusicalInstrumentId());
|
|
|
+ background.add(musicSheetAccompaniment);
|
|
|
+ }
|
|
|
+ musicSheetAudit.setBackground(background);
|
|
|
+ }
|
|
|
+ musicSheetAudit.setXmlFileUrl(addMusicSheet.getXmlFileUrl());
|
|
|
+ musicSheetAudit.setMidiUrl(addMusicSheet.getMidiFileUrl());
|
|
|
+ List<CbsMusicSheetApplicationExtendClientWrapper.AddMusicSheetApplicationExtend> extend = addMusicSheet.getAddMusicSheetApplicationExtend();
|
|
|
+ if(CollectionUtils.isNotEmpty(extend)){
|
|
|
+ CbsMusicSheetApplicationExtendClientWrapper.AddMusicSheetApplicationExtend applicationExtend = extend.get(0);
|
|
|
+ musicSheetAudit.setMusicTag(applicationExtend.getMusicTagIds());
|
|
|
+ if(applicationExtend.getPaymentType() != null){
|
|
|
+ musicSheetAudit.setPaymentType(applicationExtend.getPaymentType());
|
|
|
+ musicSheetAudit.setChargeType(ChargeTypeEnum.valueOf(applicationExtend.getPaymentType()));
|
|
|
+ }
|
|
|
+ if(applicationExtend.getTopFlag() != null){
|
|
|
+ musicSheetAudit.setTopFlag(applicationExtend.getTopFlag()? YesOrNoEnum.YES: YesOrNoEnum.NO);
|
|
|
+ }
|
|
|
if(applicationExtend.getExquisiteFlag() != null){
|
|
|
musicSheetAudit.setExquisiteFlag(applicationExtend.getExquisiteFlag()? YesOrNoEnum.YES: YesOrNoEnum.NO);
|
|
|
}
|
|
|
musicSheetAudit.setSortNumber(applicationExtend.getSortNo());
|
|
|
musicSheetAudit.setMusicPrice(applicationExtend.getMusicPrice());
|
|
|
}
|
|
|
- return musicSheetAudit;
|
|
|
}
|
|
|
|
|
|
|