|
|
# 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_num"] = 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": "删除成功!"}
|
|
|
|
|
|
|