文件路由

This commit is contained in:
王思川 2022-04-29 11:27:24 +08:00
parent d33a43089e
commit 6c6cd03e91
4 changed files with 63 additions and 30 deletions

View File

@ -17,23 +17,13 @@ class TFSEFileImpl(FECRFile):
def get_pdf(self): def get_pdf(self):
file_type_map = { file_stream = self.db.find_file(
"cc_report": "综信报告", "文件",
"cc_certificate": "综信证书", self.file_bucket,
"esg_report": "ESG报告", self.file_id
"esg_certificate": "ESG证书" )
}
try: if file_stream:
file_stream = self.db.find_file( self.file_body = Response(file_stream, content_type='application/pdf')
"文件", else:
file_type_map[self.file_type],
self.file_id
)
if file_stream:
self.file_body = Response(file_stream, content_type='application/pdf')
else:
self.file_body = None
except Exception:
self.file_body = None self.file_body = None

View File

@ -8,12 +8,12 @@ class FECRFile(SpecObject):
"""文件类""" """文件类"""
file_id = ValidateAttr(field='file_id', type=str) file_id = ValidateAttr(field='file_id', type=str)
file_type = ValidateAttr(field='file_type', type=str) file_bucket = ValidateAttr(field='file_bucket', in_list=["综信报告", "综信证书", "ESG报告", "ESG证书"])
file_body = ValidateAttr(field='file_body', type=Response, default=None) file_body = ValidateAttr(field='file_body', type=Response, default=None)
fields_map = { fields_map = {
"file_id": "文件ID", "file_id": "文件ID",
"file_type": "文件类型", "file_bucket": "文件桶",
"file_body": "文件体" "file_body": "文件体"
} }

View File

@ -7,13 +7,58 @@ from Utils.AuthUtil import verify_token, verify_report_view_auth
file_route = Blueprint('file', __name__) file_route = Blueprint('file', __name__)
@file_route.route('/pdf', methods=['GET']) @file_route.route('/get_cc_rating_report', methods=['GET'])
@verify_token @verify_token
# @verify_report_view_auth @verify_report_view_auth
def get_file(**kwargs): def get_file(**kwargs):
"""获取pdf文件""" """获取综信报告"""
impl = TFSEFileImpl() impl = TFSEFileImpl()
impl.file_type = request.args.get('file_type') impl.file_bucket = '综信报告'
impl.file_id = request.args.get('file_id')
impl.get_pdf()
if impl.file_body:
return impl.dict_to_return()
else:
return {"info": "文件不存在"}, 200
@file_route.route('/get_cc_rating_certificate', methods=['GET'])
@verify_token
@verify_report_view_auth
def get_file(**kwargs):
"""获取综信证书"""
impl = TFSEFileImpl()
impl.file_bucket = '综信证书'
impl.file_id = request.args.get('file_id')
impl.get_pdf()
if impl.file_body:
return impl.dict_to_return()
else:
return {"info": "文件不存在"}, 200
@file_route.route('/get_esg_rating_report', methods=['GET'])
@verify_token
@verify_report_view_auth
def get_file(**kwargs):
"""获取ESG评价报告"""
impl = TFSEFileImpl()
impl.file_bucket = 'ESG报告'
impl.file_id = request.args.get('file_id')
impl.get_pdf()
if impl.file_body:
return impl.dict_to_return()
else:
return {"info": "文件不存在"}, 200
@file_route.route('/get_esg_rating_certificate', methods=['GET'])
@verify_token
@verify_report_view_auth
def get_file(**kwargs):
"""获取ESG评价证书"""
impl = TFSEFileImpl()
impl.file_bucket = 'ESG证书'
impl.file_id = request.args.get('file_id') impl.file_id = request.args.get('file_id')
impl.get_pdf() impl.get_pdf()
if impl.file_body: if impl.file_body:

View File

@ -73,9 +73,7 @@ def check_block(func):
def verify_report_view_auth(func): def verify_report_view_auth(func):
""" """检查是否具有报告查看权限"""
检查是否具有报告查看权限
"""
db = MongoHelper("tfse_v0.21") db = MongoHelper("tfse_v0.21")
@ -86,13 +84,13 @@ def verify_report_view_auth(func):
records = db.find_all_data( records = db.find_all_data(
"企业数据", "企业数据",
"记录", "记录",
{"企业ID": kwargs['cid']}, {"企业ID": kwargs['cid']},
["报告fid", "证书fid"] ["报告fid", "证书fid"]
) )
if not records: if not records:
return {"info": "文件不存在"}, 200 return {"info": "没有文件记录"}, 200
file_id_pool = list() file_id_pool = list()
for record in records: for record in records:
@ -102,7 +100,7 @@ def verify_report_view_auth(func):
file_id_pool = list(filter(None, file_id_pool)) file_id_pool = list(filter(None, file_id_pool))
if file_id not in file_id_pool: if file_id not in file_id_pool:
return {"info": "访问权限"}, 200 return {"info": "没有访问权限"}, 200
return func(*args, **kwargs) return func(*args, **kwargs)
return internal return internal