|  | @@ -23,6 +23,7 @@ import com.ym.mec.common.page.PageUtil;
 | 
	
		
			
				|  |  |  import io.swagger.annotations.Api;
 | 
	
		
			
				|  |  |  import io.swagger.annotations.ApiOperation;
 | 
	
		
			
				|  |  |  import org.apache.commons.collections.CollectionUtils;
 | 
	
		
			
				|  |  | +import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  |  import org.jetbrains.annotations.NotNull;
 | 
	
		
			
				|  |  |  import org.springframework.web.bind.annotation.*;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -156,6 +157,9 @@ public class LessonCoursewareController extends BaseController {
 | 
	
		
			
				|  |  |              query1.setTenantCategoriesIdList(categoryIdList);
 | 
	
		
			
				|  |  |              query1.setStudentCategoriesIdList(categoryIds);
 | 
	
		
			
				|  |  |              courseScheduleCoursewareDetails.forEach(e->lessonCoursewareService.setTreeResourceId(e.getKnowledgePointList(),query1));
 | 
	
		
			
				|  |  | +            if(StringUtils.isNotEmpty(search)){
 | 
	
		
			
				|  |  | +                courseScheduleCoursewareDetails.removeIf(courseScheduleCoursewareDetail -> !filterAndUpdateKnowledgePointList(courseScheduleCoursewareDetail, search));
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |  			String jsonString = JSONObject.toJSONString(courseScheduleCoursewareDetails);
 | 
	
		
			
				|  |  |  			List<LessonCoursewareWrapper.CourseScheduleCoursewareDetail> courseScheduleCoursewareDetailList =
 | 
	
		
			
				|  |  |                      JSONObject.parseArray(jsonString, LessonCoursewareWrapper.CourseScheduleCoursewareDetail.class);
 | 
	
	
		
			
				|  | @@ -164,6 +168,39 @@ public class LessonCoursewareController extends BaseController {
 | 
	
		
			
				|  |  |  		return succeed(new ArrayList<>());
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private 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));
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	@ApiOperation(value = "获取课程详情")
 | 
	
		
			
				|  |  |  	@GetMapping("/getLessonCourseDetail/{id}")
 | 
	
		
			
				|  |  |  	public HttpResponseResult<CbsLessonCoursewareDetailWrapper.LessonCoursewareDetail> getLessonCourseDetail(@PathVariable("id") Long id){
 |