瀏覽代碼

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

zouxuan 6 月之前
父節點
當前提交
b38da0cc01

+ 37 - 0
mec-application/src/main/java/com/ym/mec/student/controller/LessonCoursewareController.java

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

+ 4 - 1
mec-application/src/main/java/com/ym/mec/teacher/controller/LessonCoursewareController.java

@@ -24,6 +24,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.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -88,7 +89,9 @@ 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));
+			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);