diff --git a/dsAiTeachingModel/api/controller/TeachingModelController.py b/dsAiTeachingModel/api/controller/TeachingModelController.py index 881472e5..2ea6576c 100644 --- a/dsAiTeachingModel/api/controller/TeachingModelController.py +++ b/dsAiTeachingModel/api/controller/TeachingModelController.py @@ -1,12 +1,61 @@ # routes/TeachingModelController.py -from fastapi import APIRouter, Request, Response, Depends +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)]) -@router.get("/") -async def test(request: Request, response: Response): - return {"success": True, "message": "成功!"} +# 【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} + + diff --git a/dsAiTeachingModel/api/controller/ThemeController.py b/dsAiTeachingModel/api/controller/ThemeController.py index 2020d98c..c583c7c0 100644 --- a/dsAiTeachingModel/api/controller/ThemeController.py +++ b/dsAiTeachingModel/api/controller/ThemeController.py @@ -80,7 +80,7 @@ async def save(request: Request): if id == 0: param["search_flag"] = 0 param["train_flag"] = 0 - param["quote_num"] = 0 + param["quote_count"] = 0 # 插入数据 id = await insert("t_ai_teaching_model_theme", param, False) return {"success": True, "message": "保存成功!", "data": {"insert_id" : id}} diff --git a/dsAiTeachingModel/utils/Database.py b/dsAiTeachingModel/utils/Database.py index 4010390d..7c5a981c 100644 --- a/dsAiTeachingModel/utils/Database.py +++ b/dsAiTeachingModel/utils/Database.py @@ -216,4 +216,25 @@ async def execute_sql(sql): except Exception as e: logging.error(f"数据库查询错误: {e}") logging.error(f"执行的SQL语句: {sql}") - raise Exception(f"执行SQL失败: {e}") \ No newline at end of file + raise Exception(f"执行SQL失败: {e}") + + + +async def find_person_name_by_id(person_id): + sql = f"SELECT person_name FROM t_sys_loginperson WHERE person_id = $1 and b_use = 1" + logging.debug(sql) + person_list = await find_by_sql(sql, (person_id,)) + if person_list: + return person_list[0]['person_name'] + else: + return None + +async def find_bureau_name_by_id(org_id): + sql = f"SELECT org_name FROM t_base_organization WHERE org_id = $1 and b_use = 1" + logging.debug(sql) + org_list = await find_by_sql(sql, (org_id,)) + if org_list: + return org_list[0]['org_name'] + else: + return None + diff --git a/dsAiTeachingModel/utils/PageUtil.py b/dsAiTeachingModel/utils/PageUtil.py index ae84601e..19577d68 100644 --- a/dsAiTeachingModel/utils/PageUtil.py +++ b/dsAiTeachingModel/utils/PageUtil.py @@ -46,3 +46,23 @@ async def get_page_data_by_sql(total_data_sql: str, page_number: int, page_size: return {"page_number": page_number, "page_size": page_size, "total_row": total_row, "total_page": total_page, "list": page_data} else: return {"page_number": page_number, "page_size": page_size, "total_row": 0, "total_page": 0, "list": []} + + +# 翻译person_name, bureau_id +async def translate_person_bureau_name(page): + for item in page["list"]: + if item["person_id"] is not None: + person_id = str(item["person_id"]) + person_name = await find_person_name_by_id(person_id) + if person_name: + item["person_name"] = person_name + else: + item["person_name"] = "" + if item["bureau_id"] is not None: + bureau_id = str(item["bureau_id"]) + bureau_name = await find_bureau_name_by_id(bureau_id) + if bureau_name: + item["bureau_name"] = bureau_name + else: + item["bureau_name"] = "" + return page \ No newline at end of file