教育垂直领域大模型平台

modify by Kalman.CHENG ☆
main
Kalman.CHENG 7 days ago
parent b9cb8beb09
commit eac9e40b38

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

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

@ -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}")
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

@ -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
Loading…
Cancel
Save