|
@@ -131,79 +131,8 @@ public class LessonCoursewareController extends BaseController {
|
|
|
@ApiOperation(value = "获取课件关联的课程列表")
|
|
|
@GetMapping("/getLessonCoursewareCourseList/{id}")
|
|
|
public HttpResponseResult<List<LessonCoursewareWrapper.CourseScheduleCoursewareDetail>> getLessonCoursewareCourseList(@PathVariable("id") Long id,String search){
|
|
|
- List<CbsLessonCoursewareWrapper.CourseScheduleCoursewareDetail> courseScheduleCoursewareDetails = coursewareFeignService.coursewareDetail(id).feignData();
|
|
|
+ List<CbsLessonCoursewareWrapper.CourseScheduleCoursewareDetail> courseScheduleCoursewareDetails = coursewareFeignService.coursewareDetail(id,search).feignData();
|
|
|
if (CollectionUtils.isNotEmpty(courseScheduleCoursewareDetails)) {
|
|
|
- if(StringUtils.isNotEmpty(search)){
|
|
|
- //优化模糊匹配,将模糊匹配和过滤没有素材的知识点合并
|
|
|
- courseScheduleCoursewareDetails = courseScheduleCoursewareDetails.stream().map(courseScheduleCoursewareDetail -> {
|
|
|
- // 获取原始的 knowledgePointList
|
|
|
- List<CbsLessonCoursewareDetailWrapper.KnowledgePointSmall> knowledgePointList = courseScheduleCoursewareDetail.getKnowledgePointList();
|
|
|
-
|
|
|
- // 过滤掉不满足条件的知识点
|
|
|
- if (CollectionUtils.isNotEmpty(knowledgePointList)) {
|
|
|
- knowledgePointList = knowledgePointList.stream().filter(knowledgePointSmall -> {
|
|
|
- // 处理当前知识点的 materialList
|
|
|
- List<CbsLessonCoursewareDetailWrapper.MaterialSmall> materialList = knowledgePointSmall.getMaterialList();
|
|
|
-
|
|
|
- // 始终进行模糊搜索,判断 materialList 是否符合条件
|
|
|
- boolean materialListMatches = false;
|
|
|
- if (CollectionUtils.isNotEmpty(materialList)) {
|
|
|
- if (StringUtils.isNotEmpty(search)) {
|
|
|
- materialList = materialList.stream()
|
|
|
- .filter(materialSmall -> materialSmall.getName().contains(search))
|
|
|
- .collect(Collectors.toList());
|
|
|
- knowledgePointSmall.setMaterialList(materialList);
|
|
|
- }
|
|
|
-
|
|
|
- // 如果 materialList 经过模糊搜索后仍不为空,则设置标志为 true
|
|
|
- if (CollectionUtils.isNotEmpty(materialList)) {
|
|
|
- materialListMatches = true;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 处理子知识点的 materialList,始终进行模糊搜索
|
|
|
- List<CbsLessonCoursewareDetailWrapper.KnowledgePointSmall> children = knowledgePointSmall.getChildren();
|
|
|
- if (CollectionUtils.isNotEmpty(children)) {
|
|
|
- // 对 children 中每个子知识点的 materialList 进行模糊匹配
|
|
|
- List<CbsLessonCoursewareDetailWrapper.KnowledgePointSmall> validChildren = children.stream()
|
|
|
- .filter(child -> {
|
|
|
- List<CbsLessonCoursewareDetailWrapper.MaterialSmall> childMaterialList = child.getMaterialList();
|
|
|
-
|
|
|
- // 对子知识点的 materialList 进行模糊搜索
|
|
|
- if (CollectionUtils.isNotEmpty(childMaterialList)) {
|
|
|
- if (StringUtils.isNotEmpty(search)) {
|
|
|
- childMaterialList = childMaterialList.stream()
|
|
|
- .filter(materialSmall -> materialSmall.getName().contains(search))
|
|
|
- .collect(Collectors.toList());
|
|
|
- child.setMaterialList(childMaterialList);
|
|
|
- }
|
|
|
-
|
|
|
- // 如果子知识点的 materialList 仍不为空,保留该子知识点
|
|
|
- return CollectionUtils.isNotEmpty(childMaterialList);
|
|
|
- }
|
|
|
- return false; // 空的 materialList 剔除该子知识点
|
|
|
- }).collect(Collectors.toList());
|
|
|
-
|
|
|
- // 更新 children 为剔除空的 materialList 后的有效子知识点
|
|
|
- knowledgePointSmall.setChildren(validChildren);
|
|
|
-
|
|
|
- // 如果 children 中有有效的子知识点,保留该知识点
|
|
|
- return !validChildren.isEmpty(); // 如果 children 剩余有效子知识点,则保留
|
|
|
- }
|
|
|
-
|
|
|
- // 如果 materialList 和 childMaterialList 都为空,剔除该知识点
|
|
|
- return materialListMatches || CollectionUtils.isNotEmpty(children);
|
|
|
- }).collect(Collectors.toList());
|
|
|
-
|
|
|
- // 更新 courseScheduleCoursewareDetail 的 knowledgePointList
|
|
|
- courseScheduleCoursewareDetail.setKnowledgePointList(knowledgePointList);
|
|
|
- }
|
|
|
-
|
|
|
- // 返回更新后的 courseScheduleCoursewareDetail
|
|
|
- return courseScheduleCoursewareDetail;
|
|
|
- }).collect(Collectors.toList());
|
|
|
- }
|
|
|
-
|
|
|
String jsonString = JSONObject.toJSONString(courseScheduleCoursewareDetails);
|
|
|
List<LessonCoursewareWrapper.CourseScheduleCoursewareDetail> courseScheduleCoursewareDetailList =
|
|
|
JSONObject.parseArray(jsonString, LessonCoursewareWrapper.CourseScheduleCoursewareDetail.class);
|