| 
					
				 | 
			
			
				@@ -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 
			 |