|  | @@ -0,0 +1,118 @@
 | 
	
		
			
				|  |  | +package com.yonge.cooleshow.teacher.controller;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +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.search.MusicAlbumDetailSearch;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumSearch;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicAlbumSearch;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.entity.Student;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.service.AppVersionInfoService;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.service.MusicAlbumService;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.service.StudentService;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.vo.AlbumDetailVo;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.vo.MusicAlbumVo;
 | 
	
		
			
				|  |  | +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.page.PageInfo;
 | 
	
		
			
				|  |  | +import com.yonge.toolset.base.page.QueryInfo;
 | 
	
		
			
				|  |  | +import com.yonge.toolset.mybatis.support.PageUtil;
 | 
	
		
			
				|  |  | +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;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 专辑表 web 控制层
 | 
	
		
			
				|  |  | + * @author yzp
 | 
	
		
			
				|  |  | + * @date 2022-03-26 00:21:46
 | 
	
		
			
				|  |  | + * @version v1.0
 | 
	
		
			
				|  |  | + **/
 | 
	
		
			
				|  |  | +@RestController
 | 
	
		
			
				|  |  | +@RequestMapping("/music/album")
 | 
	
		
			
				|  |  | +@Api(tags = "专辑表 API接口")
 | 
	
		
			
				|  |  | +public class MusicAlbumController extends BaseController {
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private SysUserFeignService sysUserFeignService;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Autowired
 | 
	
		
			
				|  |  | +	private MusicAlbumService musicAlbumService;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private StudentService studentService;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private AppVersionInfoService appVersionInfoService;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @ApiOperation(value = "分页查询", httpMethod="POST", consumes="application/json", produces="application/json")
 | 
	
		
			
				|  |  | +    @PostMapping(value="/list", consumes="application/json", produces="application/json")
 | 
	
		
			
				|  |  | +    public HttpResponseResult<PageInfo<MusicAlbumVo>> list(@RequestBody MusicAlbumSearch query) {
 | 
	
		
			
				|  |  | +        SysUser sysUser = sysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  | +        if (sysUser == null  || sysUser.getId() == null) {
 | 
	
		
			
				|  |  | +            return failed("用户信息获取失败");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // 检查app版本
 | 
	
		
			
				|  |  | +        query.setAuditVersion(appVersionInfoService.getAppAuditVersion(query.getPlatform(),query.getVersion()));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        query.setAlbumStatus(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  | +        query.setSortBy(1);
 | 
	
		
			
				|  |  | +        IPage<MusicAlbumVo> iPage = musicAlbumService.selectStudentPage(PageUtil.getPage(query),query);
 | 
	
		
			
				|  |  | +        return succeed(PageUtil.pageInfo(iPage));
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 专辑详情
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    @PostMapping(value = "/detail",  consumes="application/json", produces="application/json")
 | 
	
		
			
				|  |  | +    @ApiOperation(value = "专辑详情",httpMethod="POST", consumes="application/json", produces="application/json")
 | 
	
		
			
				|  |  | +    public HttpResponseResult<AlbumDetailVo> detail(@Valid @RequestBody MusicAlbumDetailSearch query) {
 | 
	
		
			
				|  |  | +        SysUser sysUser = sysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  | +        if (sysUser == null  || sysUser.getId() == null) {
 | 
	
		
			
				|  |  | +            return failed("用户信息获取失败");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        query.setType(2);
 | 
	
		
			
				|  |  | +        query.setState(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  | +        YesOrNoEnum yesOrNoEnum = musicAlbumService.checkFavorite(sysUser.getId(),query.getId() );
 | 
	
		
			
				|  |  | +        AlbumDetailVo albumDetailVo = musicAlbumService.detail(PageUtil.getPage(query), query);
 | 
	
		
			
				|  |  | +        albumDetailVo.setFavorite(yesOrNoEnum);
 | 
	
		
			
				|  |  | +        return succeed(albumDetailVo);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 专辑收藏
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    // @PostMapping("/favorite/{id}")
 | 
	
		
			
				|  |  | +    @ApiOperation(value = "专辑收藏/取消收藏")
 | 
	
		
			
				|  |  | +    public HttpResponseResult<Boolean> favorite(@ApiParam(value = "专辑编号", required = true) @PathVariable("id") Long id) {
 | 
	
		
			
				|  |  | +        SysUser sysUser = sysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  | +        if (sysUser == null  || sysUser.getId() == null) {
 | 
	
		
			
				|  |  | +            return failed("用户信息获取失败");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return succeed(musicAlbumService.setFavorite(sysUser.getId(),id));
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 专辑收藏
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    // @GetMapping("/favorite")
 | 
	
		
			
				|  |  | +    @ApiOperation(value = "收藏专辑列表")
 | 
	
		
			
				|  |  | +    public HttpResponseResult<PageInfo<MusicAlbumVo>> favoriteAlbum(QueryInfo query) {
 | 
	
		
			
				|  |  | +        SysUser sysUser = sysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  | +        if (sysUser == null  || sysUser.getId() == null) {
 | 
	
		
			
				|  |  | +            return failed("用户信息获取失败");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        StudentMusicAlbumSearch search = new StudentMusicAlbumSearch();
 | 
	
		
			
				|  |  | +        search.setStudentId(sysUser.getId());
 | 
	
		
			
				|  |  | +        search.setAlbumStatus(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  | +        IPage<MusicAlbumVo> albumVoIPage = musicAlbumService.favoriteAlbum(PageUtil.getPage(query), search);
 | 
	
		
			
				|  |  | +        return succeed(PageUtil.pageInfo(albumVoIPage));
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +}
 |