From 231526c1ff6babb5bedee69e88507e1afe3f33d0 Mon Sep 17 00:00:00 2001 From: liujianjiang Date: Wed, 26 Nov 2025 18:06:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=B4=A6=E5=8F=B7=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- account_management/deal_account.py | 7 ++----- main.py | 20 +++++++++++++++++++- model/model.py | 5 +++++ 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/account_management/deal_account.py b/account_management/deal_account.py index 2576da1..80e4155 100644 --- a/account_management/deal_account.py +++ b/account_management/deal_account.py @@ -18,12 +18,9 @@ class DealAccount: return True return False - async def delete_account(self, params: List[str]): + async def delete_account(self, params: Dict[str, Any]): """删除账户""" - if len(params) == 1: - condition = "account_id={}".format(params[0]) - else: - condition = f"account_id in ({','.join(params)})" + condition = "account_id='{}' and app_name='{}'".format(params["account_id"], params["app_name"]) await self.db_pool.initialize() result = await self.db_pool.delete(table="crawler_account_record_info", where_conditions=condition) if result: diff --git a/main.py b/main.py index b9d0744..9034220 100644 --- a/main.py +++ b/main.py @@ -8,7 +8,7 @@ from typing import Dict, Any, Optional, List from fastapi import FastAPI, HTTPException, Depends from public_function.public_func import read_config -from model.model import AccountCreate, AccountUpdate, CrawlerTask +from model.model import AccountCreate, AccountUpdate, CrawlerTask, AccountDelete app = FastAPI() @@ -87,6 +87,24 @@ async def add_account(account_data: AccountCreate, account_manager: Any = Depend raise HTTPException(status_code=500, detail="新增账号失败,失败原因:{}".format(e)) +@app.post("/delete_account", summary="新增账号") +async def delete_account(account_data: AccountDelete, account_manager: Any = Depends(get_account_manager)): + """ + 删除爬虫账号 + - **account_id**: 账号ID + - **password**: 密码 + - **app_name**: 应用名称 + """ + try: + print(account_data.dict()) + # 这里应该调用实际的添加账号方法 + result = await account_manager.delete_account(account_data.dict()) + return {"code": 200, "message": "删除账号成功", "data": result} + except Exception as e: + print(f"新增账号失败: {e}") + raise HTTPException(status_code=500, detail="删除账号失败,请重试,失败原因:{}".format(e)) + + @app.post("/receive_data") async def receive_data(params: Dict[str, Any]): """数据接收接口""" diff --git a/model/model.py b/model/model.py index 6576479..02ad62e 100644 --- a/model/model.py +++ b/model/model.py @@ -15,6 +15,11 @@ class AccountUpdate(BaseModel): status: int = Field(..., ge=1, le=2, description="状态:1-空闲,2-使用中") +class AccountDelete(BaseModel): + account_id: str = Field(..., min_length=1, max_length=128, description="账号ID") + app_name: str = Field(..., min_length=1, max_length=128, description="应用名称") + + class CrawlerTask(BaseModel): country: str = Field(..., min_length=1, max_length=128, description="账号所在国家") app_name: str = Field(..., min_length=1, max_length=128, description="应用名称")