|  | @@ -0,0 +1,115 @@
 | 
	
		
			
				|  |  | +package com.yonge.cooleshow.website.controller.open;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import com.baomidou.mybatisplus.core.metadata.IPage;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.auth.api.entity.SysUser;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.dto.MusicSheetDto;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumSearch;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.dto.search.MusicSheetSearch;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetSearch;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.enums.ChargeTypeEnum;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.service.MusicAlbumService;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.support.PageUtil;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.vo.AlbumAndSheetVo;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.vo.MusicAlbumVo;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.vo.MusicSheetWebsiteDetailVo;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.common.controller.BaseController;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.common.entity.HttpResponseResult;
 | 
	
		
			
				|  |  | +import com.yonge.toolset.base.page.PageInfo;
 | 
	
		
			
				|  |  | +import com.yonge.toolset.base.page.QueryInfo;
 | 
	
		
			
				|  |  | +import io.swagger.annotations.Api;
 | 
	
		
			
				|  |  | +import io.swagger.annotations.ApiOperation;
 | 
	
		
			
				|  |  | +import io.swagger.annotations.ApiParam;
 | 
	
		
			
				|  |  | +import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | +import org.springframework.web.bind.annotation.*;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import javax.validation.Valid;
 | 
	
		
			
				|  |  | +import java.util.Date;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 曲谱表 web 控制层
 | 
	
		
			
				|  |  | + * @author yzp
 | 
	
		
			
				|  |  | + * @date 2022-03-26 00:21:46
 | 
	
		
			
				|  |  | + * @version v1.0
 | 
	
		
			
				|  |  | + **/
 | 
	
		
			
				|  |  | +@RestController
 | 
	
		
			
				|  |  | +@RequestMapping("/open/music/sheet")
 | 
	
		
			
				|  |  | +@Api(tags = "开放曲谱接口")
 | 
	
		
			
				|  |  | +public class OpenMusicSheetController extends BaseController {
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private SysUserFeignService sysUserFeignService;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Autowired
 | 
	
		
			
				|  |  | +	private MusicSheetService musicSheetService;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private MusicAlbumService musicAlbumService;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 查询单条
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    @GetMapping("/detail/{id}")
 | 
	
		
			
				|  |  | +    @ApiOperation(value = "曲目详情", notes = "传入musicTag")
 | 
	
		
			
				|  |  | +    public HttpResponseResult<MusicSheetWebsiteDetailVo> detail(@ApiParam(value = "曲谱编号", required = true) @PathVariable("id") Long id) {
 | 
	
		
			
				|  |  | +        SysUser sysUser = sysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  | +        MusicSheetWebsiteDetailVo detail = musicSheetService.websiteDetail(id,sysUser);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return succeed(detail);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @ApiOperation(value = "首页曲目分页查询", httpMethod="POST", consumes="application/json", produces="application/json")
 | 
	
		
			
				|  |  | +    @PostMapping(value="/list", consumes="application/json", produces="application/json")
 | 
	
		
			
				|  |  | +    public HttpResponseResult<PageInfo<MusicSheetVo>> list(@RequestBody StudentMusicSheetSearch query) {
 | 
	
		
			
				|  |  | +        SysUser sysUser = sysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // 检查app版本
 | 
	
		
			
				|  |  | +        query.setAuditVersion(YesOrNoEnum.NO);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // 学生 只能看通过审核 并且 启用的 曲目
 | 
	
		
			
				|  |  | +        query.setState(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  | +        query.setAuditStatus(AuthStatusEnum.PASS);
 | 
	
		
			
				|  |  | +        if (sysUser != null) {
 | 
	
		
			
				|  |  | +            query.setStudentId(sysUser.getId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        IPage<MusicSheetVo> musicSheetVoIPage = musicSheetService.selectStudentPage(PageUtil.getPage(query), query);
 | 
	
		
			
				|  |  | +        return succeed(PageUtil.pageInfo(musicSheetVoIPage));
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @ApiOperation(value = "乐谱(专辑和曲目同时查询)分页查询", httpMethod="POST", consumes="application/json", produces="application/json")
 | 
	
		
			
				|  |  | +    @PostMapping(value="/albumAndSheetList", consumes="application/json", produces="application/json")
 | 
	
		
			
				|  |  | +    public HttpResponseResult<AlbumAndSheetVo> albumAndSheetList(@RequestBody StudentMusicSheetSearch query) {
 | 
	
		
			
				|  |  | +        SysUser sysUser = sysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // 学生 只能看通过审核 并且 启用的 曲目
 | 
	
		
			
				|  |  | +        query.setState(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  | +        query.setAuditVersion(YesOrNoEnum.NO);
 | 
	
		
			
				|  |  | +        query.setAuditStatus(AuthStatusEnum.PASS);
 | 
	
		
			
				|  |  | +        if (sysUser != null) {
 | 
	
		
			
				|  |  | +            query.setStudentId(sysUser.getId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        query.setRows(query.getSheetRow());
 | 
	
		
			
				|  |  | +        IPage<MusicSheetVo> musicSheetVoIPage = musicSheetService.selectStudentPage(PageUtil.getPage(query), query);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        MusicAlbumSearch musicAlbumSearch = new MusicAlbumSearch();
 | 
	
		
			
				|  |  | +        musicAlbumSearch.setAlbumStatus(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  | +        musicAlbumSearch.setSortBy(1);
 | 
	
		
			
				|  |  | +        musicAlbumSearch.setIdAndName(query.getIdAndName());
 | 
	
		
			
				|  |  | +        musicAlbumSearch.setAuditVersion(YesOrNoEnum.NO);
 | 
	
		
			
				|  |  | +        musicAlbumSearch.setAlbumTagIds(query.getMusicTagIds());
 | 
	
		
			
				|  |  | +        musicAlbumSearch.setPage(query.getPage());
 | 
	
		
			
				|  |  | +        musicAlbumSearch.setRows(query.getAlbumRow());
 | 
	
		
			
				|  |  | +        IPage<MusicAlbumVo> musicAlbumVoIPage = musicAlbumService.selectPage(PageUtil.getPage(musicAlbumSearch), musicAlbumSearch);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        AlbumAndSheetVo albumAndSheetVo = new AlbumAndSheetVo();
 | 
	
		
			
				|  |  | +        albumAndSheetVo.setMusicSheetList(PageUtil.pageInfo(musicSheetVoIPage));
 | 
	
		
			
				|  |  | +        albumAndSheetVo.setMusicAlbumList(PageUtil.pageInfo(musicAlbumVoIPage));
 | 
	
		
			
				|  |  | +        return succeed(albumAndSheetVo);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +}
 |