|
@@ -199,7 +199,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
@Override
|
|
|
public IPage<MusicSheetVoResult> selectCbsPage(IPage<MusicSheetVo> page, MusicSheetSearch query) {
|
|
|
List<MusicSheetVo> musicSheets = baseMapper.selectPage(page, query);
|
|
|
- IPage<MusicSheetVo> info = page.setRecords(musicDataFormat(musicSheets,query.getSourceType()));
|
|
|
+ IPage<MusicSheetVo> info = page.setRecords(musicDataFormat(musicSheets,query.getProviderType()));
|
|
|
List<MusicSheetVo> rows = info.getRecords();
|
|
|
List<MusicSheetVoResult> musicSheetVoResults = new ArrayList<>();
|
|
|
for (MusicSheetVo row : rows) {
|
|
@@ -665,7 +665,6 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
|
|
|
if (detail.getProviderType().contains(SourceTypeEnum.TENANT.getCode())) {
|
|
|
if (userType == ClientEnum.STUDENT) {
|
|
|
-
|
|
|
// 机构学生
|
|
|
List<Long> tenantAlbumIds = userTenantAlbumRecordMapper.selectTenantIds(sysUser.getId());
|
|
|
if (CollectionUtils.isNotEmpty(tenantAlbumIds)) {
|
|
@@ -673,7 +672,6 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
if (musicSheetIds.contains(detail.getId())) {
|
|
|
detail.setPlay(YesOrNoEnum.YES);
|
|
|
detail.setBuyed(true);
|
|
|
- return detail;
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
@@ -684,28 +682,18 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
if (musicSheetIds.contains(detail.getId())) {
|
|
|
detail.setPlay(YesOrNoEnum.YES);
|
|
|
detail.setBuyed(true);
|
|
|
- return detail;
|
|
|
}
|
|
|
}
|
|
|
+ if (detail.getPlay() ==YesOrNoEnum.NO) {
|
|
|
+ platformMusicUseCheck(sysUser, userType, detail);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
if (!detail.getProviderType().contains(SourceTypeEnum.PLATFORM.getCode())) {
|
|
|
return detail;
|
|
|
}
|
|
|
- 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()) && sysUser.getId().equals(detail.getUserId())) {
|
|
|
- detail.setPlay(YesOrNoEnum.YES);
|
|
|
- } else {
|
|
|
- setMusicSheetPlay(sysUser.getId(), detail, userType);
|
|
|
- }
|
|
|
- } else {
|
|
|
- detail.setPlay(YesOrNoEnum.YES);
|
|
|
- }
|
|
|
+ platformMusicUseCheck(sysUser, userType, detail);
|
|
|
}
|
|
|
} else {
|
|
|
detail.setTenantFlag(true);
|
|
@@ -713,7 +701,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
return detail;
|
|
|
}
|
|
|
// 机构专辑购买
|
|
|
- detail.setPlay(YesOrNoEnum.NO);
|
|
|
+// detail.setPlay(YesOrNoEnum.NO);
|
|
|
List<Long> collected = Arrays.stream(tenantAlbumId.split(",")).map(Long::parseLong).collect(Collectors.toList());
|
|
|
|
|
|
// 学生生效中的机构专辑
|
|
@@ -745,6 +733,25 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
return detail;
|
|
|
}
|
|
|
|
|
|
+ private void platformMusicUseCheck(SysUser sysUser, ClientEnum userType, MusicSheetDetailVo detail) {
|
|
|
+ if (!detail.getProviderType().contains(SourceTypeEnum.PLATFORM.getCode())) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ 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()) && sysUser.getId().equals(detail.getUserId())) {
|
|
|
+ detail.setPlay(YesOrNoEnum.YES);
|
|
|
+ } else {
|
|
|
+ setMusicSheetPlay(sysUser.getId(), detail, userType);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ detail.setPlay(YesOrNoEnum.YES);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private Long userTenantId(Long userId, ClientEnum userType) {
|
|
|
if (ClientEnum.STUDENT == userType) {
|
|
|
Student student = studentService.getById(userId);
|
|
@@ -771,7 +778,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
* @param userType 用户类型
|
|
|
*/
|
|
|
private void setMusicSheetPlay(Long studentId, MusicSheetDetailVo detail, ClientEnum userType) {
|
|
|
- detail.setPlay(YesOrNoEnum.NO);
|
|
|
+// detail.setPlay(YesOrNoEnum.NO);
|
|
|
// 单曲购买 判断购买记录,有记录课播放
|
|
|
if (detail.getPaymentType().contains(ChargeTypeEnum.CHARGE.getCode())) {
|
|
|
// 学生须判断是否能播放曲目
|
|
@@ -812,6 +819,10 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ if (detail.getDelFlag() ||detail.getState() == YesOrNoEnum.NO) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
// 判断专辑购买
|
|
|
|
|
|
// 1 查询曲目所在的专辑
|
|
@@ -1014,6 +1025,8 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
|
|
|
// 设置学生端收藏联系
|
|
|
query.setClientType(ClientEnum.STUDENT);
|
|
|
+ query.setState(null);
|
|
|
+ query.setDelFlag(null);
|
|
|
// 构建分页信息
|
|
|
List<MusicSheetVo> musicSheetVos = baseMapper.selectPracticeMusicPage(query, practiceMusicIdList);
|
|
|
//设置内容平台曲目信息
|
|
@@ -1030,7 +1043,17 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
musicSheetService.updateMusicAlbumNumInfo(page.getRecords());
|
|
|
}
|
|
|
for (MusicSheetVo record : page.getRecords()) {
|
|
|
- record.setPlay(detail(record.getId(), sysUserFeignService.queryUserById(query.getStudentId()), ClientEnum.STUDENT).getPlay());
|
|
|
+ MusicSheetDetailVo detail = detail(record.getId(), sysUserFeignService.queryUserById(query.getStudentId()), ClientEnum.STUDENT);
|
|
|
+ record.setPlay(YesOrNoEnum.NO);
|
|
|
+ if (query.getProviderType() == SourceTypeEnum.PLATFORM) {
|
|
|
+ if (Boolean.TRUE.equals(detail.getBuyed())) {
|
|
|
+ record.setPlay(YesOrNoEnum.YES);
|
|
|
+ } else if(detail.getProviderType().contains(SourceTypeEnum.PLATFORM.getCode())) {
|
|
|
+ record.setPlay(detail.getState() ==YesOrNoEnum.YES && !detail.getDelFlag()?YesOrNoEnum.YES:YesOrNoEnum.NO);
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ record.setPlay(detail.getTenantState()&& !detail.getTenantDelFlag()?YesOrNoEnum.YES:YesOrNoEnum.NO);
|
|
|
+ }
|
|
|
}
|
|
|
return page;
|
|
|
}
|