添加客户端的文件上传和上传信息获取功能
This commit is contained in:
parent
f131d33fe3
commit
66aef60f9d
|
@ -5,3 +5,4 @@
|
|||
**.pyc
|
||||
static/2.json
|
||||
static/填报模板1.xlsx
|
||||
/static/smebiz2013/
|
||||
|
|
|
@ -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 "成功"
|
||||
#########
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue