|  | @@ -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.MusicSheetSearch;
 | 
	
		
			
				|  |  |  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.ChargeTypeEnum;
 | 
	
		
			
				|  |  |  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.util.CollectionUtils;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import java.util.ArrayList;
 | 
	
		
			
				|  |  |  import java.util.Date;
 | 
	
		
			
				|  |  |  import java.util.List;
 | 
	
		
			
				|  |  |  import java.util.stream.Collectors;
 | 
	
	
		
			
				|  | @@ -59,6 +57,9 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
 | 
	
		
			
				|  |  |      private MusicSheetPurchaseRecordService musicSheetPurchaseRecordService;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  | +    private MusicSheetPracticeRecordService musicSheetPracticeRecordService;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  |      private StudentService studentService;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      public MusicSheetDao getDao() {
 | 
	
	
		
			
				|  | @@ -138,9 +139,9 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
 | 
	
		
			
				|  |  |              detail.setPlay(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  |          }  else if (SysUserType.STUDENT.getCode().equals(userType.getCode())) {
 | 
	
		
			
				|  |  |              detail.setPlay(YesOrNoEnum.NO);
 | 
	
		
			
				|  |  | -            // 学生须判断是否能播放曲目
 | 
	
		
			
				|  |  |              // 单曲购买 判断购买记录,有记录课播放
 | 
	
		
			
				|  |  |              if (ChargeTypeEnum.CHARGE.getCode().equals(detail.getChargeType().getCode())) {
 | 
	
		
			
				|  |  | +                // 学生须判断是否能播放曲目
 | 
	
		
			
				|  |  |                  boolean b = musicSheetPurchaseRecordService.checkPurchase(sysUser.getId(),detail.getId());
 | 
	
		
			
				|  |  |                  if (b) {
 | 
	
		
			
				|  |  |                      detail.setPlay(YesOrNoEnum.YES);
 | 
	
	
		
			
				|  | @@ -152,6 +153,8 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
 | 
	
		
			
				|  |  |                      detail.setPlay(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +            // 学生进入云教练练习,添加一条练习记录
 | 
	
		
			
				|  |  | +            musicSheetPracticeRecordService.addRecord(id,sysUser.getId());
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              detail.setPlay(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -188,4 +191,23 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
 | 
	
		
			
				|  |  |      public IPage<MusicSheetVo> favoriteMusic(IPage<MusicSheetVo> page, StudentMusicSheetSearch 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;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  }
 |