# 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 # 创建一个路由实例,需要依赖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 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) # 先查询学科list select_subject_sql: str = "select subject_id, subject_name from t_dm_subject where stage_id = " + str(stage_id) + " order by sort_id;" subject_list = await find_by_sql(select_subject_sql,()) return {"success": True, "message": "查询成功!", "data": {"subject_list": subject_list}}