| 
														
															@@ -9,10 +9,7 @@ import com.yonge.cooleshow.biz.dal.dto.MusicSheetDto; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumDetailSearch; 
														 | 
														
														 | 
														
															 import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumDetailSearch; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.yonge.cooleshow.biz.dal.dto.search.MusicSheetSearch; 
														 | 
														
														 | 
														
															 import com.yonge.cooleshow.biz.dal.dto.search.MusicSheetSearch; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetSearch; 
														 | 
														
														 | 
														
															 import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetSearch; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import com.yonge.cooleshow.biz.dal.entity.MusicFavorite; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import com.yonge.cooleshow.biz.dal.entity.MusicSheet; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import com.yonge.cooleshow.biz.dal.entity.Student; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import com.yonge.cooleshow.biz.dal.entity.*; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.yonge.cooleshow.biz.dal.enums.AuditEnum; 
														 | 
														
														 | 
														
															 import com.yonge.cooleshow.biz.dal.enums.AuditEnum; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.yonge.cooleshow.biz.dal.enums.ChargeTypeEnum; 
														 | 
														
														 | 
														
															 import com.yonge.cooleshow.biz.dal.enums.ChargeTypeEnum; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.yonge.cooleshow.biz.dal.enums.StateEnum; 
														 | 
														
														 | 
														
															 import com.yonge.cooleshow.biz.dal.enums.StateEnum; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -31,6 +28,7 @@ import org.springframework.stereotype.Service; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import org.springframework.transaction.annotation.Transactional; 
														 | 
														
														 | 
														
															 import org.springframework.transaction.annotation.Transactional; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import org.springframework.util.CollectionUtils; 
														 | 
														
														 | 
														
															 import org.springframework.util.CollectionUtils; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import java.util.ArrayList; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import java.util.Date; 
														 | 
														
														 | 
														
															 import java.util.Date; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import java.util.List; 
														 | 
														
														 | 
														
															 import java.util.List; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import java.util.stream.Collectors; 
														 | 
														
														 | 
														
															 import java.util.stream.Collectors; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -59,6 +57,9 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     private MusicSheetPurchaseRecordService musicSheetPurchaseRecordService; 
														 | 
														
														 | 
														
															     private MusicSheetPurchaseRecordService musicSheetPurchaseRecordService; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @Autowired 
														 | 
														
														 | 
														
															     @Autowired 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    private MusicSheetPracticeRecordService musicSheetPracticeRecordService; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    @Autowired 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     private StudentService studentService; 
														 | 
														
														 | 
														
															     private StudentService studentService; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     public MusicSheetDao getDao() { 
														 | 
														
														 | 
														
															     public MusicSheetDao getDao() { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -138,9 +139,9 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             detail.setPlay(YesOrNoEnum.YES); 
														 | 
														
														 | 
														
															             detail.setPlay(YesOrNoEnum.YES); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }  else if (SysUserType.STUDENT.getCode().equals(userType.getCode())) { 
														 | 
														
														 | 
														
															         }  else if (SysUserType.STUDENT.getCode().equals(userType.getCode())) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             detail.setPlay(YesOrNoEnum.NO); 
														 | 
														
														 | 
														
															             detail.setPlay(YesOrNoEnum.NO); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            // 学生须判断是否能播放曲目 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             // 单曲购买 判断购买记录,有记录课播放 
														 | 
														
														 | 
														
															             // 单曲购买 判断购买记录,有记录课播放 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if (ChargeTypeEnum.CHARGE.getCode().equals(detail.getChargeType().getCode())) { 
														 | 
														
														 | 
														
															             if (ChargeTypeEnum.CHARGE.getCode().equals(detail.getChargeType().getCode())) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                // 学生须判断是否能播放曲目 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 boolean b = musicSheetPurchaseRecordService.checkPurchase(sysUser.getId(),detail.getId()); 
														 | 
														
														 | 
														
															                 boolean b = musicSheetPurchaseRecordService.checkPurchase(sysUser.getId(),detail.getId()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if (b) { 
														 | 
														
														 | 
														
															                 if (b) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     detail.setPlay(YesOrNoEnum.YES); 
														 | 
														
														 | 
														
															                     detail.setPlay(YesOrNoEnum.YES); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -152,6 +153,8 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     detail.setPlay(YesOrNoEnum.YES); 
														 | 
														
														 | 
														
															                     detail.setPlay(YesOrNoEnum.YES); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 } 
														 | 
														
														 | 
														
															                 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            // 学生进入云教练练习,添加一条练习记录 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            musicSheetPracticeRecordService.addRecord(id,sysUser.getId()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } else { 
														 | 
														
														 | 
														
															         } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             detail.setPlay(YesOrNoEnum.YES); 
														 | 
														
														 | 
														
															             detail.setPlay(YesOrNoEnum.YES); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -188,4 +191,23 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     public IPage<MusicSheetVo> favoriteMusic(IPage<MusicSheetVo> page, StudentMusicSheetSearch query) { 
														 | 
														
														 | 
														
															     public IPage<MusicSheetVo> favoriteMusic(IPage<MusicSheetVo> page, StudentMusicSheetSearch query) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return page.setRecords(baseMapper.selectFavoriteMusicPage(page,query)); 
														 | 
														
														 | 
														
															         return page.setRecords(baseMapper.selectFavoriteMusicPage(page,query)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    @Override 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    public IPage<MusicSheetVo> practiceMusic(IPage<MusicSheetVo> page, StudentMusicSheetSearch query) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // 预计最近练习表数据量会很多 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // 先找到最近练习的曲目id 在根据曲目id进行精确查找 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        IPage<Long> practiceMusicIdPage = musicSheetPracticeRecordService.selectPracticeMusic(query,page.getPages(),page.getSize()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        List<Long> practiceMusicIdList = practiceMusicIdPage.getRecords(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if (CollectionUtils.isEmpty(practiceMusicIdList)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            page.setRecords(new ArrayList<>()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            return page; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // 构建分页信息 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        page.setRecords(baseMapper.selectPracticeMusicPage(query,practiceMusicIdList)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        page.setPages(practiceMusicIdPage.getPages()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        page.setCurrent(practiceMusicIdPage.getCurrent()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        page.setSize(practiceMusicIdPage.getSize()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        page.setTotal(practiceMusicIdPage.getTotal()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        return page; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 |