|
|
@@ -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,
|
|
|
]);
|
|
|
}
|
|
|
}
|