|
@@ -472,6 +472,45 @@ public class SysMusicScoreServiceImpl extends BaseServiceImpl<Integer, SysMusicS
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public MusicSheetWrapper.ClientMusicSheetInfo queryMusicScoreDetail(MusicSheetWrapper.ClientMusicSheetInfoQuery query) {
|
|
|
+ MusicSheetWrapper.ClientMusicSheetInfo clientMusicSheetInfo = new MusicSheetWrapper.ClientMusicSheetInfo();
|
|
|
+
|
|
|
+ SysMusicScore sysMusicScore = get(query.getMusicSheetId());
|
|
|
+
|
|
|
+ if (sysMusicScore == null) {
|
|
|
+ throw new BizException("曲目不存在");
|
|
|
+ }
|
|
|
+ clientMusicSheetInfo.setMusicSheetId(sysMusicScore.getId());
|
|
|
+ clientMusicSheetInfo.setMusicSheetName(sysMusicScore.getName());
|
|
|
+ // 根据用户会员判断是否锁定,免费曲目为试用
|
|
|
+ if (query.getUserType()!=null && ClientEnum.STUDENT==query.getUserType()) {
|
|
|
+ // 查询有效的会员
|
|
|
+ List<Integer> activationVipIds = cloudTeacherOrderDao.getActivationVipIds(query.getUserId());
|
|
|
+
|
|
|
+ // 获取会员的曲目分类
|
|
|
+ List<MemberRankCategoryMapper> categoryMapperList = memberRankCategoryMapperService.getByMemberRankId(activationVipIds);
|
|
|
+ if (CollectionUtils.isEmpty(categoryMapperList)) {
|
|
|
+ categoryMapperList = new ArrayList<>();
|
|
|
+ }
|
|
|
+ List<Integer> categoryIds = categoryMapperList.stream().map(MemberRankCategoryMapper::getCategoryId).distinct().collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 判断曲目是否在分类中
|
|
|
+ if (categoryIds.contains(sysMusicScore.getCbsMusicCategoriesId())) {
|
|
|
+ clientMusicSheetInfo.setUseStatus("UNLOCK");
|
|
|
+ } else if (StringUtils.isBlank(sysMusicScore.getRankIds())) {
|
|
|
+ clientMusicSheetInfo.setUseStatus("FREE");
|
|
|
+ } else {
|
|
|
+ clientMusicSheetInfo.setUseStatus("LOCK");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ clientMusicSheetInfo.setUseStatus("UNLOCK");
|
|
|
+ }
|
|
|
+
|
|
|
+ return clientMusicSheetInfo;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
private void syncMusicSheet(SysMusicScore record) {
|
|
|
List<SysMusicScoreAccompaniment> list = sysMusicScoreAccompanimentDao.findByMusicScoreId(record.getId());
|
|
|
|