行业报告路由

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 self.business_info = business_info
def get_industry_analysis(self): def get_industry_type(self):
"""企业主页 行业分析"""
industry = self.db.find_single_column( industry = self.db.find_single_column(
"企业数据", "企业数据",
"企业数据_更新汇总", "企业数据_更新汇总",
{"企业ID": self.cid}, {"企业ID": self.cid},
"一级行业" "一级行业"
) )
self.industry = industry
def get_industry_analysis(self):
"""企业主页 行业分析"""
result = self.db.find_single_data( 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 flask import Response
from DBHelper.MongoHelper import MongoHelper 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") db = MongoHelper("tfse_v0.21")

View File

@ -80,6 +80,7 @@ class CompanyIndex(SpecObject):
cid = ValidateAttr(field='cid', type=str, length=8) cid = ValidateAttr(field='cid', type=str, length=8)
name = ValidateAttr(field='name', type=str) name = ValidateAttr(field='name', type=str)
industry = ValidateAttr(field='industry', type=str)
head_info = ValidateAttr(field='head_info', type=HeadInfo) head_info = ValidateAttr(field='head_info', type=HeadInfo)
business_info = ValidateAttr(field='business_info', type=BasicBusinessInfo) business_info = ValidateAttr(field='business_info', type=BasicBusinessInfo)
industry_analysis = ValidateAttr(field='industry_analysis', type=IndustryAnalysis) industry_analysis = ValidateAttr(field='industry_analysis', type=IndustryAnalysis)
@ -91,6 +92,7 @@ class CompanyIndex(SpecObject):
fields_map = { fields_map = {
"cid": "企业ID", "cid": "企业ID",
"name": "企业名称", "name": "企业名称",
"industry": "行业",
"head_info": "工商信息", "head_info": "工商信息",
"business_info": "股东信息", "business_info": "股东信息",
"industry_analysis": "主要成员", "industry_analysis": "主要成员",
@ -106,6 +108,9 @@ class CompanyIndex(SpecObject):
def get_business_info(self): def get_business_info(self):
"""获取 工商基本信息""" """获取 工商基本信息"""
def get_industry_type(self):
"""获取行业类型"""
def get_industry_analysis(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 from Utils.ValidateUtil import ValidateAttr
class FECRFile(SpecObject): class TFSEFile(SpecObject):
"""文件类""" """文件类"""
file_id = ValidateAttr(field='file_id', type=str) 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) file_body = ValidateAttr(field='file_body', type=Response, default=None)
fields_map = { fields_map = {

View File

View File

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

View File

@ -1,5 +1,7 @@
from flask import Blueprint, request, Response 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 Implements.Others.TFSEFileImpl import TFSEFileImpl
from Utils.AuthUtil import verify_token, verify_report_view_auth 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() return impl.dict_to_return()
else: else:
return {"info": "文件不存在"}, 200 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 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.EmailNoticeRoute import email_route
from Routes.Other.TFSEFileRoute import file_route from Routes.Other.TFSEFileRoute import file_route
from Routes.User.TFSECompanyUserRoute import company_user_route from Routes.User.TFSECompanyUserRoute import company_user_route