From 18478b148a3246250a5d67cd512bc77569d0c3ce Mon Sep 17 00:00:00 2001 From: lhx Date: Fri, 26 Sep 2025 16:56:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/database.py | 9 ++++++--- app/api/task.py | 25 +++++++++++++++++-------- app/services/database.py | 3 ++- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/app/api/database.py b/app/api/database.py index ef59cdf..b7e213c 100644 --- a/app/api/database.py +++ b/app/api/database.py @@ -38,9 +38,12 @@ def create_table(request: CreateTableRequest, db: Session = Depends(get_db)): ) return SQLExecuteResponse(**result) -@router.delete("/drop-table/{table_name}", response_model=SQLExecuteResponse) -def drop_table(table_name: str, db: Session = Depends(get_db)): +@router.post("/drop-table") +def drop_table(request: dict, db: Session = Depends(get_db)): """删除表""" + table_name = request.get("table_name") + if not table_name: + raise HTTPException(status_code=400, detail="table_name is required") result = DatabaseService.drop_table(db, table_name) return SQLExecuteResponse(**result) @@ -50,7 +53,7 @@ def import_data(request: ImportDataRequest, db: Session = Depends(get_db)): result = DatabaseService.import_data(db, request.table_name, request.data) return SQLExecuteResponse(**result) -@router.get("/tables", response_model=List[str]) +@router.post("/tables", response_model=List[str]) def get_table_list(): """获取所有表名""" return DatabaseService.get_table_list() \ No newline at end of file diff --git a/app/api/task.py b/app/api/task.py index 7b6bce5..7e15f39 100644 --- a/app/api/task.py +++ b/app/api/task.py @@ -121,7 +121,7 @@ def add_date_job(request: AddDateJobRequest): message=f"添加定时任务失败: {str(e)}" ) -@router.get("/", response_model=List[JobResponse]) +@router.post("/list", response_model=List[JobResponse]) def get_jobs(): """获取所有任务""" jobs = task_scheduler.get_jobs() @@ -136,9 +136,12 @@ def get_jobs(): )) return result -@router.delete("/{job_id}", response_model=TaskResponse) -def remove_job(job_id: str): +@router.post("/remove", response_model=TaskResponse) +def remove_job(request: dict): """删除任务""" + job_id = request.get("job_id") + if not job_id: + raise HTTPException(status_code=400, detail="job_id is required") success = task_scheduler.remove_job(job_id) if success: return TaskResponse( @@ -151,9 +154,12 @@ def remove_job(job_id: str): message=f"删除任务 {job_id} 失败" ) -@router.put("/{job_id}/pause", response_model=TaskResponse) -def pause_job(job_id: str): +@router.post("/pause", response_model=TaskResponse) +def pause_job(request: dict): """暂停任务""" + job_id = request.get("job_id") + if not job_id: + raise HTTPException(status_code=400, detail="job_id is required") success = task_scheduler.pause_job(job_id) if success: return TaskResponse( @@ -166,9 +172,12 @@ def pause_job(job_id: str): message=f"暂停任务 {job_id} 失败" ) -@router.put("/{job_id}/resume", response_model=TaskResponse) -def resume_job(job_id: str): +@router.post("/resume", response_model=TaskResponse) +def resume_job(request: dict): """恢复任务""" + job_id = request.get("job_id") + if not job_id: + raise HTTPException(status_code=400, detail="job_id is required") success = task_scheduler.resume_job(job_id) if success: return TaskResponse( @@ -181,7 +190,7 @@ def resume_job(job_id: str): message=f"恢复任务 {job_id} 失败" ) -@router.get("/functions", response_model=List[str]) +@router.post("/functions", response_model=List[str]) def get_available_functions(): """获取可用的任务函数列表""" return list(AVAILABLE_FUNCTIONS.keys()) \ No newline at end of file diff --git a/app/services/database.py b/app/services/database.py index 0e2f238..d4d7ce2 100644 --- a/app/services/database.py +++ b/app/services/database.py @@ -190,6 +190,7 @@ class DatabaseService: """获取所有表名""" try: inspector = inspect(engine) - return inspector.get_table_names() + # 排除mysql的系统表和accounts表 + return [table for table in inspector.get_table_names() if not table.startswith('mysql') and table != 'accounts'] except Exception as e: return [] \ No newline at end of file