| 
					
				 | 
			
			
				@@ -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){ 
			 |