# routes/TeachingModelController.py from fastapi import APIRouter, Depends from auth.dependencies import * from utils.PageUtil import * from utils.ParseRequest import * # 创建一个路由实例,需要依赖get_current_user,登录后才能访问 router = APIRouter(dependencies=[Depends(get_current_user)]) # 【TeachingModel-1】获取主题列表 @router.get("/getTrainedTheme") async def get_trained_theme(request: Request): # 获取参数 bureau_id = await get_request_str_param(request, "bureau_id", True, True) stage_id = await get_request_num_param(request, "stage_id", True, True, None) subject_id = await get_request_num_param(request, "subject_id", True, True, None) page_number = await get_request_num_param(request, "page_number", False, True, 1) page_size = await get_request_num_param(request, "page_size", False, True, 10) # 数据库查询 select_trained_theme_sql: str = f"SELECT * FROM t_ai_teaching_model_theme WHERE is_deleted = 0 and search_flag = 1 AND bureau_id = '{bureau_id}' AND stage_id = {stage_id} AND subject_id = {subject_id}" print(select_trained_theme_sql) page = await get_page_data_by_sql(select_trained_theme_sql, page_number, page_size) page = await translate_person_bureau_name(page) # 结果返回 return {"success": True, "message": "查询成功!", "data": page} # 【TeachingModel-2】获取热门主题列表 @router.get("/getHotTheme") async def get_hot_theme(request: Request): # 获取参数 bureau_id = await get_request_str_param(request, "bureau_id", True, True) page_number = await get_request_num_param(request, "page_number", False, True, 1) page_size = await get_request_num_param(request, "page_size", False, True, 3) # 数据库查询 select_hot_theme_sql: str = f"SELECT * FROM t_ai_teaching_model_theme WHERE is_deleted = 0 and search_flag = 1 and bureau_id = '{bureau_id}' ORDER BY quote_count DESC" print(select_hot_theme_sql) page = await get_page_data_by_sql(select_hot_theme_sql, page_number, page_size) page = await translate_person_bureau_name(page) # 结果返回 return {"success": True, "message": "查询成功!", "data": page} # 【TeachingModel-3】获取最新主题列表 @router.get("/getNewTheme") async def get_new_theme(request: Request): bureau_id = await get_request_str_param(request, "bureau_id", True, True) page_number = await get_request_num_param(request, "page_number", False, True, 1) page_size = await get_request_num_param(request, "page_size", False, True, 3) # 数据库查询 select_new_theme_sql: str = f"SELECT * FROM t_ai_teaching_model_theme WHERE is_deleted = 0 and search_flag = 1 and bureau_id = '{bureau_id}' ORDER BY create_time DESC" print(select_new_theme_sql) page = await get_page_data_by_sql(select_new_theme_sql, page_number, page_size) page = await translate_person_bureau_name(page) # 结果返回 return {"success": True, "message": "查询成功!", "data": page} # 【TeachingModel-4】获取问题列表 @router.get("/getQuestion") async def get_question(request: Request): # 获取参数 bureau_id = await get_request_str_param(request, "bureau_id", True, True) person_id = await get_request_str_param(request, "person_id", True, True) theme_id = await get_request_num_param(request, "theme_id", True, True, None) question_type = await get_request_num_param(request, "question_type", True, True, None) page_number = await get_request_num_param(request, "page_number", False, True, 1) page_size = await get_request_num_param(request, "page_size", False, True, 10) person_sql = "" if question_type == 2: person_sql = f"AND person_id = '{person_id}'" # 数据库查询 select_question_sql: str = f"SELECT * FROM t_ai_teaching_model_question WHERE is_deleted = 0 and bureau_id = '{bureau_id}' AND theme_id = {theme_id} AND question_type = {question_type} {person_sql}" print(select_question_sql) page = await get_page_data_by_sql(select_question_sql, page_number, page_size) return {"success": True, "message": "查询成功!", "data": page}