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-01-06 15:28:08 +08:00
|
|
|
|
|
|
|
|
2022-04-01 16:57:25 +08:00
|
|
|
class SearchCompanyImpl(SearchCompany):
|
|
|
|
""""""
|
|
|
|
db = MongoHelper("tfse_v0.21")
|
|
|
|
|
|
|
|
def conditions_search(self):
|
|
|
|
""""""
|
2022-01-06 15:28:08 +08:00
|
|
|
|
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
|