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

113 lines
3.5 KiB
Python
Raw Normal View History

2022-04-01 16:57:25 +08:00
from DBHelper.MongoHelper import MongoHelper
2022-04-18 11:12:47 +08:00
from Manage.Company.CompanyObj import SearchCompanyApi, SearchCompanyResult, CompanyIndexApi
2022-04-18 11:12:47 +08:00
class SearchCompanyApiImpl(SearchCompanyApi):
"""企业查询请求接口实现类"""
2022-04-01 16:57:25 +08:00
db = MongoHelper("tfse_v0.21")
def conditions_search(self):
""""""
2022-04-14 03:12:36 +08:00
search_body = self.search.make_search_body()
sort = self.sort.make_sort_body()
2022-04-02 16:53:26 +08:00
page_size = 10 if self.page_size > 10 else self.page_size
2022-04-14 03:12:36 +08:00
page_no = self.page_no
2022-04-02 16:53:26 +08:00
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:
2022-04-14 03:12:36 +08:00
company = SearchCompanyResult()
2022-04-02 16:53:26 +08:00
company.cid = record['企业ID']
company.name = record['企业名称']
2022-04-14 03:12:36 +08:00
company.industry = record['一级行业']
# if record.__contains__('综信评价结果'):
try:
company.credit_level = record['综信评价结果']['信用等级']
# else:
except KeyError:
company.credit_level = None
# if record.__contains__('ESG评价结果'):
try:
company.esg_level = record['ESG评价结果']['评价等级']
# else:
except KeyError:
company.esg_level = None
data = company.dict_to_show(columns=["企业ID", "企业名称", "一级行业", "信用等级", "ESG等级"])
2022-04-02 16:53:26 +08:00
table_data.append(data)
result = {
"records": table_data,
"total": total
}
return result
2022-04-18 11:12:47 +08:00
class CompanyIndexApiImpl(CompanyIndexApi):
"""企业主页接口实现类"""
db = MongoHelper("tfse_v0.21")
head_info = CompanyIndexApi.HeadInfo()
2022-04-18 12:23:22 +08:00
update_time = CompanyIndexApi.UpdateTime()
2022-04-18 11:12:47 +08:00
basic_info = CompanyIndexApi
financial_data = CompanyIndexApi
operating_risk = CompanyIndexApi
financial_analysis = CompanyIndexApi
cc_rating = CompanyIndexApi
esg_rating = CompanyIndexApi
def get_head_info(self):
"""获取头部信息"""
self.head_info.email = self.db.find_single_column(
"应用端",
"企业用户",
{"企业ID": self.head_info.cid},
"邮箱"
)
result = self.db.find_single_data(
"企业数据",
"企业数据_更新汇总",
{"企业ID": self.head_info.cid},
["企业名称", "一级行业"]
)
self.head_info.name = result['企业名称']
self.head_info.industry = result['一级行业']
2022-04-18 12:23:22 +08:00
def get_update_time(self):
""""""
results = self.db.find_all_data_with_single_sort(
"企业数据",
self.update_time.table_map[self.update_time.table],
{"企业ID": self.update_time.cid},
["更新日期"],
{"更新日期": -1}
)
self.update_time.update_time = [result['更新日期'] for result in results]