2025-08-14 15:45:08 +08:00
# routes/DmController.py
from fastapi import APIRouter , Depends
from starlette . requests import Request
from utils . Database import *
from auth . dependencies import get_current_user
from utils . ParseRequest import get_request_num_param
2025-08-15 08:54:53 +08:00
from utils . TranslateUtil import get_stage_map_by_id
2025-08-14 15:45:08 +08:00
# 创建一个路由实例,需要依赖get_current_user,登录后才能访问
router = APIRouter ( dependencies = [ Depends ( get_current_user ) ] )
# 学段、学科级联数据
@router.get ( " /getStageSubjectList " )
async def get_stage_subject_list ( ) :
# 先查询学段list
select_stage_sql : str = " select stage_id, stage_name from t_dm_stage where b_use = 1 order by sort_id; "
stage_list = await find_by_sql ( select_stage_sql , ( ) )
for stage in stage_list :
# 再查询学科list
select_subject_sql : str = " select subject_id, subject_name, icon from t_dm_subject where stage_id = " + str ( stage [ " stage_id " ] ) + " order by sort_id; "
subject_list = await find_by_sql ( select_subject_sql , ( ) )
stage [ " subject_list " ] = subject_list
return { " success " : True , " message " : " 成功! " , " data " : stage_list }
# 获取学段信息
@router.get ( " /getStageList " )
async def get_stage_list ( ) :
# 先查询学段list
select_stage_sql : str = " select stage_id, stage_name from t_dm_stage where b_use = 1 order by sort_id; "
stage_list = await find_by_sql ( select_stage_sql , ( ) )
return { " success " : True , " message " : " 查询成功! " , " data " : { " stage_list " : stage_list } }
# 根据学段ID获取学科列表
@router.get ( " /getSubjectList " )
async def get_subject_list ( request : Request ) :
stage_id = await get_request_num_param ( request , " stage_id " , True , True , None )
2025-08-15 08:54:53 +08:00
stage_name = await get_stage_map_by_id ( stage_id )
2025-08-14 15:45:08 +08:00
# 先查询学科list
2025-08-15 08:54:53 +08:00
select_subject_sql : str = f " select subject_id, subject_name, icon, { stage_id } as stage_id, ' { stage_name } ' as stage_name from t_dm_subject where stage_id = { stage_id } order by sort_id; "
print ( select_subject_sql )
2025-08-14 15:45:08 +08:00
subject_list = await find_by_sql ( select_subject_sql , ( ) )
return { " success " : True , " message " : " 查询成功! " , " data " : { " subject_list " : subject_list } }