|
@@ -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));
|
|
|
+ IPage<MusicSheetVo> info = page.setRecords(musicDataFormat(musicSheets,query.getSourceType()));
|
|
|
List<MusicSheetVo> rows = info.getRecords();
|
|
|
List<MusicSheetVoResult> musicSheetVoResults = new ArrayList<>();
|
|
|
for (MusicSheetVo row : rows) {
|
|
@@ -210,7 +210,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
return com.yonge.cooleshow.biz.dal.dto.PageUtil.transPageInfo(info, musicSheetVoResults);
|
|
|
}
|
|
|
|
|
|
- public List<MusicSheetVo> musicDataFormat(List<MusicSheetVo> musicSheets) {
|
|
|
+ public List<MusicSheetVo> musicDataFormat(List<MusicSheetVo> musicSheets,SourceTypeEnum sourceType) {
|
|
|
if (CollectionUtils.isEmpty(musicSheets)) {
|
|
|
return musicSheets;
|
|
|
}
|
|
@@ -218,11 +218,15 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
if (CollectionUtils.isEmpty(cbsMusicSheetIds)) {
|
|
|
return new ArrayList<>();
|
|
|
}
|
|
|
+ Long appId = Long.parseLong(openFeignClientConfigProperties.getAppId());
|
|
|
+ if (sourceType!=null && sourceType==SourceTypeEnum.TENANT) {
|
|
|
+ appId = Long.parseLong(sysConfigService.findConfigValue(SysConfigConstant.CBS_TENANT_APP_ID));
|
|
|
+ }
|
|
|
// 调用内容平台查询曲目信息
|
|
|
R<PageInfo<CbsMusicSheetWrapper.MusicSheetApplication>> pageInfoR = musicFeignClientService
|
|
|
.musicSheetPageByApplication(CbsMusicSheetWrapper.MusicSheetApplicationQuery.builder()
|
|
|
.musicSheetIds(cbsMusicSheetIds).detailFlag(false).rows(-1).delFlag(true)
|
|
|
- .applicationId(Long.parseLong(openFeignClientConfigProperties.getAppId())).build());
|
|
|
+ .applicationId(appId).build());
|
|
|
List<CbsMusicSheetWrapper.MusicSheetApplication> rows;
|
|
|
try {
|
|
|
PageInfo<CbsMusicSheetWrapper.MusicSheetApplication> musicSheetApplicationPageInfo = pageInfoR.feignData();
|
|
@@ -442,6 +446,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
detailVo.setUserAvatar(sysUser.getAvatar());
|
|
|
}
|
|
|
}
|
|
|
+ detailVo.setCategoryId(musicSheet1.getMusicCategoryId()!=null?musicSheet1.getMusicCategoryId().toString():"");
|
|
|
detailVo.setMusicPrice(musicSheet1.getMusicPrice());
|
|
|
detailVo.setSubjectNames(musicSheet1.getSubjectNames());
|
|
|
detailVo.setCode(musicSheet1.getSubjectCodes());
|
|
@@ -549,6 +554,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
if (musicSheetApplication.getAudioType() != null) {
|
|
|
sheet.setAccompanimentType(AccompanimentTypeEnum.valueOf(musicSheetApplication.getAudioType().getCode()));
|
|
|
}
|
|
|
+ sheet.setCategoryName(musicSheetApplication.getMusicSheetCategoryName());
|
|
|
sheet.setMusicTagNames(musicSheetApplication.getMusicTagNames());
|
|
|
sheet.setSubjectNames(musicSheetApplication.getSubjectNames());
|
|
|
sheet.setPaymentType(musicSheetApplication.getPaymentType());
|
|
@@ -611,6 +617,8 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
}
|
|
|
}
|
|
|
MusicSheetDetailVo detail = this.getCbsDetail(Long.parseLong(id));
|
|
|
+
|
|
|
+ detail.setTenantFlag(false);
|
|
|
//兼容审批数据
|
|
|
MusicSheetAuthRecord one = musicSheetAuthRecordService.lambdaQuery().eq(MusicSheetAuthRecord::getMusicSheetId, detail.getId()).last("limit 1").one();
|
|
|
if (one != null) {
|
|
@@ -646,20 +654,64 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
detail.setReason(reason);
|
|
|
}
|
|
|
if (StringUtil.isEmpty(tenantAlbumId)) {
|
|
|
- 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())) {
|
|
|
+
|
|
|
+ // 如果是机构用户,判断机构专辑
|
|
|
+
|
|
|
+ // 机构学生,查询购买过的机构专辑,是否存在当前曲目
|
|
|
+ Long tenantId = userTenantId(sysUser.getId(), userType);
|
|
|
+
|
|
|
+ if (tenantId >0L) {
|
|
|
+ detail.setTenantFlag(true);
|
|
|
+
|
|
|
+ if (detail.getProviderType().contains(SourceTypeEnum.TENANT.getCode())) {
|
|
|
+ if (userType == ClientEnum.STUDENT) {
|
|
|
+
|
|
|
+ // 机构学生
|
|
|
+ List<Long> tenantAlbumIds = userTenantAlbumRecordMapper.selectTenantIds(sysUser.getId());
|
|
|
+ if (CollectionUtils.isNotEmpty(tenantAlbumIds)) {
|
|
|
+ List<Long> musicSheetIds = tenantAlbumMusicService.getMusicIdsByIds(tenantAlbumIds);
|
|
|
+ if (musicSheetIds.contains(detail.getId())) {
|
|
|
+ detail.setPlay(YesOrNoEnum.YES);
|
|
|
+ detail.setBuyed(true);
|
|
|
+ return detail;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 老师所在机构启用的专辑
|
|
|
+ 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);
|
|
|
+ detail.setBuyed(true);
|
|
|
+ return 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 {
|
|
|
- setMusicSheetPlay(sysUser.getId(), detail, userType);
|
|
|
+ detail.setPlay(YesOrNoEnum.YES);
|
|
|
}
|
|
|
- } else {
|
|
|
- detail.setPlay(YesOrNoEnum.YES);
|
|
|
}
|
|
|
} else {
|
|
|
+ detail.setTenantFlag(true);
|
|
|
+ if (!detail.getProviderType().contains(SourceTypeEnum.TENANT.getCode())) {
|
|
|
+ return detail;
|
|
|
+ }
|
|
|
// 机构专辑购买
|
|
|
detail.setPlay(YesOrNoEnum.NO);
|
|
|
List<Long> collected = Arrays.stream(tenantAlbumId.split(",")).map(Long::parseLong).collect(Collectors.toList());
|
|
@@ -693,6 +745,22 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
return detail;
|
|
|
}
|
|
|
|
|
|
+ private Long userTenantId(Long userId, ClientEnum userType) {
|
|
|
+ if (ClientEnum.STUDENT == userType) {
|
|
|
+ Student student = studentService.getById(userId);
|
|
|
+ if (student != null&& student.getTenantId() !=null && student.getTenantId() >0) {
|
|
|
+ return student.getTenantId();
|
|
|
+ }
|
|
|
+ } else if (ClientEnum.TEACHER == userType) {
|
|
|
+ Teacher teacher = teacherService.getById(userId);
|
|
|
+ if (teacher != null && teacher.getTenantId() !=null && teacher.getTenantId() >0) {
|
|
|
+ return teacher.getTenantId();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return -1L;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 设置学生曲目信息
|
|
|
* <p>
|
|
@@ -769,31 +837,6 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
if (count > 0) {
|
|
|
detail.setPlay(YesOrNoEnum.YES);
|
|
|
detail.setBuyed(true);
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 机构专辑购买
|
|
|
-
|
|
|
- // 学生生效中的机构专辑
|
|
|
- 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);
|
|
|
- detail.setBuyed(true);
|
|
|
- }
|
|
|
- }
|
|
|
- } 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);
|
|
|
- detail.setBuyed(true);
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -986,6 +1029,9 @@ 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());
|
|
|
+ }
|
|
|
return page;
|
|
|
}
|
|
|
|
|
@@ -1373,6 +1419,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
teacherMusicSheetListVo.setEntryFlag(teacherVo.getEntryFlag());
|
|
|
teacherMusicSheetListVo.setMusicianFlag(teacherVo.getMusicianFlag());
|
|
|
teacherMusicSheetListVo.setTag(teacherVo.getTag());
|
|
|
+ teacherMusicSheetListVo.setVipType(teacherVo.getVipType());
|
|
|
|
|
|
TeacherTotal total = totalService.getTotalById(detail.getUserId());
|
|
|
if (total != null) {
|
|
@@ -2413,6 +2460,11 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void delPractice(Long musicSheetId,Long userId,ClientEnum clientEnum) {
|
|
|
+ baseMapper.delPractice(musicSheetId,userId,clientEnum);
|
|
|
+ }
|
|
|
+
|
|
|
private Map<Long,MusicSheet> getMapByCbsIds(List<Long> cbsMusicSheetIds) {
|
|
|
if (CollectionUtils.isEmpty(cbsMusicSheetIds)) {
|
|
|
return new HashMap<>();
|