Commit b108519a by dong

fix

parent b49a5171
...@@ -456,131 +456,131 @@ def get_enterprise_num(product, inid): ...@@ -456,131 +456,131 @@ def get_enterprise_num(product, inid):
# 全国企业列表 # 全国企业列表
@api_map.route('/AttractEnterprise', methods=['POST']) # @api_map.route('/AttractEnterprise', methods=['POST'])
def attract_enterprise(): # def attract_enterprise():
''' # '''
:return: # :return:
''' # '''
req_dict = request.get_json() # req_dict = request.get_json()
inid = req_dict.get("inid") # 行业id # inid = req_dict.get("inid") # 行业id
company_name = req_dict.get("company_name") # 产业产品名称筛选 # company_name = req_dict.get("company_name") # 产业产品名称筛选
entype = req_dict.get("entype") # 企业类型id # entype = req_dict.get("entype") # 企业类型id
qualificat = req_dict.get("qualificat") # 企业资质id # qualificat = req_dict.get("qualificat") # 企业资质id
quoted = req_dict.get("quoted") # 上市板块(A股,1)(创业股,2)(港股,3)(新三股,4)(新四股,5)(中小板,6) # quoted = req_dict.get("quoted") # 上市板块(A股,1)(创业股,2)(港股,3)(新三股,4)(新四股,5)(中小板,6)
product = req_dict.get("product") # 产业产品选择 # product = req_dict.get("product") # 产业产品选择
#
area = req_dict.get("area") # ["省","市","区"] # area = req_dict.get("area") # ["省","市","区"]
province = area[0] # province = area[0]
city = area[1] # city = area[1]
district = area[2] # district = area[2]
if district == '满城县': # if district == '满城县':
district = '满城区' # district = '满城区'
page = req_dict.get("page") # 分页页码 # page = req_dict.get("page") # 分页页码
perpage = req_dict.get("perpage") # 分页大小 # perpage = req_dict.get("perpage") # 分页大小
#
name_query = "AttractEnterprise" + str(inid) + str(page) + province + city + district + \ # name_query = "AttractEnterprise" + str(inid) + str(page) + province + city + district + \
product + company_name + entype + qualificat + quoted + product # product + company_name + entype + qualificat + quoted + product
if redis_store.get(name_query) is not None: # if redis_store.get(name_query) is not None:
data = json.loads(redis_store.get(name_query)) # data = json.loads(redis_store.get(name_query))
return jsonify(code=RET.OK, msg="获取成功", data=data) # return jsonify(code=RET.OK, msg="获取成功", data=data)
#
if not all([page, perpage]): # if not all([page, perpage]):
return jsonify(code=RET.PARAMERR, msg="参数不完整") # return jsonify(code=RET.PARAMERR, msg="参数不完整")
#
try: # try:
if product: # if product:
enterprise, size = get_enterprise_num(product, inid) # enterprise, size = get_enterprise_num(product, inid)
else: # else:
enterprise = Enterprise.query.filter(or_( # enterprise = Enterprise.query.filter(or_(
Enterprise.c_type == inid, # Enterprise.c_type == inid,
Enterprise.c_type1 == inid, # Enterprise.c_type1 == inid,
Enterprise.c_type2 == inid # Enterprise.c_type2 == inid
)).all() # )).all()
#
if company_name: # if company_name:
enterprise = [enter for enter in enterprise if company_name in enter.company_name] # enterprise = [enter for enter in enterprise if company_name in enter.company_name]
# enterprise = enterprise.filter_by( # # enterprise = enterprise.filter_by(
# Enterprise.company_name.like('%{}%'.format(company_name)) if company_name else text('') # # Enterprise.company_name.like('%{}%'.format(company_name)) if company_name else text('')
# ) # # )
#
if entype: # if entype:
enterprise = [enter for enter in enterprise if entype in enter.entype] # enterprise = [enter for enter in enterprise if entype in enter.entype]
#
# enterprise = enterprise.filter( # # enterprise = enterprise.filter(
# Enterprise.entype.like('%{}%'.format(entype)) if entype else text('') # # Enterprise.entype.like('%{}%'.format(entype)) if entype else text('')
# ) # # )
if quoted: # if quoted:
enterprise = [enter for enter in enterprise if enter.public_id == quoted] # enterprise = [enter for enter in enterprise if enter.public_id == quoted]
#
if province: # if province:
enterprise = [enter for enter in enterprise if enter.province == province] # enterprise = [enter for enter in enterprise if enter.province == province]
if city: # if city:
enterprise = [enter for enter in enterprise if enter.city == city] # enterprise = [enter for enter in enterprise if enter.city == city]
if district: # if district:
enterprise = [enter for enter in enterprise if enter.district == district] # enterprise = [enter for enter in enterprise if enter.district == district]
#
if qualificat == '中国500强企业': # if qualificat == '中国500强企业':
enterprise = [enter for enter in enterprise if enter.isfive == '1'] # enterprise = [enter for enter in enterprise if enter.isfive == '1']
if qualificat == '上市企业': # if qualificat == '上市企业':
enterprise = [enter for enter in enterprise if enter.quoted_company == '1'] # enterprise = [enter for enter in enterprise if enter.quoted_company == '1']
if qualificat == '链主企业': # if qualificat == '链主企业':
enterprise = [enter for enter in enterprise if enter.chain_master == '1'] # enterprise = [enter for enter in enterprise if enter.chain_master == '1']
if qualificat == '高新技术企业': # if qualificat == '高新技术企业':
enterprise = [enter for enter in enterprise if enter.high_new == '1'] # enterprise = [enter for enter in enterprise if enter.high_new == '1']
if qualificat == '山西专精特新企业': # if qualificat == '山西专精特新企业':
enterprise = [enter for enter in enterprise if enter.zjtg == '1'] # enterprise = [enter for enter in enterprise if enter.zjtg == '1']
if qualificat == '独角兽企业': # if qualificat == '独角兽企业':
enterprise = [enter for enter in enterprise if enter.unicorn == '1'] # enterprise = [enter for enter in enterprise if enter.unicorn == '1']
if qualificat == '瞪羚企业': # if qualificat == '瞪羚企业':
enterprise = [enter for enter in enterprise if enter.dengl == '1'] # enterprise = [enter for enter in enterprise if enter.dengl == '1']
if qualificat == '科技型中小企业': # if qualificat == '科技型中小企业':
enterprise = [enter for enter in enterprise if enter.tbe == '1'] # enterprise = [enter for enter in enterprise if enter.tbe == '1']
if qualificat == '规模以上企业': # if qualificat == '规模以上企业':
enterprise = [enter for enter in enterprise if enter.scale == '1'] # enterprise = [enter for enter in enterprise if enter.scale == '1']
if qualificat == '山西100强企业': # if qualificat == '山西100强企业':
enterprise = [enter for enter in enterprise if enter.sxonhun == '1'] # enterprise = [enter for enter in enterprise if enter.sxonhun == '1']
if qualificat == '限额以上服务业企业': # if qualificat == '限额以上服务业企业':
enterprise = [enter for enter in enterprise if enter.serve == '1'] # enterprise = [enter for enter in enterprise if enter.serve == '1']
if qualificat == '专利企业': # if qualificat == '专利企业':
enterprise = [enter for enter in enterprise if enter.patent == '1'] # enterprise = [enter for enter in enterprise if enter.patent == '1']
#
company1 = sorted(enterprise, key=lambda x: x.hots, reverse=True) # 排序 # company1 = sorted(enterprise, key=lambda x: x.hots, reverse=True) # 排序
enterprise_obj_list = company1[(page - 1) * perpage:page * perpage] # 分页 # enterprise_obj_list = company1[(page - 1) * perpage:page * perpage] # 分页
#
df = [{"id": i.id, # df = [{"id": i.id,
"company_name": i.company_name, # "company_name": i.company_name,
"aptitude": list(filter(None, [ # "aptitude": list(filter(None, [
"中国500强" if i.isfive == '1' else '', # "中国500强" if i.isfive == '1' else '',
"上市企业" if i.quoted_company == '1' else '', # "上市企业" if i.quoted_company == '1' else '',
"链主企业" if i.chain_master == '1' else '', # "链主企业" if i.chain_master == '1' else '',
"高新技术企业" if i.high_new == '1' else '', # "高新技术企业" if i.high_new == '1' else '',
"山西专精特新企业" if i.zjtg == '1' else '', # "山西专精特新企业" if i.zjtg == '1' else '',
"独角兽企业" if i.unicorn == '1' else '', # "独角兽企业" if i.unicorn == '1' else '',
"瞪羚企业" if i.dengl == '1' else '', # "瞪羚企业" if i.dengl == '1' else '',
"科技型中小企业" if i.tbe == '1' else '', # "科技型中小企业" if i.tbe == '1' else '',
"山西民营100强" if i.sxonhun == '1' else '', # "山西民营100强" if i.sxonhun == '1' else '',
"规模以上企业" if i.scale == '1' else '', # "规模以上企业" if i.scale == '1' else '',
"限额以上服务业" if i.serve == '1' else '', # "限额以上服务业" if i.serve == '1' else '',
#
"专利企业" if i.patent == '1' else '' # "专利企业" if i.patent == '1' else ''
])) # ]))
} for i in enterprise_obj_list] # } for i in enterprise_obj_list]
size = len(company1) # size = len(company1)
data = {"size": size, "df": df} # data = {"size": size, "df": df}
except Exception as e: # except Exception as e:
current_app.logger.error(e) # current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误") # return jsonify(code=RET.DBERR, msg="数据库查询错误")
# redis缓存 # # redis缓存
try: # try:
redis_store.setex(name_query, 30 * 24 * 3600, json.dumps(data)) # redis_store.setex(name_query, 30 * 24 * 3600, json.dumps(data))
except: # except:
return jsonify(code=RET.DBERR, msg="redis保存失败!") # return jsonify(code=RET.DBERR, msg="redis保存失败!")
return jsonify(code=RET.OK, msg="获取成功", data=data) # return jsonify(code=RET.OK, msg="获取成功", data=data)
# 全国企业列表(Es) # 全国企业列表(Es)
@api_map.route('/AttractEnterpriseEs', methods=['POST']) @api_map.route('/AttractEnterprise', methods=['POST'])
def attract_enterprise_es(): def attract_enterprise():
req_dict = request.get_json() req_dict = request.get_json()
inid = req_dict.get("inid") # 行业id inid = req_dict.get("inid") # 行业id
company_name = req_dict.get("company_name") # 产业产品名称筛选 company_name = req_dict.get("company_name") # 产业产品名称筛选
...@@ -612,33 +612,32 @@ def attract_enterprise_es(): ...@@ -612,33 +612,32 @@ def attract_enterprise_es():
if company_name: if company_name:
args_query["company_name"] = company_name args_query["company_name"] = company_name
if inid:
args_term['c_type'] = inid
if entype: if entype:
args_term['entype'] = entype args_term['entype'] = entype
if quoted: if quoted:
args_term['public_id'] = quoted args_term['public_id'] = quoted
if product:
args_term['product'] = product
# 公司资质
if qualificat: if qualificat:
if qualificat == 1: if qualificat == "中国500强":
args_term['isfive'] = 1 args_term['isfive'] = 1
if qualificat == 2: if qualificat == "上市企业":
args_term['quoted_company'] = 1 args_term['quoted_company'] = 1
if qualificat == 3: if qualificat == "独角兽企业":
args_term['fianacing'] = 1
if qualificat == 4:
args_term['high_new'] = 1
if qualificat == 5:
args_term['tbe'] = 1
if qualificat == 6:
args_term['dengl'] = 1
if qualificat == 7:
args_term['unicorn'] = 1 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: if province:
args_term['province'] = province args_term['province'] = province
...@@ -649,81 +648,232 @@ def attract_enterprise_es(): ...@@ -649,81 +648,232 @@ def attract_enterprise_es():
if district: if district:
args_term['district'] = district args_term['district'] = district
# # 成立时间
# if yearid:
# args_term['yearid'] = yearid
# # 融资轮次
# if roundid:
# args_term['roundid'] = roundid
# # 企业状态
# if status:
# args_term['status'] = status
# # 企业规模
# if scale_range:
# args_term['scale_range'] = scale_range
# # 公司类型
# if entypeid:
# args_term['entypeid'] = entypeid
body = create_body(page, perpage, args_query, args_term) body = create_body(page, perpage, args_query, args_term)
if not company_name: if not company_name:
del body["query"]["bool"]["must"][0] 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: try:
es = Elasticsearch([{'host': '39.100.39.50', 'port': 9200}]) es = Elasticsearch([{'host': '39.100.39.50', 'port': 9200}])
# data = es.search(index="jincheng_pictext_index_202301131004_a6181e52", body=body) data = es.search(index="jiujiang_enterperise1", body=body)
data = es.search(index="jincheng_pictext_index_202303161620_76c624b8", body=body) df = []
data_list = []
# print(data_list)
size = data["hits"]['total'] size = data["hits"]['total']
# 数据的列表添加进去 # 数据的列表添加进去
for i in data["hits"]['hits']: for i in data["hits"]['hits']:
if company_name: if company_name:
# 判断高亮,然后添加 # 判断高亮,然后添加
data_list.append({ df.append({
"id": i["_source"]["mysql_id"], "id": i["_source"]["mysql_id"],
"company": i["highlight"]["company_name"][0] if "company_name" in i["highlight"] else i["_source"][ "company_name": i["highlight"]["company_name"][0] if "company_name" in i["highlight"] else i["_source"][
"company_name"], "company_name"],
"area": i["_source"]["province"] + i["_source"]["city"] + i["_source"]["district"], "aptitude": list(filter(None, [
"createtime": i["_source"]["build_date"], "中国500强" if i["_source"]["isfive"] == '1' else '',
"legal": i["_source"]["legal"], "上市企业" if i["_source"]["quoted_company"] == "1" else '',
"capital": i["_source"]["capital"], "独角兽企业" if i["_source"]["unicorn"] == "1" else '',
"entype": i["_source"]["entype"], "瞪羚企业" if i["_source"]["dengl"] == "1" else '',
"address": i["_source"]["address"], "规上企业" if i["_source"]["scale"] == "1" else '',
"telephone": i["_source"]["telephone"], "科技型中小企业" if i["_source"]["tbe"] == "1" else '',
"high_new": '高新技术企业' if i["_source"]["high_new"] == "1" else '', "高新技术企业" if i["_source"]["high_new"] == "1" else '',
"tbe": '科技型中小企业' if i["_source"]["tbe"] == "1" else '', "专精特新企业" if i["_source"]["zjtx"] == "1" else '',
"fianacing": '融资企业' if i["_source"]["fianacing"] == "1" else '', "外资企业" if i["_source"]["foreign_investment"] == "1" else '']))})
"quoted_company": '上市企业' if i["_source"]["quoted_company"] == "1" else '',
"dengl": '瞪羚企业' if i["_source"]["dengl"] == "1" else '',
"unicorn": '独角兽企业' if i["_source"]["unicorn"] == "1" else '',
"isfive": '500强企业' if i["_source"]["isfive"] == '1' else '',
})
else: else:
data_list.append({ df.append({
"id": i["_source"]["mysql_id"], "id": i["_source"]["mysql_id"],
"company": i["_source"]["company_name"], "company_name": i["_source"]["company_name"],
"area": i["_source"]["province"] + i["_source"]["city"] + i["_source"]["district"], "aptitude": list(filter(None, [
"createtime": i["_source"]["build_date"], "中国500强" if i["_source"]["isfive"] == '1' else '',
"legal": i["_source"]["legal"], "上市企业" if i["_source"]["quoted_company"] == "1" else '',
"capital": i["_source"]["capital"], "独角兽企业" if i["_source"]["unicorn"] == "1" else '',
"entype": i["_source"]["entype"], "瞪羚企业" if i["_source"]["dengl"] == "1" else '',
"address": i["_source"]["address"], "规上企业" if i["_source"]["scale"] == "1" else '',
"telephone": i["_source"]["telephone"], "科技型中小企业" if i["_source"]["tbe"] == "1" else '',
"high_new": '高新技术企业' if i["_source"]["high_new"] == "1" else '', "高新技术企业" if i["_source"]["high_new"] == "1" else '',
"tbe": '科技型中小企业' if i["_source"]["tbe"] == "1" else '', "专精特新企业" if i["_source"]["zjtx"] == "1" else '',
"fianacing": '融资企业' if i["_source"]["fianacing"] == "1" else '', "外资企业" if i["_source"]["foreign_investment"] == "1" else '']))})
"quoted_company": '上市企业' if i["_source"]["quoted_company"] == "1" else '',
"dengl": '瞪羚企业' if i["_source"]["dengl"] == "1" else '',
"unicorn": '独角兽企业' if i["_source"]["unicorn"] == "1" else '',
"isfive": '500强企业' if i["_source"]["isfive"] == '1' else '',
})
except Exception as e: except Exception as e:
current_app.logger.error(e) current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="es数据库错误") return jsonify(code=RET.DBERR, msg="es数据库错误")
data = { data = {"size": size, "df": df}
"data": data_list, "size": size return jsonify(code=RET.OK, msg="查找成功", data=data)
}
return jsonify(code=RET.OK, msg="查找成功", data=data)
\ No newline at end of file # # 全国企业列表(Es)
# @api_map.route('/AttractEnterpriseEs', methods=['POST'])
# def attract_enterprise_es():
# 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 inid:
# args_term['c_type'] = inid
#
# if entype:
# args_term['entype'] = entype
#
# if quoted:
# args_term['public_id'] = quoted
#
# if product:
# args_term['product'] = product
# # 公司资质
# if qualificat:
# if qualificat == 1:
# args_term['isfive'] = 1
# if qualificat == 2:
# args_term['quoted_company'] = 1
# if qualificat == 3:
# args_term['fianacing'] = 1
# if qualificat == 4:
# args_term['high_new'] = 1
# if qualificat == 5:
# args_term['tbe'] = 1
# if qualificat == 6:
# args_term['dengl'] = 1
# if qualificat == 7:
# args_term['unicorn'] = 1
# # 省
# if province:
# args_term['province'] = province
# # 市
# if city:
# args_term['city'] = city
# # 区
# if district:
# args_term['district'] = district
#
# # # 成立时间
# # if yearid:
# # args_term['yearid'] = yearid
# # # 融资轮次
# # if roundid:
# # args_term['roundid'] = roundid
# # # 企业状态
# # if status:
# # args_term['status'] = status
# # # 企业规模
# # if scale_range:
# # args_term['scale_range'] = scale_range
# # # 公司类型
# # if entypeid:
# # args_term['entypeid'] = entypeid
#
# body = create_body(page, perpage, args_query, args_term)
# if not company_name:
# del body["query"]["bool"]["must"][0]
#
# try:
# es = Elasticsearch([{'host': '39.100.39.50', 'port': 9200}])
#
# # data = es.search(index="jincheng_pictext_index_202301131004_a6181e52", body=body)
# data = es.search(index="jincheng_pictext_index_202303161620_76c624b8", body=body)
# data_list = []
# # print(data_list)
# size = data["hits"]['total']
#
# # 数据的列表添加进去
# for i in data["hits"]['hits']:
# if company_name:
# # 判断高亮,然后添加
# data_list.append({
# "id": i["_source"]["mysql_id"],
# "company": i["highlight"]["company_name"][0] if "company_name" in i["highlight"] else i["_source"][
# "company_name"],
# "area": i["_source"]["province"] + i["_source"]["city"] + i["_source"]["district"],
# "createtime": i["_source"]["build_date"],
# "legal": i["_source"]["legal"],
# "capital": i["_source"]["capital"],
# "entype": i["_source"]["entype"],
# "address": i["_source"]["address"],
# "telephone": i["_source"]["telephone"],
# "high_new": '高新技术企业' if i["_source"]["high_new"] == "1" else '',
# "tbe": '科技型中小企业' if i["_source"]["tbe"] == "1" else '',
# "fianacing": '融资企业' if i["_source"]["fianacing"] == "1" else '',
# "quoted_company": '上市企业' if i["_source"]["quoted_company"] == "1" else '',
# "dengl": '瞪羚企业' if i["_source"]["dengl"] == "1" else '',
# "unicorn": '独角兽企业' if i["_source"]["unicorn"] == "1" else '',
# "isfive": '500强企业' if i["_source"]["isfive"] == '1' else '',
# })
# else:
# data_list.append({
# "id": i["_source"]["mysql_id"],
# "company": i["_source"]["company_name"],
# "area": i["_source"]["province"] + i["_source"]["city"] + i["_source"]["district"],
# "createtime": i["_source"]["build_date"],
# "legal": i["_source"]["legal"],
# "capital": i["_source"]["capital"],
# "entype": i["_source"]["entype"],
# "address": i["_source"]["address"],
# "telephone": i["_source"]["telephone"],
# "high_new": '高新技术企业' if i["_source"]["high_new"] == "1" else '',
# "tbe": '科技型中小企业' if i["_source"]["tbe"] == "1" else '',
# "fianacing": '融资企业' if i["_source"]["fianacing"] == "1" else '',
# "quoted_company": '上市企业' if i["_source"]["quoted_company"] == "1" else '',
# "dengl": '瞪羚企业' if i["_source"]["dengl"] == "1" else '',
# "unicorn": '独角兽企业' if i["_source"]["unicorn"] == "1" else '',
# "isfive": '500强企业' if i["_source"]["isfive"] == '1' else '',
# })
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="es数据库错误")
# data = {
# "data": data_list, "size": size
# }
# return jsonify(code=RET.OK, msg="查找成功", data=data)
\ No newline at end of file
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