|
@@ -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;
|
|
|
+ }
|
|
|
}
|