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