行业报告路由

This commit is contained in:
王思川 2022-04-29 15:08:11 +08:00
parent bc858b57ae
commit 2c407614d2
12 changed files with 82 additions and 10 deletions

View File

@ -78,20 +78,22 @@ class CompanyIndexImpl(CompanyIndex):
self.business_info = business_info
def get_industry_analysis(self):
"""企业主页 行业分析"""
def get_industry_type(self):
industry = self.db.find_single_column(
"企业数据",
"企业数据_更新汇总",
{"企业ID": self.cid},
"一级行业"
)
self.industry = industry
def get_industry_analysis(self):
"""企业主页 行业分析"""
result = self.db.find_single_data(
"行业数据",
"行业分析",
{"行业": industry},
{"行业": self.industry},
["行业", "行业简介", "更新时间", "正面因素", "负面因素", "增长趋势", "规模分布"]
)

View File

@ -0,0 +1,19 @@
from DBHelper.MongoHelper import MongoHelper
from ObjectsInProject.Industry.Industry import IndustryReportRecord
class IndustryReportRecordImpl(IndustryReportRecord):
db = MongoHelper("tfse_v0.21")
def get_latest_fid(self):
result = self.db.find_single_data_with_single_sort(
"行业数据",
"行业报告",
{"一级行业": self.industry},
["报告fid"],
{"上传日期": -1}
)
self.fid = result['报告fid']

View File

View File

@ -1,10 +1,10 @@
from flask import Response
from DBHelper.MongoHelper import MongoHelper
from ObjectsCommon.Others.FECRFile import FECRFile
from ObjectsInProject.Other.TFSEFile import TFSEFile
class TFSEFileImpl(FECRFile):
class TFSEFileImpl(TFSEFile):
"""文件类实现"""
db = MongoHelper("tfse_v0.21")

View File

@ -80,6 +80,7 @@ class CompanyIndex(SpecObject):
cid = ValidateAttr(field='cid', type=str, length=8)
name = ValidateAttr(field='name', type=str)
industry = ValidateAttr(field='industry', type=str)
head_info = ValidateAttr(field='head_info', type=HeadInfo)
business_info = ValidateAttr(field='business_info', type=BasicBusinessInfo)
industry_analysis = ValidateAttr(field='industry_analysis', type=IndustryAnalysis)
@ -91,6 +92,7 @@ class CompanyIndex(SpecObject):
fields_map = {
"cid": "企业ID",
"name": "企业名称",
"industry": "行业",
"head_info": "工商信息",
"business_info": "股东信息",
"industry_analysis": "主要成员",
@ -106,6 +108,9 @@ class CompanyIndex(SpecObject):
def get_business_info(self):
"""获取 工商基本信息"""
def get_industry_type(self):
"""获取行业类型"""
def get_industry_analysis(self):
"""获取 行业分析数据"""

View File

@ -0,0 +1,21 @@
from Utils.ObjUtil import SpecObject
from Utils.ValidateUtil import ValidateAttr
class IndustryReportRecord(SpecObject):
"""行业"""
industry = ValidateAttr(field='industry', type=str)
title = ValidateAttr(field='title', type=str)
update_time = ValidateAttr(field='update_time', type=str)
fid = ValidateAttr(field='fid', type=str)
fields_map = {
"industry": "一级行业",
"title": "报告标题",
"update_time": "上传日期",
"fid": "报告fid"
}
def get_latest_fid(self):
"""获取最新一期报告"""

View File

View File

@ -4,11 +4,11 @@ from Utils.ObjUtil import SpecObject
from Utils.ValidateUtil import ValidateAttr
class FECRFile(SpecObject):
class TFSEFile(SpecObject):
"""文件类"""
file_id = ValidateAttr(field='file_id', type=str)
file_bucket = ValidateAttr(field='file_bucket', in_list=["综信报告", "综信证书", "ESG报告", "ESG证书"])
file_bucket = ValidateAttr(field='file_bucket', in_list=["综信报告", "综信证书", "ESG报告", "ESG证书", "行业分析报告"])
file_body = ValidateAttr(field='file_body', type=Response, default=None)
fields_map = {

View File

View File

@ -4,7 +4,7 @@ from flask import Blueprint
from Utils.AuthUtil import verify_token
from Utils.ErrorUtil import ReturnConditionCheckFailed
from Implements.Company.Index import CompanyIndexImpl
from Implements.Company.IndexImpl import CompanyIndexImpl
company_route = Blueprint('company', __name__)
@ -49,6 +49,7 @@ def industry_analysis_route(**kwargs):
try:
impl = CompanyIndexImpl()
impl.cid = kwargs['cid']
impl.get_industry_type()
impl.get_industry_analysis()
if impl.industry_analysis:
result = impl.industry_analysis.dict_to_show()

View File

@ -1,5 +1,7 @@
from flask import Blueprint, request, Response
from Implements.Company.IndexImpl import CompanyIndexImpl
from Implements.Industry.IndustryImpl import IndustryReportRecordImpl
from Implements.Others.TFSEFileImpl import TFSEFileImpl
from Utils.AuthUtil import verify_token, verify_report_view_auth
@ -62,3 +64,25 @@ def get_esg_rating_certificate_route(**kwargs):
return impl.dict_to_return()
else:
return {"info": "文件不存在"}, 200
@file_route.route('/get_industry_report', methods=['GET'])
@verify_token
def get_industry_report_route(**kwargs):
"""获取行业报告"""
company_impl = CompanyIndexImpl()
company_impl.cid = kwargs['cid']
company_impl.get_industry_type()
industry_impl = IndustryReportRecordImpl()
industry_impl.industry = company_impl.industry
industry_impl.get_latest_fid()
file_impl = TFSEFileImpl()
file_impl.file_bucket = '行业分析报告'
file_impl.file_id = industry_impl.fid
file_impl.get_pdf()
if file_impl.file_body:
return file_impl.dict_to_return()
else:
return {"info": "文件不存在"}, 200

2
app.py
View File

@ -2,7 +2,7 @@ from flask import Flask
from flask_cors import *
from Routes.Company.Index import company_route
from Routes.Company.IndexRoute import company_route
from Routes.Other.EmailNoticeRoute import email_route
from Routes.Other.TFSEFileRoute import file_route
from Routes.User.TFSECompanyUserRoute import company_user_route