from DBHelper.MongoHelper import MongoHelper from Manage.Company.CompanyObj import SearchCompanyApi, SearchCompanyResult, CompanyIndexApi class SearchCompanyApiImpl(SearchCompanyApi): """企业查询请求接口实现类""" db = MongoHelper("tfse_v0.21") def conditions_search(self): """""" search_body = self.search.make_search_body() sort = self.sort.make_sort_body() page_size = 10 if self.page_size > 10 else self.page_size page_no = 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 = SearchCompanyResult() company.cid = record['企业ID'] company.name = record['企业名称'] 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等级"]) table_data.append(data) result = { "records": table_data, "total": total } return result class CompanyIndexApiImpl(CompanyIndexApi): """企业主页接口实现类""" db = MongoHelper("tfse_v0.21") head_info = CompanyIndexApi.HeadInfo() update_time = CompanyIndexApi.UpdateTime() 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['一级行业'] 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]