diff --git a/config/common.dev.ini b/config/common.dev.ini index 70cbd32..c22e0e3 100644 --- a/config/common.dev.ini +++ b/config/common.dev.ini @@ -58,5 +58,5 @@ token = 32737167-cb63-4ce9-9397-d66169488f51 token = 92229502BD4C4B3E934607D4C1C5E711 [rate_utils] -;host = http://139.9.249.34:8010 -host = http://139.9.155.218:8010 +host = http://139.9.249.34:8010 +;host = http://139.9.155.218:8010 diff --git a/mods/smebiz_rate/company_rate/router.py b/mods/smebiz_rate/company_rate/router.py index 970f831..574d85d 100644 --- a/mods/smebiz_rate/company_rate/router.py +++ b/mods/smebiz_rate/company_rate/router.py @@ -1,8 +1,12 @@ import json +from pathlib import Path +from urllib.parse import quote import requests from fastapi import APIRouter, Depends, HTTPException, Response from sqlalchemy.orm import Session +from starlette.responses import FileResponse + from context.common import common_db, CompanyUserTokenDataModel, company_user_auth_util, auth_util, conf from . import schemas from . import crud @@ -10,6 +14,7 @@ from utils.sqlalchemy_common_utils import QueryParams, query_common from .models import CompanyRate from .rate_utils.utils import load_report_need_data from ..company_user.models import CompanyUser +from ..form_file.model import FormFile router = APIRouter(tags=["公司评级数据"]) @@ -146,4 +151,17 @@ def get_report(req: schemas.GetReport, db: Session = Depends(common_db.get_db), data), timeout=8) # print(response.json()) return Response(content=response.content, headers=dict(response.headers)) + + +@router.post("/company_rate/get_report", summary="报告下载") +def get_report(req: schemas.GetReport, db: Session = Depends(common_db.get_db) + ): + item = crud.company_rate_get(db, req.id) + if not (item and item.report_file_md): + raise HTTPException(status_code=404, detail="无报告文件") + file = db.query(FormFile).filter(FormFile.md == item.file_md).first() + if not file: + raise HTTPException(status_code=404, detail="未找到报告文件,路径不存在") + return FileResponse(Path("./" + file.file_url), + headers={"Content-Disposition": f"attachment; filename={quote(file.file_name)}"}) #########