diff --git a/.gitignore b/.gitignore index 4301a5b..b5e6df5 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ **.pyc static/2.json static/填报模板1.xlsx +/static/smebiz2013/ diff --git a/mods/receive/client/mods/receive_file/router.py b/mods/receive/client/mods/receive_file/router.py index 37aaa41..366b804 100644 --- a/mods/receive/client/mods/receive_file/router.py +++ b/mods/receive/client/mods/receive_file/router.py @@ -1,4 +1,5 @@ import json +from datetime import datetime from typing import List, Tuple from fastapi import APIRouter, Depends, HTTPException, UploadFile, File, Form @@ -15,10 +16,10 @@ from . import schemas router = APIRouter(tags=["接收文件"], prefix='/receive_file') -@router.post("/update_file", summary="修改主题文件模板附带文件") +@router.post("/update_file", summary="上传提交文件") def update_file(file: UploadFile = File(...), data: str = Form(...), db: Session = Depends(get_db), - auth_info = Depends(get_url_code_and_code), ): + auth_info=Depends(get_url_code_and_code), ): [order, _, _] = auth_info order: ReceiveOrder data = json.loads(data) @@ -39,6 +40,25 @@ def update_file(file: UploadFile = File(...), data: str = Form(...), folder_name = subject.folder_name file_path = file_upload(file, static_path / folder_name, db) req.file_path = file_path + req.upload_time = datetime.now() item = crud.receive_file_update(db, req) return schemas.ReceiveFileUpdateRes(**item.to_dict()) + + +@router.post("/remove_file", summary="删除文件") +def remove_file(req: schemas.ReceiveFileId, + db: Session = Depends(get_db), + auth_info=Depends(get_url_code_and_code), ): + [order, _, _] = auth_info + order: ReceiveOrder + file = db.query(ReceiveFile).filter(ReceiveFile.receive_order_id == order.id, ReceiveFile.id == req.id).first() + if not file: + raise HTTPException(status_code=303, detail="未查询到文件") + file: ReceiveFile + # 文件不删 + file.name = None + file.file_path = None + file.upload_time = None + db.commit() + return "成功" ######### diff --git a/mods/receive/client/mods/receive_file/schemas.py b/mods/receive/client/mods/receive_file/schemas.py index 011cb29..d31df18 100644 --- a/mods/receive/client/mods/receive_file/schemas.py +++ b/mods/receive/client/mods/receive_file/schemas.py @@ -14,6 +14,7 @@ class ReceiveFileAdd(BaseModel): receive_order_id: str receive_subject_file_id: int file_path: Optional[str] = None + upload_time: Optional[datetime] = None class ReceiveFileAddOptional(ReceiveFileAdd, metaclass=AllOptional): diff --git a/mods/receive/client/router.py b/mods/receive/client/router.py index 0105641..dbaf681 100644 --- a/mods/receive/client/router.py +++ b/mods/receive/client/router.py @@ -1,5 +1,15 @@ -from fastapi import APIRouter +from fastapi import APIRouter, Depends from .mods.receive_order.router import router as receive_order_router from .mods.receive_file.router import router as receive_file_router +from .utils import get_url_code_and_code -router = APIRouter(prefix="/client") +router = APIRouter(prefix="/receive_client", tags=['客户端']) + + +@router.post('/check', summary='链接验证') +def check(auth_info=Depends(get_url_code_and_code)): + return '成功' + + +router.include_router(receive_file_router) +router.include_router(receive_order_router) diff --git a/mods/receive/client/utils.py b/mods/receive/client/utils.py index 58eeca6..452af2f 100644 --- a/mods/receive/client/utils.py +++ b/mods/receive/client/utils.py @@ -6,14 +6,15 @@ from ..models import ReceiveOrder def get_url_code_and_code( db: Session = Depends(get_db), - url_code: str = Header(None), + urlcode: str = Header(None), code: str = Header(None) ): + url_code = urlcode if url_code is None or code is None: raise HTTPException(status_code=303, detail="缺少链接或密码") order = db.query(ReceiveOrder).filter( ReceiveOrder.url_code == url_code, ReceiveOrder.code == code).first() if not order: - raise HTTPException(status_code=303, detail="错误的链接或密码") + raise HTTPException(status_code=403, detail="错误的链接或密码") return order, url_code, code