# routes/ThemeController.py from fastapi import APIRouter, Depends from utils.ParseRequest import * from auth.dependencies import * from utils.PageUtil import * # 创建一个路由实例,需要依赖get_current_user,登录后才能访问 router = APIRouter(dependencies=[Depends(get_current_user)]) # 功能:【Theme-1】主题管理列表 # 作者:Kalman.CHENG ☆ # 时间:2025-07-14 # 备注: @router.get("/list") async def list(request: Request): # 获取参数 person_id = await get_request_str_param(request, "person_id", True, True) stage_id = await get_request_num_param(request, "stage_id", False, True, -1) subject_id = await get_request_num_param(request, "subject_id", False, True, -1) 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) theme_name = await get_request_str_param(request, "theme_name", False, True) print(stage_id, person_id, subject_id, page_number, page_size, theme_name) # 拼接查询SQL语句 select_theme_sql: str = " SELECT * FROM t_ai_teaching_model_theme WHERE is_deleted = 0 and person_id = '" + person_id + "'" if stage_id != -1: select_theme_sql += " and stage_id = " + str(stage_id) if subject_id != -1: select_theme_sql += " and subject_id = " + str(subject_id) if theme_name != "": select_theme_sql += " and theme_name = '" + theme_name + "'" select_theme_sql += " ORDER BY create_time DESC" # 查询主题列表 page = await get_page_data_by_sql(select_theme_sql, page_number, page_size) return {"success": True, "message": "查询成功!", "data": page} # 功能:【Theme-2】保存主题管理 # 作者:Kalman.CHENG ☆ # 时间:2025-07-14 # 备注: @router.post("/save") async def save(request: Request): # 获取参数 id = await get_request_num_param(request, "id", False, True, 0) theme_name = await get_request_str_param(request, "theme_name", True, True) short_name = await get_request_str_param(request, "short_name", True, True) theme_icon = await get_request_str_param(request, "theme_icon", False, 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) person_id = await get_request_str_param(request, "person_id", True, True) 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 + "'" if id != 0: check_theme_sql += " and id <> " + id print(check_theme_sql) check_theme_result = await find_by_sql(check_theme_sql,()) if check_theme_result: return {"success": False, "message": "该主题名称已存在!"} check_short_name_sql = "SELECT short_name FROM t_ai_teaching_model_theme WHERE is_deleted = 0 and bureau_id = '" + bureau_id + "' and short_name = '" + short_name + "'" if id != 0: check_short_name_sql += " and id <> " + id print(check_short_name_sql) check_short_name_result = await find_by_sql(check_short_name_sql,()) if check_short_name_result: return {"success": False, "message": "该主题英文简称已存在!"} # 组装参数 param = {"theme_name": theme_name,"short_name": short_name,"theme_icon": theme_icon,"stage_id": stage_id,"subject_id": subject_id,"person_id": person_id,"bureau_id": bureau_id} # 保存数据 if id == 0: param["search_flag"] = 0 param["train_flag"] = 0 param["quote_count"] = 0 # 插入数据 id = await insert("t_ai_teaching_model_theme", param, False) return {"success": True, "message": "保存成功!", "data": {"insert_id" : id}} else: # 更新数据 await update("t_ai_teaching_model_theme", param, "id", id, False) return {"success": True, "message": "更新成功!", "data": {"update_id" : id}} # 功能:【Theme-3】获取主题信息 # 作者:Kalman.CHENG ☆ # 时间:2025-07-14 # 备注: @router.get("/get") async def get(request: Request): # 获取参数 id = await get_request_num_param(request, "id", True, True, None) theme_obj = await find_by_id("t_ai_teaching_model_theme", "id", id) if theme_obj is None: return {"success": False, "message": "未查询到该主题信息!"} return {"success": True, "message": "查询成功!", "data": {"theme": theme_obj}} @router.post("/delete") async def delete(request: Request): # 获取参数 id = await get_request_num_param(request, "id", True, True, None) result = await delete_by_id("t_ai_teaching_model_theme", "id", id) if not result: return {"success": False, "message": "删除失败!"} return {"success": True, "message": "删除成功!"}