|
@@ -56,6 +56,7 @@ import org.joda.time.DateTime;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -150,6 +151,9 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
@Resource
|
|
@Resource
|
|
private OpenFeignClientConfigProperties openFeignClientConfigProperties;
|
|
private OpenFeignClientConfigProperties openFeignClientConfigProperties;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private SysUserService sysUserService;
|
|
|
|
+
|
|
@Value("${openfeign-client.app-id:1745637981387108354}")
|
|
@Value("${openfeign-client.app-id:1745637981387108354}")
|
|
public Long applicationId;
|
|
public Long applicationId;
|
|
|
|
|
|
@@ -1175,7 +1179,39 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public IPage<TeacherMusicSheetVo> selectTeacherPage(IPage<TeacherMusicSheetVo> page, TeacherMusicSheetSearch query) {
|
|
public IPage<TeacherMusicSheetVo> selectTeacherPage(IPage<TeacherMusicSheetVo> page, TeacherMusicSheetSearch query) {
|
|
- return page.setRecords(baseMapper.selectTeacherPage(page, query));
|
|
|
|
|
|
+ IPage<TeacherMusicSheetVo> teacherMusicSheetVoIPage = page.setRecords(baseMapper.selectTeacherPage(page, query));
|
|
|
|
+ List<TeacherMusicSheetVo> records = teacherMusicSheetVoIPage.getRecords();
|
|
|
|
+ if (CollectionUtils.isEmpty(records)) {
|
|
|
|
+ return teacherMusicSheetVoIPage;
|
|
|
|
+ }
|
|
|
|
+ // 曲目ID
|
|
|
|
+ List<String> musicIds = records.stream().map(TeacherMusicSheetVo::getMusicSheetId).collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ List<MusicSheetAuthRecord> list = musicSheetAuthRecordService.lambdaQuery()
|
|
|
|
+ .in(MusicSheetAuthRecord::getMusicSheetId, musicIds)
|
|
|
|
+ .eq(MusicSheetAuthRecord::getAuditState, AuthStatusEnum.PASS)
|
|
|
|
+ .orderByAsc(MusicSheetAuthRecord::getId)
|
|
|
|
+ .list();
|
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
|
+ Map<Long, MusicSheetAuthRecord> musicSheetAuthRecordMap = list.stream().collect(Collectors.toMap(MusicSheetAuthRecord::getMusicSheetId, Function.identity(), (o, n) -> n));
|
|
|
|
+ // 审核人 ID集合
|
|
|
|
+ List<Long> auditUserIds = list.stream().map(MusicSheetAuthRecord::getVerifyUserId).collect(Collectors.toList());
|
|
|
|
+ Map<Long, com.yonge.cooleshow.biz.dal.entity.SysUser> mapByIds = sysUserService.getMapByIds(auditUserIds);
|
|
|
|
+ for (TeacherMusicSheetVo record : records) {
|
|
|
|
+ MusicSheetAuthRecord musicSheetAuthRecord = musicSheetAuthRecordMap.get(Long.parseLong(record.getMusicSheetId()));
|
|
|
|
+ if (musicSheetAuthRecord != null && musicSheetAuthRecord.getVerifyUserId() != null) {
|
|
|
|
+ com.yonge.cooleshow.biz.dal.entity.SysUser sysUser = mapByIds.get(musicSheetAuthRecord.getVerifyUserId());
|
|
|
|
+ if (sysUser != null) {
|
|
|
|
+ record.setAuditName(sysUser.getUsername());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ return teacherMusicSheetVoIPage;
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -2631,7 +2667,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
- * @param musicSheetId 业务端曲目ID
|
|
|
|
|
|
+ *
|
|
* @return CbsMusicSheetWrapper.MusicSheet
|
|
* @return CbsMusicSheetWrapper.MusicSheet
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
@@ -2697,6 +2733,105 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
return musicSheetCloudIPage;
|
|
return musicSheetCloudIPage;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 获取简单的曲谱详情
|
|
|
|
+ *
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public MusicSheetWrapper.MusicSheetDetail detailSmall(MusicSheetWrapper.MusicSheetDetailQuery query,SysUser sysUser) {
|
|
|
|
+ // 曲目信息
|
|
|
|
+ MusicSheet musicSheet = musicSheetService.getDao().get(query.getMusicSheetId());
|
|
|
|
+ if (Objects.isNull(musicSheet)) {
|
|
|
|
+ throw new BizException("曲目信息不存在");
|
|
|
|
+ }
|
|
|
|
+ if (musicSheet.getCbsMusicSheetId() ==null) {
|
|
|
|
+ throw new BizException("曲目信息异常");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 设置查询机构 还是平台数据
|
|
|
|
+ if (StringUtils.isBlank(query.getTenantAlbumId()) && StringUtils.isNotBlank(query.getProviderType())) {
|
|
|
|
+ if (SourceTypeEnum.PLATFORM.name().equals(query.getProviderType())) {
|
|
|
|
+ query.setTenantAlbumId(null);
|
|
|
|
+ } else {
|
|
|
|
+ query.setTenantAlbumId("-1");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ CbsMusicSheetWrapper.MusicSheet cbsMusicSheet = musicSheetService.cbsDetail(musicSheet.getCbsMusicSheetId());
|
|
|
|
+ cbsMusicSheet.setBizId(query.getMusicSheetId());
|
|
|
|
+
|
|
|
|
+ MusicSheetWrapper.MusicSheetDetail musicSheetDetail = JSON.parseObject(JSON.toJSONString(cbsMusicSheet), MusicSheetWrapper.MusicSheetDetail.class);
|
|
|
|
+ musicSheetDetail.setId(query.getMusicSheetId().toString());
|
|
|
|
+
|
|
|
|
+ MusicSheetDetailVo detail = musicSheetService.detail(query.getMusicSheetId().toString(), sysUser,query.getClient(), query.getTenantAlbumId());
|
|
|
|
+ if (detail != null) {
|
|
|
|
+ // 设置曲目付费类型
|
|
|
|
+ musicSheetDetail.setPaymentType(detail.getPaymentType());
|
|
|
|
+ // 设置业务端曲目分类
|
|
|
|
+ musicSheetDetail.setScoreType(detail.getScoreType());
|
|
|
|
+ musicSheetDetail.setIsConvertibleScore(detail.getNotation() ==YesOrNoEnum.YES);
|
|
|
|
+ musicSheetDetail.setPlay(detail.getPlay());
|
|
|
|
+ musicSheetDetail.setMusicPrice(detail.getMusicPrice());
|
|
|
|
+ musicSheetDetail.setFavorite(detail.getFavorite());
|
|
|
|
+ musicSheetDetail.setFavoriteCount(detail.getFavoriteCount());
|
|
|
|
+ musicSheetDetail.setCoursewareId(detail.getCoursewareId());
|
|
|
|
+ musicSheetDetail.setCoursewareStatus(detail.getCoursewareStatus());
|
|
|
|
+ musicSheetDetail.setOrderStatus(detail.getOrderStatus());
|
|
|
|
+ musicSheetDetail.setUserName(detail.getUserName());
|
|
|
|
+ musicSheetDetail.setMusicSubject(detail.getMusicSubject());
|
|
|
|
+ }
|
|
|
|
+ musicSheetDetail.setFavoriteCount(musicSheet.getFavoriteCount());
|
|
|
|
+ //获取曲目专辑数量
|
|
|
|
+ musicSheetDetail.setAlbumNums(musicSheetService.getDao().selectMusicAlbumNum(query.getMusicSheetId()));
|
|
|
|
+ musicSheetDetail.setExquisiteFlag(musicSheet.getExquisiteFlag());
|
|
|
|
+ musicSheetDetail.setMusicSubject(musicSheet.getMusicSubject());
|
|
|
|
+ musicSheetDetail.setUserId(musicSheet.getUserId());
|
|
|
|
+
|
|
|
|
+ //mp3Url 如果是合奏 取伴奏,
|
|
|
|
+ if (musicSheetDetail.getMusicSheetType() == EMusicSheetType.CONCERT) {
|
|
|
|
+ if (CollectionUtils.isNotEmpty(cbsMusicSheet.getMusicSheetAccompanimentList())) {
|
|
|
|
+ Optional<CbsMusicSheetWrapper.MusicSheetAccompaniment> first = cbsMusicSheet.getMusicSheetAccompanimentList().stream()
|
|
|
|
+ .filter(o -> o.getAudioPlayType() == EAudioPlayType.PLAY).collect(Collectors.toList()).stream().findFirst();
|
|
|
|
+ first.ifPresent(musicSheetAccompaniment -> musicSheetDetail.setMp3Url(musicSheetAccompaniment.getAudioFileUrl()));
|
|
|
|
+ }
|
|
|
|
+ } else if (CollectionUtils.isNotEmpty(cbsMusicSheet.getMusicSheetSoundList())) {
|
|
|
|
+ musicSheetDetail.setMusicSheetSoundList(new ArrayList<>());
|
|
|
|
+ // 按乐器取原音 有乐器按乐器来,没乐器用声部,都不匹配取第一个
|
|
|
|
+ List<CbsMusicSheetWrapper.MusicSheetSound> sheetSoundList = cbsMusicSheet.getMusicSheetSoundList().stream()
|
|
|
|
+ .filter(o -> o.getAudioPlayType() == EAudioPlayType.PLAY)
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ if (query.getInstrumentId() !=null) {
|
|
|
|
+ Optional<CbsMusicSheetWrapper.MusicSheetSound> first =sheetSoundList.stream()
|
|
|
|
+ .filter(o->StringUtils.isNotBlank(o.getMusicalInstrumentId()))
|
|
|
|
+ .filter(o -> o.getMusicalInstrumentId().equals(query.getInstrumentId().toString())).findFirst();
|
|
|
|
+ if (first.isPresent()) {
|
|
|
|
+ musicSheetDetail.setMp3Url(first.get().getAudioFileUrl());
|
|
|
|
+ musicSheetDetail.setMusicSheetSoundList(Collections.singletonList(first.get()));
|
|
|
|
+ }
|
|
|
|
+ } else if (query.getSubjectId() != null){
|
|
|
|
+ Subject subject = subjectService.get(query.getSubjectId());
|
|
|
|
+ if (subject != null && subject.getInstrumentId() !=null) {
|
|
|
|
+ Optional<CbsMusicSheetWrapper.MusicSheetSound> first = sheetSoundList.stream()
|
|
|
|
+ .filter(o->StringUtils.isNotBlank(o.getMusicalInstrumentId()))
|
|
|
|
+ .filter(o -> o.getMusicalInstrumentId().equals(subject.getInstrumentId().toString())).findFirst();
|
|
|
|
+ if (first.isPresent()) {
|
|
|
|
+ musicSheetDetail.setMp3Url(first.get().getAudioFileUrl());
|
|
|
|
+ musicSheetDetail.setMusicSheetSoundList(Collections.singletonList(first.get()));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (CollectionUtils.isEmpty(musicSheetDetail.getMusicSheetSoundList()) && CollectionUtils.isNotEmpty(sheetSoundList)) {
|
|
|
|
+ Optional<CbsMusicSheetWrapper.MusicSheetSound> first = sheetSoundList.stream().findFirst();
|
|
|
|
+ if (first.isPresent()) {
|
|
|
|
+ musicSheetDetail.setMp3Url(first.get().getAudioFileUrl());
|
|
|
|
+ musicSheetDetail.setMusicSheetSoundList(Collections.singletonList(first.get()));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return musicSheetDetail;
|
|
|
|
+ }
|
|
|
|
+
|
|
private Map<Long,MusicSheet> getMapByCbsIds(List<Long> cbsMusicSheetIds) {
|
|
private Map<Long,MusicSheet> getMapByCbsIds(List<Long> cbsMusicSheetIds) {
|
|
if (CollectionUtils.isEmpty(cbsMusicSheetIds)) {
|
|
if (CollectionUtils.isEmpty(cbsMusicSheetIds)) {
|
|
return new HashMap<>();
|
|
return new HashMap<>();
|