You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.9 KiB

# 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}}