|
@@ -3,21 +3,25 @@ package com.yonge.cooleshow.biz.dal.service.impl;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.dayaedu.cbs.common.enums.music.EMusicSourceType;
|
|
|
-import com.dayaedu.cbs.common.enums.school.EMusicSheetType;
|
|
|
import com.dayaedu.cbs.openfeign.properties.OpenFeignClientConfigProperties;
|
|
|
import com.dayaedu.cbs.openfeign.service.CbsMusicSheetService;
|
|
|
import com.dayaedu.cbs.openfeign.wrapper.music.*;
|
|
|
import com.microsvc.toolkit.common.response.paging.PageInfo;
|
|
|
import com.microsvc.toolkit.common.response.paging.QueryInfo;
|
|
|
+import com.yonge.cooleshow.auth.api.entity.SysUser;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.Subject;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.MusicSheetTypeEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
|
|
|
import com.yonge.cooleshow.biz.dal.service.MusicTagService;
|
|
|
import com.yonge.cooleshow.biz.dal.service.SubjectService;
|
|
|
import com.yonge.cooleshow.biz.dal.service.SysConfigService;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
|
|
|
+import com.yonge.cooleshow.biz.dal.vo.MusicSheetDetailVo;
|
|
|
import com.yonge.cooleshow.common.constant.SysConfigConstant;
|
|
|
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
|
|
|
import com.yonge.toolset.base.exception.BizException;
|
|
|
-import com.yonge.toolset.payment.util.DistributedLock;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.redisson.api.RLock;
|
|
|
import org.redisson.api.RedissonClient;
|
|
@@ -25,7 +29,6 @@ import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.util.List;
|
|
@@ -52,6 +55,8 @@ public class CbsMusicSheetServiceImpl implements CbsMusicSheetService {
|
|
|
|
|
|
@Autowired
|
|
|
private RedissonClient redissonClient;
|
|
|
+ @Autowired
|
|
|
+ private SysUserService sysUserService;
|
|
|
|
|
|
|
|
|
@Override
|
|
@@ -194,4 +199,61 @@ public class CbsMusicSheetServiceImpl implements CbsMusicSheetService {
|
|
|
musicSheetUpdate.setUserId(userId);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询曲目应用拓展信息
|
|
|
+ * @param query CbsMusicSheetAppWrapper.MusicSheetQuery
|
|
|
+ * @return CbsMusicSheetAppWrapper.MusicSheetDetail
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public CbsMusicSheetAppWrapper.MusicSheetDetail getMusicSheetDetail(CbsMusicSheetAppWrapper.MusicSheetQuery query) {
|
|
|
+
|
|
|
+ SysUser sysUser = sysUserService.getByUserId(query.getUserId());
|
|
|
+ if (Objects.isNull(sysUser)) {
|
|
|
+ throw new BizException("用户信息获取失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 根据总控曲目ID,查询应用端曲目
|
|
|
+ MusicSheet musicScore = musicSheetService.lambdaQuery()
|
|
|
+ .eq(MusicSheet::getCbsMusicSheetId, query.getCbsMusicId())
|
|
|
+ .eq(MusicSheet::getDelFlag, false)
|
|
|
+ .last("limit 1")
|
|
|
+ .one();
|
|
|
+ if (Objects.isNull(musicScore)) {
|
|
|
+ throw new BizException("曲目不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 客户端类型
|
|
|
+ ClientEnum clientEnum = ClientEnum.SYSTEM;
|
|
|
+ if (ClientEnum.TEACHER.getCode().equals(query.getClientType())
|
|
|
+ || ClientEnum.STUDENT.getCode().equals(query.getClientType())) {
|
|
|
+ clientEnum = ClientEnum.valueOf(query.getClientType());
|
|
|
+ }
|
|
|
+ MusicSheetDetailVo detail = musicSheetService.detail(musicScore.getId().toString(), sysUser, clientEnum, query.getTenantAlbumId());
|
|
|
+ if (Objects.isNull(detail)) {
|
|
|
+ throw new BizException("曲目详情不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 返回应用端曲目
|
|
|
+ CbsMusicSheetAppWrapper.MusicSheetDetail music = CbsMusicSheetAppWrapper.MusicSheetDetail
|
|
|
+ .builder()
|
|
|
+ .bizId(musicScore.getId())
|
|
|
+ .paymentType(detail.getPaymentType())
|
|
|
+ .scoreType(detail.getScoreType())
|
|
|
+ .isConvertibleScore(detail.getNotation() == YesOrNoEnum.YES)
|
|
|
+ .play(detail.getPlay().name())
|
|
|
+ .buyed(detail.getBuyed())
|
|
|
+ .musicPrice(detail.getMusicPrice())
|
|
|
+ .specialPercussionFlag(false)
|
|
|
+ .build();
|
|
|
+
|
|
|
+ // 如果是合奏 并且乐器ID = 2268
|
|
|
+ if ("2268".equals(query.getMusicalInstrumentIds())
|
|
|
+ && musicScore.getMusicSheetType() == MusicSheetTypeEnum.CONCERT) {
|
|
|
+ // 设置特殊打击乐标识
|
|
|
+ music.setSpecialPercussionFlag(true);
|
|
|
+ }
|
|
|
+
|
|
|
+ return music;
|
|
|
+ }
|
|
|
}
|