From 4b32e95e97cc327d8e6825c9c607e7a94a986f1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=80=9D=E5=B7=9D?= Date: Fri, 11 Feb 2022 16:14:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=8C=E4=B8=9A=E6=9F=A5=E8=AF=A2=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Manage/industry/industry_db.py | 16 ++++++++++++++++ Manage/industry/industry_impl.py | 18 +++++++++++++++++- Manage/industry/industry_obj.py | 12 +++++++++++- Manage/industry/industry_routes.py | 21 ++++++++++++++++----- 4 files changed, 60 insertions(+), 7 deletions(-) diff --git a/Manage/industry/industry_db.py b/Manage/industry/industry_db.py index e483f66..f1639a2 100644 --- a/Manage/industry/industry_db.py +++ b/Manage/industry/industry_db.py @@ -49,6 +49,22 @@ def FIND_DATA(param1, param2): return records +def FIELDS_FIND_DATA(param1, param2, param3): + """ + 根据查询条件和需求字段返回数据 + Parameters: + param1: str 数据集 + param2: obj 查询条件 + param3: list 需求字段 + Returns: + records: list 符合条件的数据 + """ + collection = CLIENT['宏观'][param1] + param3 = dict(zip(param3, len(param3) * [1])) + records = list(collection.find(param2, {**{'_id': False}, **param3})) + return records + + def FUZZY_FIND_DATA(param1, param2): """ 模糊查询 diff --git a/Manage/industry/industry_impl.py b/Manage/industry/industry_impl.py index 10e39c3..86d258b 100644 --- a/Manage/industry/industry_impl.py +++ b/Manage/industry/industry_impl.py @@ -1,4 +1,4 @@ -from Manage.industry.industry_db import UPDATE_DATA, FUZZY_FIND_DATA +from Manage.industry.industry_db import UPDATE_DATA, FUZZY_FIND_DATA, FIND_DATA, FIELDS_FIND_DATA from Manage.industry.industry_utils import dict_fields_map, sub_dict @@ -35,3 +35,19 @@ def primary_industry_update_data_impl(param): result = dict_fields_map(param.__dict__, fields_map) UPDATE_DATA('行业宏观分析', {"行业": result["行业"]}, result) + + +def get_primary_industry_data_impl(param): + """ + 获取一级行业数据 + """ + analysis_data = FIND_DATA('行业宏观分析', {'行业': param})[0] + + report_data = FIELDS_FIND_DATA('行业报告', {'行业名称': param}, ['报告名称', '报告fid', '上传日期']) + for data in report_data: + data['报告'] = '/file/get_industry_report?file_id={}'.format(data['报告fid']) + data.pop('报告fid') + + result = {**analysis_data, **{'报告数据': report_data}} + + return result diff --git a/Manage/industry/industry_obj.py b/Manage/industry/industry_obj.py index c722a97..a97f775 100644 --- a/Manage/industry/industry_obj.py +++ b/Manage/industry/industry_obj.py @@ -1,6 +1,7 @@ import time -from Manage.industry.industry_impl import primary_industry_update_data_impl, search_industry_impl +from Manage.industry.industry_impl import primary_industry_update_data_impl, search_industry_impl, \ + get_primary_industry_data_impl class PrimaryIndustry: @@ -15,6 +16,9 @@ class PrimaryIndustry: self.update_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) def search_industry(self): + """ + 查询一级行业 + """ return search_industry_impl(self.name) def update_analysis_data(self): @@ -24,6 +28,12 @@ class PrimaryIndustry: primary_industry_update_data_impl(self) return True + def get_primary_industry_data(self): + """ + 获取一级行业详情数据 + """ + return get_primary_industry_data_impl(self.name) + class SecondaryIndustry: diff --git a/Manage/industry/industry_routes.py b/Manage/industry/industry_routes.py index 478c971..0b7dc35 100644 --- a/Manage/industry/industry_routes.py +++ b/Manage/industry/industry_routes.py @@ -10,24 +10,35 @@ industry_route = Blueprint('/manage/industry', __name__) @verify_token @authority_scope(['admin', 'developer', 'analysts', 'operator']) def search_route(**kwargs): + """ + 行业模糊查询 + """ pi = PrimaryIndustry() pi.name = request.json['行业'] result = pi.search_industry() return {"info": "查询成功", "result": result} -@industry_route.route('/get_primary_industry_data') +@industry_route.route('/get_primary_industry_data', methods=['POST']) @verify_token @authority_scope(['admin', 'developer', 'analysts', 'operator']) def get_primary_industry_data_route(**kwargs): - pass + """ + 获取一级行业分析数据 + """ + pi = PrimaryIndustry() + pi.name = request.json['行业'] + result = pi.get_primary_industry_data() + return result @industry_route.route('/save_primary_industry_data', methods=['POST']) @verify_token -@authority_scope(['admin', 'developer', 'analysts', 'operator ']) -def create_primary_industry_routes(**kwargs): - +@authority_scope(['admin', 'developer', 'analysts', 'operator']) +def save_primary_industry_routes(**kwargs): + """ + 保存一级行业分析数据 + """ body = request.json pi = PrimaryIndustry() pi.name = body['行业']