|  | @@ -255,24 +255,34 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  | -    public IPage<MusicSheetVo> queryRelatedList(IPage<MusicSheetVo> page, Long albumId, Long musicSheetId) {
 | 
	
		
			
				|  |  | +    public IPage<MusicSheetVo> queryRelatedList(IPage<MusicSheetVo> page, MusicSheetRelatedQueryInfo queryInfo) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        if (albumId == null) {
 | 
	
		
			
				|  |  | +        if (queryInfo.getAlbumId() == null) {
 | 
	
		
			
				|  |  |              // 查询专辑下的所有曲目
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            MusicSheet musicSheet = baseMapper.selectById(musicSheetId);
 | 
	
		
			
				|  |  | +            MusicSheet musicSheet = baseMapper.selectById(queryInfo.getMusicSheetId());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              if (musicSheet != null) {
 | 
	
		
			
				|  |  |                  MusicAlbumDetailSearch query = new MusicAlbumDetailSearch();
 | 
	
		
			
				|  |  |                  query.setMusicTagIds(musicSheet.getMusicTag());
 | 
	
		
			
				|  |  |                  query.setAuditVersion(musicSheet.getAuditVersion());
 | 
	
		
			
				|  |  | +                query.setMusicSheetType(musicSheet.getMusicSheetType());
 | 
	
		
			
				|  |  | +                if (queryInfo.getSubjectId() !=null) {
 | 
	
		
			
				|  |  | +                    query.setSubjectIdList(Lists.newArrayList(queryInfo.getSubjectId()));
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                query.setExcludeMusicIds(Lists.newArrayList(queryInfo.getMusicSheetId()));
 | 
	
		
			
				|  |  | +                if (StringUtils.isNotBlank(musicSheet.getMusicSubject())) {
 | 
	
		
			
				|  |  | +                    List<Long> subjectIds = Arrays.stream(musicSheet.getMusicSubject().split(",")).filter(StringUtils::isNotBlank).map(Long::parseLong).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +                    query.setMustMatchSubjectIds(subjectIds);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  |                  return page.setRecords(baseMapper.selectPage(page, query));
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              // 查询带有当前曲目标签的所有曲目
 | 
	
		
			
				|  |  |              MusicAlbumDetailSearch query = new MusicAlbumDetailSearch();
 | 
	
		
			
				|  |  | -            query.setId(albumId);
 | 
	
		
			
				|  |  | +            query.setId(queryInfo.getAlbumId());
 | 
	
		
			
				|  |  |              query.setType(2);
 | 
	
		
			
				|  |  | +            query.setExcludeMusicIds(Lists.newArrayList(queryInfo.getMusicSheetId()));
 | 
	
		
			
				|  |  |              return page.setRecords(baseMapper.selectAlbumDetailPage(page, query));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return null;
 | 
	
	
		
			
				|  | @@ -724,6 +734,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 | 
	
		
			
				|  |  |                  detail.setOrderNo(musicSheetPurchaseRecord.getOrderNo());
 | 
	
		
			
				|  |  |                  if (OrderStatusEnum.PAID.getCode().equals(musicSheetPurchaseRecord.getOrderStatus().getCode())) {
 | 
	
		
			
				|  |  |                      detail.setPlay(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  | +                    detail.setBuyed(true);
 | 
	
		
			
				|  |  |                      return;
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -777,6 +788,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 | 
	
		
			
				|  |  |                      .count();
 | 
	
		
			
				|  |  |              if (count > 0) {
 | 
	
		
			
				|  |  |                  detail.setPlay(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  | +                detail.setBuyed(true);
 | 
	
		
			
				|  |  |                  return;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -790,7 +802,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 | 
	
		
			
				|  |  |                  List<Long> musicSheetIds = tenantAlbumMusicService.getMusicIdsByIds(tenantAlbumIds);
 | 
	
		
			
				|  |  |                  if (musicSheetIds.contains(detail.getId())) {
 | 
	
		
			
				|  |  |                      detail.setPlay(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  | -                    return;
 | 
	
		
			
				|  |  | +                    detail.setBuyed(true);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          } else if (ClientEnum.TEACHER == userType) {
 | 
	
	
		
			
				|  | @@ -800,7 +812,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 | 
	
		
			
				|  |  |                  List<Long> musicSheetIds = tenantAlbumMusicService.getMusicIdsByTenantIds(teacher.getTenantId());
 | 
	
		
			
				|  |  |                  if (musicSheetIds.contains(detail.getId())) {
 | 
	
		
			
				|  |  |                      detail.setPlay(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  | -                    return;
 | 
	
		
			
				|  |  | +                    detail.setBuyed(true);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 |