from DBHelper.MongoHelper import MongoHelper from Manage.Company.CompanyObj import SearchCompany class SearchCompanyImpl(SearchCompany): """""" db = MongoHelper("tfse_v0.21") def conditions_search(self): """""" 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