tfse-admin-api-v0.2/Manage/Company/CompanyImpl.py

102 lines
3.5 KiB
Python
Raw Normal View History

2022-04-01 16:57:25 +08:00
from DBHelper.MongoHelper import MongoHelper
2022-04-13 17:04:00 +08:00
from Manage.Company.CompanyObj import SearchCompany
2022-04-01 16:57:25 +08:00
class SearchCompanyImpl(SearchCompany):
""""""
db = MongoHelper("tfse_v0.21")
def conditions_search(self):
""""""
2022-04-02 16:53:26 +08:00
def make_search_body(param):
search_keys = list(param.keys())
body = dict()
if "企业ID" in search_keys:
body['企业ID'] = param['企业ID']
if "企业名称" in search_keys:
body['企业名称'] = {"$regex": param['企业名称']}
if "一级行业" in search_keys:
body['一级行业'] = {"$in": param['一级行业']}
if "信用等级" in search_keys:
body['综信评价结果.信用等级'] = {"$in": param['信用等级']}
if "ESG等级" in search_keys:
body['ESG评价结果.评价等级'] = {"$in": param['ESG等级']}
return body
# 顺序条件构造方法
def make_sort_body(param):
if param != {}:
columns_map = {
"企业ID": "企业ID",
"企业名称": "企业名称",
"一级行业": "一级行业",
"信用等级": "综信评价结果.信用等级",
"ESG等级": "ESG评价结果.评价等级"
}
asc_or_desc = 1 if list(param.values())[0] == "asc" else -1
sort_column = columns_map[list(param.keys())[0]]
body = {sort_column: asc_or_desc}
else:
body = {"更新时间.工商信息": -1}
return body
search_body = make_search_body(self.search)
sort = make_sort_body(self.sort)
page_size = 10 if self.page_size > 10 else self.page_size
page_no = int(self.page_no)
total = self.db.find_all_data_with_count(
"企业数据",
"企业数据_更新汇总",
search_body
)
records = self.db.find_data_by_page_with_sort(
"企业数据",
"企业数据_更新汇总",
search_body,
["企业ID", "企业名称", "一级行业", "综信评价结果.信用等级", "ESG评价结果.评价等级"],
sort,
page_size,
page_no
)
table_data = list()
if records:
for record in records:
company = Company()
company.cid = record['企业ID']
company.name = record['企业名称']
company.industry_l1 = record['一级行业']
if record['综信评价结果'] != {}:
company.cc_rating_result = record['综信评价结果']['信用等级']
else:
company.cc_rating_result = None
if record['ESG评价结果'] != {}:
company.esg_rating_result = record['ESG评价结果']['评价等级']
else:
company.esg_rating_result = None
data = company.dict_to_show(columns=["企业ID", "企业名称", "一级行业", "综信评价结果", "ESG评价结果"])
data['信用等级'] = data.pop('综信评价结果')
data['ESG等级'] = data.pop('ESG评价结果')
table_data.append(data)
result = {
"records": table_data,
"total": total
}
return result