|
@@ -620,6 +620,39 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
|
|
|
return lessonCoursewareDetail;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public boolean filterAndUpdateKnowledgePointList(CbsLessonCoursewareWrapper.CourseScheduleCoursewareDetail courseScheduleCoursewareDetail, String search) {
|
|
|
+ List<CbsLessonCoursewareDetailWrapper.KnowledgePointSmall> knowledgePointList = courseScheduleCoursewareDetail.getKnowledgePointList();
|
|
|
+ if (CollectionUtils.isEmpty(knowledgePointList)) {
|
|
|
+ return false; // 如果 knowledgePointList 为空,直接返回 false,后续会删除该 courseScheduleCoursewareDetail
|
|
|
+ }
|
|
|
+
|
|
|
+ // 过滤 KnowledgePointSmall
|
|
|
+ knowledgePointList.removeIf(knowledgePointSmall -> !filterKnowledgePoint(knowledgePointSmall, search));
|
|
|
+ courseScheduleCoursewareDetail.setKnowledgePointList(knowledgePointList);
|
|
|
+
|
|
|
+ // 如果过滤后的 knowledgePointList 为空,返回 false
|
|
|
+ return CollectionUtils.isNotEmpty(knowledgePointList);
|
|
|
+ }
|
|
|
+
|
|
|
+ private boolean filterKnowledgePoint(CbsLessonCoursewareDetailWrapper.KnowledgePointSmall knowledgePointSmall, String search) {
|
|
|
+ // 过滤 materialList
|
|
|
+ if (CollectionUtils.isNotEmpty(knowledgePointSmall.getMaterialList())) {
|
|
|
+ filterAndUpdateMaterialList(knowledgePointSmall.getMaterialList(), search);
|
|
|
+ }
|
|
|
+ // 过滤子知识点 children
|
|
|
+ if (CollectionUtils.isNotEmpty(knowledgePointSmall.getChildren())) {
|
|
|
+ knowledgePointSmall.getChildren().removeIf(child -> !filterKnowledgePoint(child, search));
|
|
|
+ }
|
|
|
+ // 保留当前的条件:materialList 不为空 或者 children 不为空,**否则删除当前节点**
|
|
|
+ return CollectionUtils.isNotEmpty(knowledgePointSmall.getMaterialList()) ||
|
|
|
+ CollectionUtils.isNotEmpty(knowledgePointSmall.getChildren());
|
|
|
+ }
|
|
|
+
|
|
|
+ private void filterAndUpdateMaterialList(List<CbsLessonCoursewareDetailWrapper.MaterialSmall> materialList, String search) {
|
|
|
+ materialList.removeIf(materialSmall -> !materialSmall.getName().contains(search));
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 关联课程类型
|
|
|
*
|