Commit 618da54c by dong

fix

parent b4e27137
......@@ -455,12 +455,132 @@ def get_enterprise_num(product, inid):
return company, size
# 全国企业列表
全国企业列表
@api_map.route('/AttractEnterprise', methods=['POST'])
def attract_enterprise():
'''
:return:
'''
req_dict = request.get_json()
inid = req_dict.get("inid") # 行业id
company_name = req_dict.get("company_name") # 产业产品名称筛选
entype = req_dict.get("entype") # 企业类型id
qualificat = req_dict.get("qualificat") # 企业资质id
quoted = req_dict.get("quoted") # 上市板块(A股,1)(创业股,2)(港股,3)(新三股,4)(新四股,5)(中小板,6)
product = req_dict.get("product") # 产业产品选择
area = req_dict.get("area") # ["省","市","区"]
province = area[0]
city = area[1]
district = area[2]
if district == '满城县':
district = '满城区'
page = req_dict.get("page") # 分页页码
perpage = req_dict.get("perpage") # 分页大小
name_query = "AttractEnterprise" + str(inid) + str(page) + province + city + district + \
product + company_name + entype + qualificat + quoted + product
if redis_store.get(name_query) is not None:
data = json.loads(redis_store.get(name_query))
return jsonify(code=RET.OK, msg="获取成功", data=data)
if not all([page, perpage]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
if product:
enterprise, size = get_enterprise_num(product, inid)
else:
enterprise = Enterprise.query.filter(or_(
Enterprise.c_type == inid,
Enterprise.c_type1 == inid,
Enterprise.c_type2 == inid
)).all()
if company_name:
enterprise = [enter for enter in enterprise if company_name in enter.company_name]
# enterprise = enterprise.filter_by(
# Enterprise.company_name.like('%{}%'.format(company_name)) if company_name else text('')
# )
if entype:
enterprise = [enter for enter in enterprise if entype in enter.entype]
# enterprise = enterprise.filter(
# Enterprise.entype.like('%{}%'.format(entype)) if entype else text('')
# )
if quoted:
enterprise = [enter for enter in enterprise if enter.public_id == quoted]
if province:
enterprise = [enter for enter in enterprise if enter.province == province]
if city:
enterprise = [enter for enter in enterprise if enter.city == city]
if district:
enterprise = [enter for enter in enterprise if enter.district == district]
if qualificat == '中国500强企业':
enterprise = [enter for enter in enterprise if enter.isfive == '1']
if qualificat == '上市企业':
enterprise = [enter for enter in enterprise if enter.quoted_company == '1']
if qualificat == '链主企业':
enterprise = [enter for enter in enterprise if enter.chain_master == '1']
if qualificat == '高新技术企业':
enterprise = [enter for enter in enterprise if enter.high_new == '1']
if qualificat == '山西专精特新企业':
enterprise = [enter for enter in enterprise if enter.zjtg == '1']
if qualificat == '独角兽企业':
enterprise = [enter for enter in enterprise if enter.unicorn == '1']
if qualificat == '瞪羚企业':
enterprise = [enter for enter in enterprise if enter.dengl == '1']
if qualificat == '科技型中小企业':
enterprise = [enter for enter in enterprise if enter.tbe == '1']
if qualificat == '规模以上企业':
enterprise = [enter for enter in enterprise if enter.scale == '1']
if qualificat == '山西100强企业':
enterprise = [enter for enter in enterprise if enter.sxonhun == '1']
if qualificat == '限额以上服务业企业':
enterprise = [enter for enter in enterprise if enter.serve == '1']
if qualificat == '专利企业':
enterprise = [enter for enter in enterprise if enter.patent == '1']
company1 = sorted(enterprise, key=lambda x: x.hots, reverse=True) # 排序
enterprise_obj_list = company1[(page - 1) * perpage:page * perpage] # 分页
df = [{"id": i.id,
"company_name": i.company_name,
"aptitude": list(filter(None, [
"中国500强" if i.isfive == '1' else '',
"上市企业" if i.quoted_company == '1' else '',
"链主企业" if i.chain_master == '1' else '',
"高新技术企业" if i.high_new == '1' else '',
"山西专精特新企业" if i.zjtg == '1' else '',
"独角兽企业" if i.unicorn == '1' else '',
"瞪羚企业" if i.dengl == '1' else '',
"科技型中小企业" if i.tbe == '1' else '',
"山西民营100强" if i.sxonhun == '1' else '',
"规模以上企业" if i.scale == '1' else '',
"限额以上服务业" if i.serve == '1' else '',
"专利企业" if i.patent == '1' else ''
]))
} for i in enterprise_obj_list]
size = len(company1)
data = {"size": size, "df": df}
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# redis缓存
try:
redis_store.setex(name_query, 30 * 24 * 3600, json.dumps(data))
except:
return jsonify(code=RET.DBERR, msg="redis保存失败!")
return jsonify(code=RET.OK, msg="获取成功", data=data)
# 全国企业列表(Es)
# @api_map.route('/AttractEnterprise', methods=['POST'])
# def attract_enterprise():
# '''
# :return:
# '''
# req_dict = request.get_json()
# inid = req_dict.get("inid") # 行业id
# company_name = req_dict.get("company_name") # 产业产品名称筛选
......@@ -473,259 +593,139 @@ def get_enterprise_num(product, inid):
# province = area[0]
# city = area[1]
# district = area[2]
# if district == '满城县':
# district = '满城区'
# page = req_dict.get("page") # 分页页码
# perpage = req_dict.get("perpage") # 分页大小
#
# name_query = "AttractEnterprise" + str(inid) + str(page) + province + city + district + \
# product + company_name + entype + qualificat + quoted + product
# if redis_store.get(name_query) is not None:
# data = json.loads(redis_store.get(name_query))
# return jsonify(code=RET.OK, msg="获取成功", data=data)
#
# if not all([page, perpage]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
#
# try:
# if product:
# enterprise, size = get_enterprise_num(product, inid)
# else:
# enterprise = Enterprise.query.filter(or_(
# Enterprise.c_type == inid,
# Enterprise.c_type1 == inid,
# Enterprise.c_type2 == inid
# )).all()
# # 页数
# if not page:
# page = 1
# page = int(page)
# page = (page - 1) * perpage
#
# args_query = dict() # 查询字段
# args_term = dict() # 条件字典
#
# args_query["company_name"] = "公司"
# # 搜索框
# if company_name:
# enterprise = [enter for enter in enterprise if company_name in enter.company_name]
# # enterprise = enterprise.filter_by(
# # Enterprise.company_name.like('%{}%'.format(company_name)) if company_name else text('')
# # )
# args_query["company_name"] = company_name
#
# if entype:
# enterprise = [enter for enter in enterprise if entype in enter.entype]
# args_term['entype'] = entype
#
# # enterprise = enterprise.filter(
# # Enterprise.entype.like('%{}%'.format(entype)) if entype else text('')
# # )
# if quoted:
# enterprise = [enter for enter in enterprise if enter.public_id == quoted]
# args_term['public_id'] = quoted
#
# if qualificat:
# if qualificat == "中国500强":
# args_term['isfive'] = 1
# if qualificat == "上市企业":
# args_term['quoted_company'] = 1
# if qualificat == "独角兽企业":
# args_term['unicorn'] = 1
# if qualificat == "瞪羚企业":
# args_term['dengl'] = 1
# if qualificat == "规上企业":
# args_term['scale'] = 1
# if qualificat == "科技型中小企业":
# args_term['tbe'] = 1
# if qualificat == "高新技术企业":
# args_term['high_new'] = 1
# if qualificat == "专精特新企业":
# args_term['zjtx'] = 1
# if qualificat == "外资企业":
# args_term['foreign_investment'] = 1
#
# # 省
# if province:
# enterprise = [enter for enter in enterprise if enter.province == province]
# args_term['province'] = province
# # 市
# if city:
# enterprise = [enter for enter in enterprise if enter.city == city]
# args_term['city'] = city
# # 区
# if district:
# enterprise = [enter for enter in enterprise if enter.district == district]
#
# if qualificat == '中国500强企业':
# enterprise = [enter for enter in enterprise if enter.isfive == '1']
# if qualificat == '上市企业':
# enterprise = [enter for enter in enterprise if enter.quoted_company == '1']
# if qualificat == '链主企业':
# enterprise = [enter for enter in enterprise if enter.chain_master == '1']
# if qualificat == '高新技术企业':
# enterprise = [enter for enter in enterprise if enter.high_new == '1']
# if qualificat == '山西专精特新企业':
# enterprise = [enter for enter in enterprise if enter.zjtg == '1']
# if qualificat == '独角兽企业':
# enterprise = [enter for enter in enterprise if enter.unicorn == '1']
# if qualificat == '瞪羚企业':
# enterprise = [enter for enter in enterprise if enter.dengl == '1']
# if qualificat == '科技型中小企业':
# enterprise = [enter for enter in enterprise if enter.tbe == '1']
# if qualificat == '规模以上企业':
# enterprise = [enter for enter in enterprise if enter.scale == '1']
# if qualificat == '山西100强企业':
# enterprise = [enter for enter in enterprise if enter.sxonhun == '1']
# if qualificat == '限额以上服务业企业':
# enterprise = [enter for enter in enterprise if enter.serve == '1']
# if qualificat == '专利企业':
# enterprise = [enter for enter in enterprise if enter.patent == '1']
#
# company1 = sorted(enterprise, key=lambda x: x.hots, reverse=True) # 排序
# enterprise_obj_list = company1[(page - 1) * perpage:page * perpage] # 分页
# args_term['district'] = district
#
# df = [{"id": i.id,
# "company_name": i.company_name,
# body = create_body(page, perpage, args_query, args_term)
# if not company_name:
# del body["query"]["bool"]["must"][0]
#
# if inid in range(1, 9) and not product:
# f_c_type = {
# "multi_match": {
# "query": inid,
# "fields": ["f_type", "f_type1", "f_type2"]
# }
# }
# body["query"]["bool"]["must"].append(f_c_type)
# elif inid and not product:
# f_c_type = {
# "multi_match": {
# "query": inid,
# "fields": ["c_type", "c_type1", "c_type2"]
# }
# }
# body["query"]["bool"]["must"].append(f_c_type)
# else:
# pass
#
# if product:
# product = {
# "multi_match": {
# "query": product,
# "fields": ["product_all", "product_all1", "product_all2"]
# }
# }
# body["query"]["bool"]["must"].append(product)
#
# try:
# es = Elasticsearch([{'host': '39.100.39.50', 'port': 9200}])
#
# data = es.search(index="mancheng_enterperise", body=body)
# df = []
# size = data["hits"]['total']
#
# # 数据的列表添加进去
# for i in data["hits"]['hits']:
# if company_name:
# # 判断高亮,然后添加
# df.append({
# "id": i["_source"]["mysql_id"],
# "company_name": i["highlight"]["company_name"][0] if "company_name" in i["highlight"] else i["_source"][
# "company_name"],
# "aptitude": list(filter(None, [
# "中国500强" if i.isfive == '1' else '',
# "上市企业" if i.quoted_company == '1' else '',
# "链主企业" if i.chain_master == '1' else '',
# "高新技术企业" if i.high_new == '1' else '',
# "山西专精特新企业" if i.zjtg == '1' else '',
# "独角兽企业" if i.unicorn == '1' else '',
# "瞪羚企业" if i.dengl == '1' else '',
# "科技型中小企业" if i.tbe == '1' else '',
# "山西民营100强" if i.sxonhun == '1' else '',
# "规模以上企业" if i.scale == '1' else '',
# "限额以上服务业" if i.serve == '1' else '',
#
# "专利企业" if i.patent == '1' else ''
# ]))
# } for i in enterprise_obj_list]
# size = len(company1)
# data = {"size": size, "df": df}
# "中国500强" if i["_source"]["isfive"] == '1' else '',
# "上市企业" if i["_source"]["quoted_company"] == "1" else '',
# "独角兽企业" if i["_source"]["unicorn"] == "1" else '',
# "瞪羚企业" if i["_source"]["dengl"] == "1" else '',
# "规上企业" if i["_source"]["scale"] == "1" else '',
# "科技型中小企业" if i["_source"]["tbe"] == "1" else '',
# "高新技术企业" if i["_source"]["high_new"] == "1" else '',
# "专精特新企业" if i["_source"]["zjtx"] == "1" else '',
# "外资企业" if i["_source"]["foreign_investment"] == "1" else '']))})
#
# else:
# df.append({
# "id": i["_source"]["mysql_id"],
# "company_name": i["_source"]["company_name"],
# "aptitude": list(filter(None, [
# "中国500强" if i["_source"]["isfive"] == '1' else '',
# "上市企业" if i["_source"]["quoted_company"] == "1" else '',
# "独角兽企业" if i["_source"]["unicorn"] == "1" else '',
# "瞪羚企业" if i["_source"]["dengl"] == "1" else '',
# "规上企业" if i["_source"]["scale"] == "1" else '',
# "科技型中小企业" if i["_source"]["tbe"] == "1" else '',
# "高新技术企业" if i["_source"]["high_new"] == "1" else '',
# "专精特新企业" if i["_source"]["zjtx"] == "1" else '',
# "外资企业" if i["_source"]["foreign_investment"] == "1" else '']))})
#
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库查询错误")
# # redis缓存
# try:
# redis_store.setex(name_query, 30 * 24 * 3600, json.dumps(data))
# except:
# return jsonify(code=RET.DBERR, msg="redis保存失败!")
# return jsonify(code=RET.OK, msg="获取成功", data=data)
# 全国企业列表(Es)
@api_map.route('/AttractEnterprise', methods=['POST'])
def attract_enterprise():
req_dict = request.get_json()
inid = req_dict.get("inid") # 行业id
company_name = req_dict.get("company_name") # 产业产品名称筛选
entype = req_dict.get("entype") # 企业类型id
qualificat = req_dict.get("qualificat") # 企业资质id
quoted = req_dict.get("quoted") # 上市板块(A股,1)(创业股,2)(港股,3)(新三股,4)(新四股,5)(中小板,6)
product = req_dict.get("product") # 产业产品选择
area = req_dict.get("area") # ["省","市","区"]
province = area[0]
city = area[1]
district = area[2]
page = req_dict.get("page") # 分页页码
perpage = req_dict.get("perpage") # 分页大小
if not all([page, perpage]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
# 页数
if not page:
page = 1
page = int(page)
page = (page - 1) * perpage
args_query = dict() # 查询字段
args_term = dict() # 条件字典
args_query["company_name"] = "公司"
# 搜索框
if company_name:
args_query["company_name"] = company_name
if entype:
args_term['entype'] = entype
if quoted:
args_term['public_id'] = quoted
if qualificat:
if qualificat == "中国500强":
args_term['isfive'] = 1
if qualificat == "上市企业":
args_term['quoted_company'] = 1
if qualificat == "独角兽企业":
args_term['unicorn'] = 1
if qualificat == "瞪羚企业":
args_term['dengl'] = 1
if qualificat == "规上企业":
args_term['scale'] = 1
if qualificat == "科技型中小企业":
args_term['tbe'] = 1
if qualificat == "高新技术企业":
args_term['high_new'] = 1
if qualificat == "专精特新企业":
args_term['zjtx'] = 1
if qualificat == "外资企业":
args_term['foreign_investment'] = 1
# 省
if province:
args_term['province'] = province
# 市
if city:
args_term['city'] = city
# 区
if district:
args_term['district'] = district
body = create_body(page, perpage, args_query, args_term)
if not company_name:
del body["query"]["bool"]["must"][0]
if inid in range(1, 9) and not product:
f_c_type = {
"multi_match": {
"query": inid,
"fields": ["f_type", "f_type1", "f_type2"]
}
}
body["query"]["bool"]["must"].append(f_c_type)
elif inid and not product:
f_c_type = {
"multi_match": {
"query": inid,
"fields": ["c_type", "c_type1", "c_type2"]
}
}
body["query"]["bool"]["must"].append(f_c_type)
else:
pass
if product:
product = {
"multi_match": {
"query": product,
"fields": ["product_all", "product_all1", "product_all2"]
}
}
body["query"]["bool"]["must"].append(product)
try:
es = Elasticsearch([{'host': '39.100.39.50', 'port': 9200}])
data = es.search(index="mancheng_enterperise", body=body)
df = []
size = data["hits"]['total']
# 数据的列表添加进去
for i in data["hits"]['hits']:
if company_name:
# 判断高亮,然后添加
df.append({
"id": i["_source"]["mysql_id"],
"company_name": i["highlight"]["company_name"][0] if "company_name" in i["highlight"] else i["_source"][
"company_name"],
"aptitude": list(filter(None, [
"中国500强" if i["_source"]["isfive"] == '1' else '',
"上市企业" if i["_source"]["quoted_company"] == "1" else '',
"独角兽企业" if i["_source"]["unicorn"] == "1" else '',
"瞪羚企业" if i["_source"]["dengl"] == "1" else '',
"规上企业" if i["_source"]["scale"] == "1" else '',
"科技型中小企业" if i["_source"]["tbe"] == "1" else '',
"高新技术企业" if i["_source"]["high_new"] == "1" else '',
"专精特新企业" if i["_source"]["zjtx"] == "1" else '',
"外资企业" if i["_source"]["foreign_investment"] == "1" else '']))})
else:
df.append({
"id": i["_source"]["mysql_id"],
"company_name": i["_source"]["company_name"],
"aptitude": list(filter(None, [
"中国500强" if i["_source"]["isfive"] == '1' else '',
"上市企业" if i["_source"]["quoted_company"] == "1" else '',
"独角兽企业" if i["_source"]["unicorn"] == "1" else '',
"瞪羚企业" if i["_source"]["dengl"] == "1" else '',
"规上企业" if i["_source"]["scale"] == "1" else '',
"科技型中小企业" if i["_source"]["tbe"] == "1" else '',
"高新技术企业" if i["_source"]["high_new"] == "1" else '',
"专精特新企业" if i["_source"]["zjtx"] == "1" else '',
"外资企业" if i["_source"]["foreign_investment"] == "1" else '']))})
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="es数据库错误")
data = {"size": size, "df": df}
return jsonify(code=RET.OK, msg="查找成功", data=data)
# return jsonify(code=RET.DBERR, msg="es数据库错误")
# data = {"size": size, "df": df}
# return jsonify(code=RET.OK, msg="查找成功", data=data)
# # 全国企业列表(Es)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment