diff --git a/dsLightRag/Routes/TeachingModel/api/ThemeController.py b/dsLightRag/Routes/TeachingModel/api/ThemeController.py index 6b9ccf12..8182c37c 100644 --- a/dsLightRag/Routes/TeachingModel/api/ThemeController.py +++ b/dsLightRag/Routes/TeachingModel/api/ThemeController.py @@ -81,7 +81,7 @@ async def save(request: Request): bureau_id = await get_request_str_param(request, "bureau_id", True, True) # 校验参数 - check_theme_sql = "SELECT theme_name FROM t_ai_teaching_model_theme WHERE is_deleted = 0 and bureau_id = '" + bureau_id + "' and theme_name = '" + theme_name + "'" + check_theme_sql = f"SELECT theme_name FROM t_ai_teaching_model_theme WHERE is_deleted = 0 and stage_id = {stage_id} and subject_id = {subject_id} and bureau_id = '{bureau_id}' and theme_name = '{theme_name}'" if id != 0: check_theme_sql += " and id <> " + str(id) print(check_theme_sql) @@ -138,6 +138,11 @@ async def get(request: Request): async def delete(request: Request): # 获取参数 id = await get_request_num_param(request, "id", True, True, None) + # 查询该主题下是否存在有效文档 + check_document_sql: str = f"SELECT id FROM t_ai_teaching_model_document WHERE is_deleted = 0 and theme_id = {id}" + check_document_result = await find_by_sql(check_document_sql,()) + if check_document_result is not None: + return {"success": False, "message": "该主题下存在有效文档,不能删除!"} result = await delete_by_id("t_ai_teaching_model_theme", "id", id) if not result: return {"success": False, "message": "删除失败!"} diff --git a/dsLightRag/Routes/TeachingModel/tasks/BackgroundTasks.py b/dsLightRag/Routes/TeachingModel/tasks/BackgroundTasks.py index c6ee9c4a..f5cacbf2 100644 --- a/dsLightRag/Routes/TeachingModel/tasks/BackgroundTasks.py +++ b/dsLightRag/Routes/TeachingModel/tasks/BackgroundTasks.py @@ -34,7 +34,9 @@ async def train_document_task(): print(datetime.datetime.now(), "存在未训练的文档" + str(len(no_train_document_result))+"个") # 这里可以根据train_flag的值来判断是训练还是删除 document = no_train_document_result[0] - theme = await find_by_id("t_ai_teaching_model_theme", "id", document["theme_id"]) + select_theme_sql: str = f"select * from t_ai_teaching_model_theme where id = {document['theme_id']}" + select_theme_result = await find_by_sql(select_theme_sql, ()) + theme = select_theme_result[0] if select_theme_result else None document_name = document["document_name"] + "." + document["document_suffix"] working_dir = "Topic/" + theme["short_name"] document_path = document["document_path"]