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