Преглед изворни кода

Merge branch 'zx_saas_courseware_search' of http://git.dayaedu.com/yonge/mec into dev

zouxuan пре 6 месеци
родитељ
комит
09c723718f

+ 33 - 0
mec-application/src/main/java/com/ym/mec/teacher/controller/LessonCoursewareController.java

@@ -88,6 +88,7 @@ public class LessonCoursewareController extends BaseController {
 			query1.setUserType(ClientEnum.TEACHER);
 			query1.setTenantCategoriesIdList(categoryIdList);
 			courseScheduleCoursewareDetails.forEach(e->lessonCoursewareService.setTreeResourceId(e.getKnowledgePointList(),query1));
+			courseScheduleCoursewareDetails.removeIf(courseScheduleCoursewareDetail -> !filterAndUpdateKnowledgePointList(courseScheduleCoursewareDetail, search));
 			String jsonString = JSONObject.toJSONString(courseScheduleCoursewareDetails);
 			List<LessonCoursewareWrapper.CourseScheduleCoursewareDetail> courseScheduleCoursewareDetailList =
 					JSONObject.parseArray(jsonString, LessonCoursewareWrapper.CourseScheduleCoursewareDetail.class);
@@ -96,6 +97,38 @@ 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){