| 
					
				 | 
			
			
				@@ -0,0 +1,134 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+package com.yonge.cooleshow.student.controller.open; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.alibaba.fastjson.JSON; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.baomidou.mybatisplus.core.metadata.IPage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.dayaedu.cbs.common.enums.school.EMusicSheetType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.microsvc.toolkit.common.response.template.R; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.auth.api.client.SysUserFeignService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.auth.api.entity.SysUser; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.entity.Student; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.entity.UserMusic; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.enums.ClientEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.service.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.vo.MusicSheetDetailVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.wrapper.InstrumentWrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.wrapper.MusicSheetWrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.common.controller.BaseController; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.common.entity.HttpResponseResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.common.enums.YesOrNoEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.toolset.base.exception.BizException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.toolset.base.page.PageInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.toolset.mybatis.support.PageUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.swagger.annotations.Api; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.swagger.annotations.ApiImplicitParam; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.swagger.annotations.ApiImplicitParams; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.swagger.annotations.ApiOperation; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.apache.commons.collections.CollectionUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.bind.annotation.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import javax.annotation.Resource; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Arrays; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 曲谱表 web 控制层 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @author yzp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @date 2022-03-26 00:21:46 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @version v1.0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ **/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@RestController 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@RequestMapping("${app-config.url.student:}/open/musicSheet") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@Api(tags = "曲谱表 API接口") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+public class OpenMusicSheetCbsController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Resource 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private SysUserFeignService sysUserFeignService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	@Resource 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private MusicSheetService musicSheetService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private InstrumentService instrumentService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private UserMusicService userMusicService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 查询单条 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param id 详情ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return R<MusicSheetVo.MusicSheet> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiOperation(value = "查询内容平台数据") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiImplicitParams({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @ApiImplicitParam(name = "id", value = "id", dataType = "long") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping("/cbsDetail/{id}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public R<MusicSheetVo.MusicSheetDetail> cbsDetail(@PathVariable("id") Long id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                      @RequestParam(required = false) String tenantAlbumId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                      @RequestParam(required = false) Long userMusicId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CbsMusicSheetWrapper.MusicSheet musicSheet = musicSheetService.cbsDetail(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        musicSheet.setBizId(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MusicSheetVo.MusicSheetDetail musicSheetDetail = JSON.parseObject(JSON.toJSONString(musicSheet), MusicSheetVo.MusicSheetDetail.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MusicSheetDetailVo detail; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (userMusicId != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            UserMusic userMusic = userMusicService.detail(userMusicId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (userMusic == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                throw new BizException("参数错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                SysUser sysUser = sysUserFeignService.queryUserById(userMusic.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                detail = musicSheetService.detail(id.toString(), sysUser, ClientEnum.STUDENT, tenantAlbumId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            detail = musicSheetService.detail(id.toString(), null, ClientEnum.STUDENT, tenantAlbumId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (detail == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            musicSheetDetail.setBizMusicCategoryId(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 设置曲目付费类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            musicSheetDetail.setPaymentType(detail.getPaymentType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 设置业务端曲目分类 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            musicSheetDetail.setBizMusicCategoryId(detail.getCategoriesId() == null ? null : detail.getCategoriesId().longValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            musicSheetDetail.setScoreType(detail.getScoreType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            musicSheetDetail.setIsConvertibleScore(detail.getNotation() ==YesOrNoEnum.YES); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            musicSheetDetail.setPlay(detail.getPlay()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            musicSheetDetail.setBuyed(detail.getBuyed()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            musicSheetDetail.setMusicPrice(detail.getMusicPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 如果是合奏 并且乐器ID = 2268 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        musicSheetDetail.setSpecialPercussionFlag(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ("2268".equals(musicSheetDetail.getMusicalInstrumentIds()) && musicSheetDetail.getMusicSheetType() == EMusicSheetType.CONCERT) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            musicSheetDetail.setSpecialPercussionFlag(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 设置乐器信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (StringUtils.isNotBlank(musicSheetDetail.getMusicalInstrumentIds())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<Long> instrumentIds = Arrays.stream(musicSheetDetail.getMusicalInstrumentIds().split(",")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .map(Long::parseLong).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (CollectionUtils.isNotEmpty(instrumentIds) && CollectionUtils.isNotEmpty(musicSheetDetail.getMusicalInstruments())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Map<Long, InstrumentWrapper.Instrument> instrumentMap = instrumentService.getMapByIds(instrumentIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (CbsMusicSheetWrapper.MusicalInstrument musicalInstrument : musicSheetDetail.getMusicalInstruments()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    InstrumentWrapper.Instrument instrument = instrumentMap.get(musicalInstrument.getId().longValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (instrument != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        musicalInstrument.setOrientation(instrument.getOrientation()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return R.from(musicSheetDetail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |