|
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.dayaedu.cbs.common.enums.school.ECourseType;
|
|
|
import com.dayaedu.cbs.common.enums.school.EKnowledgeType;
|
|
|
+import com.dayaedu.cbs.common.enums.school.EMaterialType;
|
|
|
import com.dayaedu.cbs.openfeign.client.CoursewareFeignService;
|
|
|
import com.dayaedu.cbs.openfeign.wrapper.courseware.CbsCourseTypeWrapper;
|
|
|
import com.dayaedu.cbs.openfeign.wrapper.courseware.CbsLessonCoursewareDetailWrapper;
|
|
@@ -18,6 +19,8 @@ import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.SubjectTypeEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.mapper.TenantAlbumMusicMapper;
|
|
|
import com.yonge.cooleshow.biz.dal.service.*;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.cbs.CbsMusicScoreService;
|
|
|
+import com.yonge.cooleshow.biz.dal.wrapper.LessonCoursewareDetailWrapper;
|
|
|
import com.yonge.cooleshow.biz.dal.wrapper.LessonCoursewareWrapper;
|
|
|
import com.yonge.cooleshow.biz.dal.wrapper.TenantAlbumMusicWrapper;
|
|
|
import com.yonge.toolset.base.exception.BizException;
|
|
@@ -423,14 +426,36 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public CbsLessonCoursewareDetailWrapper.LessonCoursewareDetail getLessonCourseDetail(String lessonCoursewareDetailId) {
|
|
|
- CbsLessonCoursewareDetailWrapper.LessonCoursewareDetail lessonCoursewareDetail = coursewareFeignService.lessonCoursewareDetailDetail(Long.parseLong(lessonCoursewareDetailId)).feignData();
|
|
|
+ public LessonCoursewareDetailWrapper.LessonCoursewareDetail getLessonCourseDetail(String lessonCoursewareDetailId) {
|
|
|
+ CbsLessonCoursewareDetailWrapper.LessonCoursewareDetail cbsLessonCoursewareDetail = coursewareFeignService.lessonCoursewareDetailDetail(Long.parseLong(lessonCoursewareDetailId)).feignData();
|
|
|
+ if (cbsLessonCoursewareDetail == null) {
|
|
|
+ throw new BizException("课件不存在");
|
|
|
+ }
|
|
|
+ LessonCoursewareDetailWrapper.LessonCoursewareDetail lessonCoursewareDetail = JSON.parseObject(JSON.toJSONString(cbsLessonCoursewareDetail), LessonCoursewareDetailWrapper.LessonCoursewareDetail.class);
|
|
|
+
|
|
|
|
|
|
// 过滤调未应用到项目的去练习曲目
|
|
|
- List<CbsLessonCoursewareDetailWrapper.KnowledgePointSmall> knowledgePointList = lessonCoursewareDetail.getKnowledgePointList();
|
|
|
- List<CbsMaterialRefWrapper.AddMaterialRef> addMaterialRefs = getMaterialRefList(knowledgePointList);
|
|
|
+ List<LessonCoursewareDetailWrapper.KnowledgePointSmall> knowledgePointList = lessonCoursewareDetail.getKnowledgePointList();
|
|
|
+ List<LessonCoursewareDetailWrapper.AddMaterialRef> addMaterialRefs = getMaterialRefList(knowledgePointList);
|
|
|
+ List<LessonCoursewareDetailWrapper.MaterialSmall> musicMaterialSmalls = getMaterialSmalls(knowledgePointList);
|
|
|
+ if (CollectionUtils.isNotEmpty(musicMaterialSmalls)) {
|
|
|
+ List<Long> cbsMaterialMusicIds = musicMaterialSmalls.stream().map(LessonCoursewareDetailWrapper.MaterialSmall::getContent)
|
|
|
+ .filter(StringUtils::isNotBlank).map(Long::parseLong).collect(Collectors.toList());
|
|
|
+ Map<Long, Long> idMap = musicSheetService.lambdaQuery()
|
|
|
+ .in(MusicSheet::getCbsMusicSheetId, cbsMaterialMusicIds)
|
|
|
+ .eq(MusicSheet::getDelFlag, false)
|
|
|
+ .eq(MusicSheet::getState, 1)
|
|
|
+ .list()
|
|
|
+ .stream()
|
|
|
+ .collect(Collectors.toMap(MusicSheet::getCbsMusicSheetId, MusicSheet::getId,(o1,o2)->o1));
|
|
|
+ for (LessonCoursewareDetailWrapper.MaterialSmall musicMaterialSmall : musicMaterialSmalls) {
|
|
|
+ musicMaterialSmall.setStatus(idMap.keySet().contains(Long.parseLong(musicMaterialSmall.getContent())));
|
|
|
+ musicMaterialSmall.setContent(idMap.getOrDefault(Long.parseLong(musicMaterialSmall.getContent()),-1L).toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
List<Long> cbsMusicSheetIdList =
|
|
|
- addMaterialRefs.stream().filter(next -> EKnowledgeType.MUSIC.equals(next.getKnowledgeType())).map(CbsMaterialRefWrapper.AddMaterialRef::getResourceId).distinct().collect(Collectors.toList());
|
|
|
+ addMaterialRefs.stream().filter(next -> EKnowledgeType.MUSIC.equals(next.getKnowledgeType()))
|
|
|
+ .map(LessonCoursewareDetailWrapper.AddMaterialRef::getResourceId).distinct().collect(Collectors.toList());
|
|
|
if (!org.springframework.util.CollectionUtils.isEmpty(cbsMusicSheetIdList)) {
|
|
|
Map<Long, Long> idMap = musicSheetService.lambdaQuery()
|
|
|
.in(MusicSheet::getCbsMusicSheetId, cbsMusicSheetIdList)
|
|
@@ -440,10 +465,11 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
|
|
|
.stream()
|
|
|
.collect(Collectors.toMap(MusicSheet::getCbsMusicSheetId, MusicSheet::getId,(o1,o2)->o1));
|
|
|
|
|
|
- for (CbsMaterialRefWrapper.AddMaterialRef addMaterialRef : addMaterialRefs) {
|
|
|
+ for (LessonCoursewareDetailWrapper.AddMaterialRef addMaterialRef : addMaterialRefs) {
|
|
|
Long resourceId = addMaterialRef.getResourceId();
|
|
|
if (idMap.containsKey(resourceId)) {
|
|
|
addMaterialRef.setResourceId(idMap.get(resourceId));
|
|
|
+ addMaterialRef.setResourceIdStr(idMap.getOrDefault(resourceId,-1L).toString());
|
|
|
}
|
|
|
}
|
|
|
// 过滤掉没有对应的曲目
|
|
@@ -453,18 +479,39 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
|
|
|
return lessonCoursewareDetail;
|
|
|
}
|
|
|
|
|
|
- private void filterMaterialRefList(List<CbsLessonCoursewareDetailWrapper.KnowledgePointSmall> knowledgePointList,List<Long> cbsMusicSheetIds) {
|
|
|
+ private List<LessonCoursewareDetailWrapper.MaterialSmall> getMaterialSmalls(List<LessonCoursewareDetailWrapper.KnowledgePointSmall> knowledgePointList) {
|
|
|
+ List<LessonCoursewareDetailWrapper.MaterialSmall> materialRefList = new ArrayList<>();
|
|
|
+ if (CollectionUtils.isNotEmpty(knowledgePointList)) {
|
|
|
+ for (LessonCoursewareDetailWrapper.KnowledgePointSmall knowledgePointSmall : knowledgePointList) {
|
|
|
+
|
|
|
+ if (CollectionUtils.isNotEmpty(knowledgePointSmall.getChildren())) {
|
|
|
+ materialRefList.addAll(getMaterialSmalls(knowledgePointSmall.getChildren()));
|
|
|
+ }
|
|
|
+ List<LessonCoursewareDetailWrapper.MaterialSmall> materialList = knowledgePointSmall.getMaterialList();
|
|
|
+ if (CollectionUtils.isNotEmpty(materialList)) {
|
|
|
+ for (LessonCoursewareDetailWrapper.MaterialSmall materialSmall : materialList) {
|
|
|
+ if (materialSmall.getType() == EMaterialType.SONG) {
|
|
|
+ materialRefList.add(materialSmall);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return materialRefList;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void filterMaterialRefList(List<LessonCoursewareDetailWrapper.KnowledgePointSmall> knowledgePointList,List<Long> cbsMusicSheetIds) {
|
|
|
if (CollectionUtils.isNotEmpty(knowledgePointList)) {
|
|
|
- for (CbsLessonCoursewareDetailWrapper.KnowledgePointSmall knowledgePointSmall : knowledgePointList) {
|
|
|
+ for (LessonCoursewareDetailWrapper.KnowledgePointSmall knowledgePointSmall : knowledgePointList) {
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(knowledgePointSmall.getChildren())) {
|
|
|
filterMaterialRefList(knowledgePointSmall.getChildren(),cbsMusicSheetIds);
|
|
|
}
|
|
|
- List<CbsLessonCoursewareDetailWrapper.MaterialSmall> materialList = knowledgePointSmall.getMaterialList();
|
|
|
+ List<LessonCoursewareDetailWrapper.MaterialSmall> materialList = knowledgePointSmall.getMaterialList();
|
|
|
if (CollectionUtils.isNotEmpty(materialList)) {
|
|
|
- for (CbsLessonCoursewareDetailWrapper.MaterialSmall materialSmall : materialList) {
|
|
|
+ for (LessonCoursewareDetailWrapper.MaterialSmall materialSmall : materialList) {
|
|
|
if (CollectionUtils.isNotEmpty(materialSmall.getMaterialRefs())) {
|
|
|
- List<CbsMaterialRefWrapper.AddMaterialRef> refList = materialSmall.getMaterialRefs().stream()
|
|
|
+ List<LessonCoursewareDetailWrapper.AddMaterialRef> refList = materialSmall.getMaterialRefs().stream()
|
|
|
.filter(next -> !(EKnowledgeType.MUSIC.equals(next.getKnowledgeType()) && !cbsMusicSheetIds.contains(next.getResourceId())))
|
|
|
.collect(Collectors.toList());
|
|
|
materialSmall.setMaterialRefs(refList);
|
|
@@ -475,17 +522,17 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private List<CbsMaterialRefWrapper.AddMaterialRef> getMaterialRefList(List<CbsLessonCoursewareDetailWrapper.KnowledgePointSmall> knowledgePointList) {
|
|
|
- List<CbsMaterialRefWrapper.AddMaterialRef> materialRefList = new ArrayList<>();
|
|
|
+ private List<LessonCoursewareDetailWrapper.AddMaterialRef> getMaterialRefList(List<LessonCoursewareDetailWrapper.KnowledgePointSmall> knowledgePointList) {
|
|
|
+ List<LessonCoursewareDetailWrapper.AddMaterialRef> materialRefList = new ArrayList<>();
|
|
|
if (CollectionUtils.isNotEmpty(knowledgePointList)) {
|
|
|
- for (CbsLessonCoursewareDetailWrapper.KnowledgePointSmall knowledgePointSmall : knowledgePointList) {
|
|
|
+ for (LessonCoursewareDetailWrapper.KnowledgePointSmall knowledgePointSmall : knowledgePointList) {
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(knowledgePointSmall.getChildren())) {
|
|
|
materialRefList.addAll(getMaterialRefList(knowledgePointSmall.getChildren()));
|
|
|
}
|
|
|
- List<CbsLessonCoursewareDetailWrapper.MaterialSmall> materialList = knowledgePointSmall.getMaterialList();
|
|
|
+ List<LessonCoursewareDetailWrapper.MaterialSmall> materialList = knowledgePointSmall.getMaterialList();
|
|
|
if (CollectionUtils.isNotEmpty(materialList)) {
|
|
|
- for (CbsLessonCoursewareDetailWrapper.MaterialSmall materialSmall : materialList) {
|
|
|
+ for (LessonCoursewareDetailWrapper.MaterialSmall materialSmall : materialList) {
|
|
|
if (CollectionUtils.isNotEmpty(materialSmall.getMaterialRefs())) {
|
|
|
materialRefList.addAll(materialSmall.getMaterialRefs());
|
|
|
}
|