from DBHelper.MongoHelper import MongoHelper from Manage.company.company_db import * from Manage.company.company_obj import SearchCompany, Company 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 def company_index_script(cid): """ 查询企业相关信息 Parameters: cid: 企业ID Returns: result: 返回数据 """ user_info = find_user_info(cid) basic_info = find_company_basic_info(cid) evaluate_info = find_company_evaluate_info(cid) result = dict() if len(user_info) > 0: result['企业名称'] = user_info[0]['企业名称'] result['企业ID'] = cid result['已认证'] = user_info[0]['已认证'] if len(basic_info) > 0: result['基本信息'] = dict() result['基本信息']['工商信息'] = basic_info[0]['工商信息'] result['基本信息']['股东信息'] = basic_info[0]['股东信息'] result['基本信息']['主要成员'] = basic_info[0]['主要成员'] if len(evaluate_info) > 0: result['评价记录'] = list() result['评价记录'] = evaluate_info for item in evaluate_info: item['报告'] = '/file/get_company_report?file_id={}'.format(item['报告fid']) item['证书'] = '/file/get_certification?file_id={}'.format(item['证书fid']) item.pop('报告fid') item.pop('证书fid') return result def company_edit_script(cid, data): """ 编辑企业信息 Parameters: cid: 企业ID data: 编辑后数据 Returns: result: 编辑数据 """ result = update_company_info(cid, data) return result