Browse Source

feat: 调整获取知识点接口学段的搜索方式

过卫栋 3 weeks ago
parent
commit
f673226642
1 changed files with 9 additions and 9 deletions
  1. 9 9
      app/Http/Controllers/Api/KnowledgePointTreeController.php

+ 9 - 9
app/Http/Controllers/Api/KnowledgePointTreeController.php

@@ -79,7 +79,7 @@ class KnowledgePointTreeController
     /**
      * 从数据库构建树形结构
      *
-     * @param string|null $stage 学段筛选:primary(小学1-6)、junior(初中7-9)、senior(高中10-12
+     * @param string|null $stage 学段筛选:primary(小学)、junior(初中)、senior(高中)
      * @return array
      */
     private function buildTreeFromDatabase(?string $stage = null): array
@@ -87,20 +87,20 @@ class KnowledgePointTreeController
         // 从数据库获取知识点
         $query = KnowledgePoint::query();
 
-        // 根据学段筛选年级范围
+        // 根据学段筛选(grade 字段存储的是中文,如 "初中,高中,小学")
         if ($stage) {
-            $gradeRange = match ($stage) {
-                'primary' => [1, 6],   // 小学 1-6 年级
-                'junior' => [7, 9],    // 初中 7-9 年级
-                'senior' => [10, 12],  // 高中 10-12 年级
+            $stageLabel = match ($stage) {
+                'primary' => '小学',
+                'junior' => '初中',
+                'senior' => '高中',
                 default => null,
             };
 
-            if ($gradeRange) {
-                $query->whereBetween('grade', $gradeRange);
+            if ($stageLabel) {
+                $query->where('grade', 'like', '%' . $stageLabel . '%');
                 Log::info('知识点按学段筛选', [
                     'stage' => $stage,
-                    'grade_range' => $gradeRange,
+                    'stage_label' => $stageLabel,
                 ]);
             }
         }