|  | @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.additional.update.impl.LambdaU
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
	
		
			
				|  |  |  import com.dayaedu.cbs.openfeign.service.CbsMusicSheetService;
 | 
	
		
			
				|  |  |  import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetApplicationExtendWrapper;
 | 
	
		
			
				|  |  | +import com.beust.jcommander.internal.Lists;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.auth.api.entity.SysUser;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.biz.dal.dao.MusicAlbumDao;
 | 
	
	
		
			
				|  | @@ -393,8 +394,15 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 | 
	
		
			
				|  |  |          return musicSheetShareVo;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public MusicSheetDetailVo detail(Long id, SysUser sysUser, ClientEnum userType) {
 | 
	
		
			
				|  |  | +        return detail(id, sysUser, userType,null);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  | +    public MusicSheetDetailVo detail(Long id, SysUser sysUser, ClientEnum userType,Long tenantAlbumId) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          MusicSheetDetailVo detail = baseMapper.detail(id);
 | 
	
		
			
				|  |  |          if (detail == null) {
 | 
	
		
			
				|  |  |              throw new BizException("未找到曲目信息");
 | 
	
	
		
			
				|  | @@ -429,18 +437,43 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 | 
	
		
			
				|  |  |              String reason = musicSheetAuthRecordService.selectAuditReason(id);
 | 
	
		
			
				|  |  |              detail.setReason(reason);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        if (detail.getPaymentType().contains(ChargeTypeEnum.FREE.getCode())) {
 | 
	
		
			
				|  |  | -            detail.setPlay(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  | -        } else if (ClientEnum.STUDENT.getCode().equals(userType.getCode())
 | 
	
		
			
				|  |  | -                || ClientEnum.TEACHER.getCode().equals(userType.getCode())) {
 | 
	
		
			
				|  |  | -            // 2022 7 20  老师也能购买曲目
 | 
	
		
			
				|  |  | -            if (ClientEnum.TEACHER.getCode().equals(userType.getCode()) && detail.getUserId().equals(sysUser.getId())) {
 | 
	
		
			
				|  |  | +        if (tenantAlbumId == null) {
 | 
	
		
			
				|  |  | +            if (detail.getPaymentType().contains(ChargeTypeEnum.FREE.getCode())) {
 | 
	
		
			
				|  |  |                  detail.setPlay(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  | +            } else if (ClientEnum.STUDENT.getCode().equals(userType.getCode())
 | 
	
		
			
				|  |  | +                || ClientEnum.TEACHER.getCode().equals(userType.getCode())) {
 | 
	
		
			
				|  |  | +                // 2022 7 20  老师也能购买曲目
 | 
	
		
			
				|  |  | +                if (ClientEnum.TEACHER.getCode().equals(userType.getCode()) && detail.getUserId().equals(sysUser.getId())) {
 | 
	
		
			
				|  |  | +                    detail.setPlay(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  | +                } else {
 | 
	
		
			
				|  |  | +                    setMusicSheetPlay(sysUser.getId(), detail, userType);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  | -                setMusicSheetPlay(sysUser.getId(), detail, userType);
 | 
	
		
			
				|  |  | +                detail.setPlay(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  | -            detail.setPlay(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  | +            // 机构专辑购买
 | 
	
		
			
				|  |  | +            detail.setPlay(YesOrNoEnum.NO);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            // 学生生效中的机构专辑
 | 
	
		
			
				|  |  | +            if (ClientEnum.STUDENT == userType) {
 | 
	
		
			
				|  |  | +                List<Long> tenantAlbumIds = userTenantAlbumRecordMapper.selectTenantIds(sysUser.getId());
 | 
	
		
			
				|  |  | +                if (CollectionUtils.isNotEmpty(tenantAlbumIds) && tenantAlbumIds.contains(tenantAlbumId)) {
 | 
	
		
			
				|  |  | +                    List<Long> musicSheetIds = tenantAlbumMusicService.getMusicIdsByIds(Lists.newArrayList(tenantAlbumId));
 | 
	
		
			
				|  |  | +                    if (CollectionUtils.isNotEmpty(musicSheetIds) && musicSheetIds.contains(detail.getId())) {
 | 
	
		
			
				|  |  | +                        detail.setPlay(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            } else if (ClientEnum.TEACHER == userType) {
 | 
	
		
			
				|  |  | +                // 老师所在机构启用的专辑
 | 
	
		
			
				|  |  | +                Teacher teacher = teacherService.getById(sysUser.getId());
 | 
	
		
			
				|  |  | +                if (teacher.getTenantId() !=null) {
 | 
	
		
			
				|  |  | +                    List<Long> musicSheetIds = tenantAlbumMusicService.getMusicIdsByTenantIds(teacher.getTenantId());
 | 
	
		
			
				|  |  | +                    if (musicSheetIds.contains(detail.getId())) {
 | 
	
		
			
				|  |  | +                        detail.setPlay(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -530,31 +563,6 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        // 机构专辑购买
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        // 学生生效中的机构专辑
 | 
	
		
			
				|  |  | -        if (ClientEnum.STUDENT == userType) {
 | 
	
		
			
				|  |  | -            List<Long> tenantAlbumIds = userTenantAlbumRecordMapper.selectTenantIds(studentId);
 | 
	
		
			
				|  |  | -            if (CollectionUtils.isNotEmpty(tenantAlbumIds)) {
 | 
	
		
			
				|  |  | -                List<Long> musicSheetIds = tenantAlbumMusicService.getMusicIdsByIds(tenantAlbumIds);
 | 
	
		
			
				|  |  | -                if (musicSheetIds.contains(detail.getId())) {
 | 
	
		
			
				|  |  | -                    detail.setPlay(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  | -                    return;
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        } else if (ClientEnum.TEACHER == userType) {
 | 
	
		
			
				|  |  | -            // 老师所在机构启用的专辑
 | 
	
		
			
				|  |  | -            Teacher teacher = teacherService.getById(studentId);
 | 
	
		
			
				|  |  | -            if (teacher.getTenantId() !=null) {
 | 
	
		
			
				|  |  | -                List<Long> musicSheetIds = tenantAlbumMusicService.getMusicIdsByTenantIds(teacher.getTenantId());
 | 
	
		
			
				|  |  | -                if (musicSheetIds.contains(detail.getId())) {
 | 
	
		
			
				|  |  | -                    detail.setPlay(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  | -                    return;
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 |