Commit 82dc05cc by 赵宇

fix

parent b5277418
...@@ -50,8 +50,8 @@ class Enterprise(db.Model): ...@@ -50,8 +50,8 @@ class Enterprise(db.Model):
company_code = db.Column(db.String(100), doc='组织机构代码', comment='组织机构代码') # 组织机构代码 company_code = db.Column(db.String(100), doc='组织机构代码', comment='组织机构代码') # 组织机构代码
bao_num = db.Column(db.Integer, doc='参保人数', comment='参保人数') # 参保人数 bao_num = db.Column(db.Integer, doc='参保人数', comment='参保人数') # 参保人数
entype = db.Column(db.String(100), doc='企业类型', comment='企业类型') # 企业类型 entype = db.Column(db.String(100), doc='企业类型', comment='企业类型') # 企业类型
entypeid = db.Column(db.Integer, index=True, doc='公司类型id(个人独资企业-1)(股份有限公司-2)(有限责任公司-3)(合伙企业-4)(集体所有制-5)(全民所有制企业-6)(外商企业-7)', comment='公司类型id(个人独资企业-1)(股份有限公司-2)(有限责任公司-3)(合伙企业-4)(集体所有制-5)(全民所有制企业-6)(外商企业-7)') # 公司类型id(个人独资企业-1)(股份有限公司-2)(有限责任公司-3)(合伙企业-4)(集体所有制-5) entypeid = db.Column(db.Integer, index=True, doc='公司类型id(个人独资企业-1)(股份有限公司-2)(有限责任公司-3)(合伙企业-4)(集体所有制-5)(全民所有制企业-6)(外商企业-7)', comment='公司类型id(个人独资企业-1)(股份有限公司-2)(有限责任公司-3)(合伙企业-4)(集体所有制-5)(全民所有制企业-6)(外商企业-7)') # 公司类型id(个人独资企业-1)(股份有限公司-2)(有限责任公司-3)(合伙企业-4)(集体所有制-5)(全民所有制企业-6)(外商企业-7)
# (全民所有制企业-6)(外商企业-7) scale_range = db.Column(db.Integer, index=True, doc='企业规模id,1:20人以下,2:20-99人,3:100-499人,4:500-999人,5: 1000-4999人,6:5000-9999人,7:10000人', comment='企业规模id,1:20人以下,2:20-99人,3:100-499人,4:500-999人,5: 1000-4999人,6:5000-9999人,7:10000人')
company_industry = db.Column(db.String(100), doc='所属行业', comment='所属行业') # 所属行业 company_industry = db.Column(db.String(100), doc='所属行业', comment='所属行业') # 所属行业
web_site = db.Column(db.String(255), doc='企业网址', comment='企业网址') # 企业网址 web_site = db.Column(db.String(255), doc='企业网址', comment='企业网址') # 企业网址
...@@ -89,7 +89,6 @@ class Enterprise(db.Model): ...@@ -89,7 +89,6 @@ class Enterprise(db.Model):
c_type = db.Column(db.Integer, index=True, doc='行业类id', comment='行业类id') # 行业类id c_type = db.Column(db.Integer, index=True, doc='行业类id', comment='行业类id') # 行业类id
f_name = db.Column(db.String(255), doc='父行业类名', comment='父行业类名') # 父行业类名 f_name = db.Column(db.String(255), doc='父行业类名', comment='父行业类名') # 父行业类名
f_type = db.Column(db.Integer, index=True, doc='父行业类id', comment='父行业类id') # 父行业类id f_type = db.Column(db.Integer, index=True, doc='父行业类id', comment='父行业类id') # 父行业类id
# __table_args__ = (Index('view_index(zone,status)', 'resource_zone', 'resource_status'), {'comment': '压测资源表'}) # 添加索引和表注释
__table_args__ = ({'comment': '全国企业表'}) # 添加表注释 __table_args__ = ({'comment': '全国企业表'}) # 添加表注释
...@@ -967,7 +966,15 @@ class Property(db.Model): ...@@ -967,7 +966,15 @@ class Property(db.Model):
statu = db.Column(db.Integer, doc='状态:1启动,2禁用', comment='状态:1启动,2禁用') # 状态 1启动,2禁用 statu = db.Column(db.Integer, doc='状态:1启动,2禁用', comment='状态:1启动,2禁用') # 状态 1启动,2禁用
# 查找历史表
class SearchList(BaseModel, db.Model):
__tablename__ = "search_list"
__table_args__ = ({'comment': '360企业画像--查找历史数据表'}) # 添加表注释
id = db.Column(db.Integer, primary_key=True, autoincrement=True, doc='主键id', comment='主键id')
history = db.Column(db.String(128), doc='用户搜索历史', comment='用户搜索历史') # 用户搜索历史
user_id = db.Column(db.Integer, db.ForeignKey("user.id"), doc='用户id', comment='用户id')
section = db.relationship('User', backref=db.backref('searchlist')) # 用户-搜索
...@@ -1100,14 +1107,7 @@ class Property(db.Model): ...@@ -1100,14 +1107,7 @@ class Property(db.Model):
# #
# #
# # 查找历史表
# class SearchList(BaseModel, db.Model):
# __tablename__ = "search_list"
#
# id = db.Column(db.Integer, primary_key=True, autoincrement=True)
# history = db.Column(db.String(128)) # 用户搜索历史
# user_id = db.Column(db.Integer, db.ForeignKey("user.id"))
# section = db.relationship('User', backref=db.backref('searchlist')) # 用户-搜索
# #
# #
# #
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -9,203 +9,8 @@ from apps.utils.response_code import RET ...@@ -9,203 +9,8 @@ from apps.utils.response_code import RET
from apps import redis_store from apps import redis_store
def body_qualificat(s, j): # 360企业画像--筛选条件下拉框
body = { @api_portraits.route('/DropDownBox', methods=['GET'])
"query": {
"bool": {
"must": {"match": {"{}": "{}".format(s, j)}}
}
}
}
return body
def body_type(s):
body = {
"query": {
"bool": {
"must": {"match": {"entypeid": "{}".format(s)}}
}
}
}
return body
def create_body(page, page_size, args_query, args_term):
body = {
"query": {
"bool": {
"filter": {
"range": {
"build_date": {
}
}
},
"must": [
{"multi_match": {
"query": "{}".format(args_query["query"]),
"type": "best_fields",
"fields": [
"product^1.0",
"company_name^1.0",
"industry^1.0"
],
"tie_breaker": 0.3
}
},
]
}
},
"from": page,
"size": page_size,
"sort": [],
"aggs": {},
"_source": [
# 'all_info',
'industry', 'build_date', 'register_money_nums', 'product',
'company_name', "mysql_id"
],
"highlight": {
"fields": {
"product": {"type": "plain"},
"company_name": {"type": "plain"},
"industry": {"type": "plain"}
}
}
}
for k, v in args_term.items():
body["query"]["bool"]["must"].append({"term": {"{}".format(k): "{}".format(v)}})
return body
# 360企业画像两个静态表(如果前端页面进行删除,此接口也一并删除)
@api_portraits.route("/table", methods=["GET"])
def table():
try:
name_query = "static_360"
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)
company = Enterprise.query.filter_by()
grdz = company.filter_by(entypeid=1).count()
gfyx = company.filter_by(entypeid=2).count()
hhqy = company.filter_by(entypeid=3).count()
jtsy = company.filter_by(entypeid=4).count()
gyqy = company.filter_by(entypeid=5).count()
yxzr = company.filter_by(entypeid=6).count()
wstz = company.filter_by(entypeid=7).count()
new_dic = [grdz, yxzr, gfyx, jtsy, hhqy, gyqy, wstz]
gxjs = company.filter_by(high_new="1").count()
kjzx = company.filter_by(tbe="1").count()
ssqy = company.filter_by(quoted_company="1").count()
djs = company.filter_by(unicorn="1").count()
dlqy = company.filter_by(dengl="1").count()
quality_list = [gxjs, kjzx, ssqy, djs, dlqy]
data = {
"type": new_dic,
"quality": quality_list
}
# redis缓存
redis_store.set(name_query, json.dumps(data))
redis_store.expire(name_query, 30 * 24 * 3600)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.OK, msg="数据库错误")
return jsonify(code=RET.OK, msg="查询成功", data=data)
# 360企业画像两个静态表(参数数据)(如果前端页面进行删除,此接口也一并删除)
@api_portraits.route("/doubleTable", methods=["POST"])
def double_table():
# 获取参数
req_dict = request.get_json()
area = req_dict.get("area") # 省市区参数
province = ""
city = ""
district = ""
if area[0]:
province = area[0]
if area[1]:
city = area[1]
if area[2]:
district = area[2]
if not all([area]):
return jsonify(code=RET.NODATA, msg="参数缺失")
try:
name_query = "static_360" + province + city + district
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)
company = Enterprise.query.filter_by()
if province:
company = company.filter_by(province=province)
if city:
company = company.filter_by(city=city)
if district:
company = company.filter_by(district=district)
grdz = company.filter_by(entypeid=1).count()
gfyx = company.filter_by(entypeid=2).count()
hhqy = company.filter_by(entypeid=3).count()
jtsy = company.filter_by(entypeid=4).count()
gyqy = company.filter_by(entypeid=5).count()
yxzr = company.filter_by(entypeid=6).count()
wstz = company.filter_by(entypeid=7).count()
new_dic = [grdz, yxzr, gfyx, jtsy, hhqy, gyqy, wstz]
gxjs = company.filter_by(high_new="1").count()
kjzx = company.filter_by(tbe="1").count()
ssqy = company.filter_by(quoted_company="1").count()
djs = company.filter_by(unicorn="1").count()
dlqy = company.filter_by(dengl="1").count()
quality_list = [gxjs, kjzx, ssqy, djs, dlqy]
data = {
"type": new_dic,
"quality": quality_list
}
# redis缓存
redis_store.set(name_query, json.dumps(data))
redis_store.expire(name_query, 29 * 24 * 3600)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.OK, msg="数据库错误")
return jsonify(code=RET.OK, msg="查询成功", data=data)
def openDists():
upload_path = os.path.dirname(os.path.dirname(__file__)) + "/utils/json/city.json"
with open(upload_path, encoding="utf-8") as f:
data = json.load(f)
return data
# 地域层级数据分级获取
@api_portraits.route('/getRegion', methods=['GET'])
def getRegion():
try:
data = openDists()
if len(data) > 0:
return jsonify(code=200, msg="查找成功", data=data)
else:
return jsonify(code=201, msg="暂时没有数据")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="查找错误")
@api_portraits.route('/field', methods=['GET'])
# @login_required # @login_required
def field(): def field():
''' '''
...@@ -216,66 +21,100 @@ def field(): ...@@ -216,66 +21,100 @@ def field():
try: try:
property = Property.query.filter_by(statu=1) property = Property.query.filter_by(statu=1)
# 所属行业 # 所属行业
com_qualificat = property.filter_by(sid=2, statu=1).all() industry_list = property.filter_by(sid=1, statu=1).all()
# 企业资质
zizhi_list = property.filter_by(sid=2, statu=1).all()
# 注册资本
capital_list = property.filter_by(sid=3, statu=1).all()
# 上市状态 # 上市状态
com_quoted = property.filter_by(sid=3, statu=1).all() quoted_list = property.filter_by(sid=4, statu=1).all()
# 成立年限 # 成立年限
com_builddatetime = property.filter_by(sid=5, statu=1).all() build_list = property.filter_by(sid=5, statu=1).all()
# 融资轮次 # 融资轮次
com_financ = property.filter_by(sid=4, statu=1).all() financ_list = property.filter_by(sid=6, statu=1).all()
# 企业状态 # 企业状态
status_list = property.filter_by(sid=7, statu=1).all()
# 企业规模 # 企业规模
scale_list = property.filter_by(sid=8, statu=1).all()
# 企业类型 # 企业类型
com_typy = property.filter_by(sid=1, statu=1).all() type_list = property.filter_by(sid=9, statu=1).all()
# options: [{ value: "选项1", label: "无数据" },{ value: "选项2", label: "3333" }],
data = {"entype": [{"label": i.name, "value": i.nid} for i in com_typy], data = {"com_industry": [{"label": i.name, "value": i.nid} for i in industry_list],
"qualificat": [{"label": i.name, "value": i.nid} for i in com_qualificat], "com_zizhi": [{"label": i.name, "value": i.nid} for i in zizhi_list],
"quoted": [{"label": i.name, "value": i.nid} for i in com_quoted], "com_capital": [{"label": i.name, "value": i.nid} for i in capital_list],
"financ": [{"label": i.name, "value": i.nid} for i in com_financ], "com_quoted": [{"label": i.name, "value": i.nid} for i in quoted_list],
"buildate": [{"label": "1-3年", "value": 1}, {"label": "3-5年", "value": 2}, "com_build": [{"label": i.name, "value": i.nid} for i in build_list],
{"label": "5-8年", "value": 3}, {"label": "8-10年", "value": 4}, "com_financ": [{"label": i.name, "value": i.nid} for i in financ_list],
{"label": "10-15年", "value": 5}, {"label": "15年以上", "value": 6}], "com_status": [{"label": i.name, "value": i.nid} for i in status_list],
"capital": [{"label": "100万以内", "value": 1}, {"label": "100万-500万", "value": 2}, "com_scale": [{"label": i.name, "value": i.nid} for i in scale_list],
{"label": "500万-1000万", "value": 3}, {"label": "1000万-5000万", "value": 4}, "com_type": [{"label": i.name, "value": i.nid} for i in type_list],
{"label": "1000万-1亿", "value": 5}, {"label": "1亿以上", "value": 6}]
} }
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="数据库查询错误")
return jsonify(code=RET.OK, msg="获取成功", options=data) return jsonify(code=RET.OK, msg="获取成功", data=data)
# 地域层级数据分级获取
@api_portraits.route('/GetRegion', methods=['GET'])
def get_region():
try:
data = open_dists()
if len(data) > 0:
return jsonify(code=200, msg="查找成功", data=data)
else:
return jsonify(code=201, msg="暂时没有数据")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="查找错误")
def open_dists():
upload_path = os.path.dirname(os.path.dirname(__file__)) + "/utils/json/city.json"
with open(upload_path, encoding="utf-8") as f:
data = json.load(f)
return data
# 搜索接口 # 搜索接口
@api_portraits.route("/search", methods=["POST"]) @api_portraits.route("/EsSearch", methods=["POST"])
@login_required # @login_required
def search(): def search():
# 获取用户信息 """
token = request.headers["token"] 获取用户信息
user = verify_token(token) """
user_id = user.id # token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id
# user_id = 5 # user_id = 5
# 参数获取 # 参数获取
req_dict = request.get_json() req_dict = request.get_json()
company = req_dict.get("company") # 搜索企业名称 company = req_dict.get("company_name") # 搜索企业名称
entypeid = req_dict.get("entypeid") # 企业类型 f_name = req_dict.get("industry") # 所属行业
qualificat = req_dict.get("qualificat") # 资质 qualificat = req_dict.get("qualificat") # 企业资质
capital_id = req_dict.get("capital_id") # 资本 capital_id = req_dict.get("capital_id") # 注册资本
public_id = req_dict.get("public_id") # 上市状态 public_id = req_dict.get("public_id") # 上市状态
area = req_dict.get("area") # 地区条件获取 # area = req_dict.get("area") # 所在地区
if area == []: province = req_dict.get("province")
area = ["", "", ""] city = req_dict.get("city")
province = area[0] district = req_dict.get("district")
city = area[1]
district = area[2]
yearid = req_dict.get("yearid") # 成立时间 yearid = req_dict.get("yearid") # 成立时间
financ_id = req_dict.get("financ_id") # 融资轮次 roundid = req_dict.get("financ_id") # 融资轮次
status = req_dict.get("status") # 企业状态
scale_range = req_dict.get("scale_range") # 企业规模
entypeid = req_dict.get("entypeid") # 企业类型
page = req_dict.get("page") # 页码 page = req_dict.get("page") # 页码
per_page = int(req_dict.get("per_page")) # 每页大小 per_page = req_dict.get("per_page") # 每页大小
# if area == []:
# area = ["", "", ""]
# province = area[0]
# city = area[1]
# district = area[2]
# 页数 # 页数
if not page: if not page:
page = 1 page = 1
...@@ -285,33 +124,48 @@ def search(): ...@@ -285,33 +124,48 @@ def search():
args_query = dict() # 查询字段 args_query = dict() # 查询字段
args_term = dict() # 条件字典 args_term = dict() # 条件字典
args_query["query"] = "公司" args_query["company_name"] = "公司"
# 搜索框 # 搜索框
if company: if company:
args_query["query"] = company args_query["company_name"] = company
# 添加搜索历史 # # 添加搜索历史
try: # try:
user = User.query.get(user_id) # user = User.query.get(user_id)
b = [] # b = []
if user.searchlist: # if user.searchlist:
for j in user.searchlist: # for j in user.searchlist:
b.append(j.history) # b.append(j.history)
if company in b: # if company in b:
user.searchlist.remove(user.searchlist[b.index(company)]) # user.searchlist.remove(user.searchlist[b.index(company)])
if len(b) > 5: # if len(b) > 5:
user.searchlist.remove(user.searchlist[0]) # user.searchlist.remove(user.searchlist[0])
search = SearchList(history=company) # search = SearchList(history=company)
db.session.add(search) # db.session.add(search)
user.searchlist.append(search) # user.searchlist.append(search)
db.session.commit() # db.session.commit()
except Exception as e: # except Exception as e:
db.session.rollback() # db.session.rollback()
current_app.logger.error(e) # current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误") # return jsonify(code=RET.DBERR, msg="数据库错误")
# 公司类型 if f_name:
if entypeid: args_term['f_name'] = f_name
args_term['entypeid'] = entypeid # 公司资质
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 capital_id: if capital_id:
args_term['capital_id'] = capital_id args_term['capital_id'] = capital_id
...@@ -327,157 +181,181 @@ def search(): ...@@ -327,157 +181,181 @@ def search():
# 区 # 区
if district: if district:
args_term['district'] = district args_term['district'] = district
# 公司资质
if qualificat:
if qualificat == 1:
args_term['high_new'] = 1
if qualificat == 2:
args_term['tbe'] = 1
if qualificat == 3:
args_term['quoted_company'] = 1
if qualificat == 4:
args_term['isfive'] = 1
if qualificat == 5:
args_term['unicorn'] = 1
if qualificat == 6:
args_term['dengl'] = 1
# 成立时间 # 成立时间
if yearid: if yearid:
args_term['yearid'] = yearid args_term['yearid'] = yearid
# 融资轮次 # 融资轮次
if financ_id: if roundid:
args_term['financ_id'] = financ_id 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, per_page, args_query, args_term) body = create_body(page, per_page, args_query, args_term)
if not company: if not company:
del body["query"]["bool"]["must"][0] del body["query"]["bool"]["must"][0]
try: try:
es = Elasticsearch([{'host': 'localhost', 'port': 9200}]) es = Elasticsearch([{'host': '39.100.39.50', 'port': 9200}])
# data = es.search(view_index="ty_360", body=body) data = es.search(index="jincheng_pictext_index_202201241709_4586c144", body=body)
data = es.search(index="ty_enterprise", body=body)
data_list = [] data_list = []
print(data_list)
size = data["hits"]['total']
# 数据的列表添加进去 # 数据的列表添加进去
for i in data["hits"]['hits']: for i in data["hits"]['hits']:
if company: if company:
# 判断高亮,然后添加 # 判断高亮,然后添加
data_list.append({ data_list.append({
"id": i["_source"]["mysql_id"],
"company": i["highlight"]["company_name"][0] if "company_name" in i["highlight"] else i["_source"][ "company": i["highlight"]["company_name"][0] if "company_name" in i["highlight"] else i["_source"][
"company_name"], "company_name"],
"product": i["highlight"]["product"][0] if "product" in i["highlight"] else i["_source"]["product"], "area": i["_source"]["city"] + i["_source"]["district"],
"industry": i["highlight"]["industry"][0] if "industry" in i["highlight"] else i["_source"][
"industry"],
"money": "{}万元".format(i["_source"]["register_money_nums"]),
"createtime": i["_source"]["build_date"], "createtime": i["_source"]["build_date"],
"id": i["_source"]["mysql_id"], "legal": i["_source"]["legal"],
"choice": 2 "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: else:
data_list.append({ data_list.append({
"id": i["_source"]["mysql_id"],
"company": i["_source"]["company_name"], "company": i["_source"]["company_name"],
"product": i["_source"]["product"], "area": i["_source"]["city"] + i["_source"]["district"],
"industry": i["_source"]["industry"],
"money": "{}万元".format(i["_source"]["register_money_nums"]),
"createtime": i["_source"]["build_date"], "createtime": i["_source"]["build_date"],
"id": i["_source"]["mysql_id"], "legal": i["_source"]["legal"],
"choice": 2, "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: 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 = {
"data": data_list "data": data_list, "size": size
} }
return jsonify(code=RET.OK, msg="查找成功", data=data) return jsonify(code=RET.OK, msg="查找成功", data=data)
# 搜索历史接口 def body_qualificat(s, j):
@api_portraits.route("/searchList", methods=["GET"]) body = {
@login_required "query": {
def search_list(): "bool": {
token = request.headers["token"] "must": {"match": {"{}": "{}".format(s, j)}}
user = verify_token(token) }
user_id = user.id }
# user_id = 119 }
return body
try:
user = User.query.get(user_id)
history = [(i.history, i.id) for i in user.searchlist]
# print(history)
# print(sorted(history, key=lambda x: x[1], reverse=True))
# data = {
# "search": [i.history for i in user.searchlist]
# }
data = {"search": [i[0] for i in sorted(history, key=lambda x: x[1], reverse=True)]}
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
# 全国企业信息详情
@api_portraits.route('/detail', methods=['POST'])
@login_required
def enter_detail():
'''
企业信息详情
:return:
'''
# 获取用户id
token = request.headers["token"]
user = verify_token(token)
user_id = user.id # 用户id
req_dict = request.get_json()
_id = req_dict.get("id") # 企业id
# 校验参数完整性 def create_body(page, page_size, args_query, args_term):
if not all([_id]): body = {
return jsonify(code=RET.PARAMERR, msg="参数不完整") "query": {
"bool": {
"must": [
{"match": {
"company_name": "{}".format(args_query["company_name"]),
}
},
]
}
},
"from": page,
"size": page_size,
"sort": [],
"aggs": {},
"_source": [
"mysql_id", 'company_name', 'city', 'district', 'build_date', 'legal', 'capital', 'entype', 'address',
'telephone',
"high_new", "tbe", "fianacing", "quoted_company", "foreign_investment", "patent", "dengl", "unicorn",
"isfive"
],
"highlight": {
"fields": {
"company_name": {},
"entype": {},
},
"pre_tags": "<font color='red'>",
"post_tags": "</font>",
"fragment_size": 10
}
}
try: for k, v in args_term.items():
company = Enterprise.query.get(_id) body["query"]["bool"]["must"].append({"match": {"{}".format(k): "{}".format(v)}})
user = User.query.get(user_id) # 获取关注列表 print(body)
if user: return body
enters_ids = [coms.id for coms in user.enterprise]
else:
enters_ids = []
if company:
data = {"id": company.id,
"company_name": company.company_name,
"telephone": company.telephone if company.telephone else "-",
"web_site": company.web_site if company.web_site else "-",
"email": company.email if company.email else "-",
"address": company.address if company.address else "-",
"jwd": {"lng": company.lng if company.lng else "-",
"lat": company.lat if company.lat else "-"},
"company_info": company.company_info if company.company_info else "-",
"isfive": "500强企业" if company.isfive == "1" else "", # 500强
"quoted_company": "上市企业" if company.quoted_company == "1" else "", # 上市企业
"high_new": "高新技术企业" if company.high_new == "1" else "",
"tbe": "科技型中小企业" if company.tbe == "1" else "", # 科技型中小企业
"unicorn": "独角兽企业" if company.unicorn == "1" else "", # 独角兽企业
"dengl": "瞪羚企业" if company.dengl == "1" else "", # 瞪羚企业
"legal": company.legal if company.legal else "-", # 原始
"status": company.status if company.status else "-", # def create_body(page, page_size, args_query, args_term):
"build_date": str(company.build_date)[:10] if company.build_date else "-", # body = {
"capital": company.capital if company.capital else "-", # "query": {
"social_code": company.social_code if company.social_code else "-", # "bool": {
"taking": company.takingn if company.takingn else "-", # "filter": {
"bao": company.bao_num if company.bao_num else "-", # "range": {
"entype": company.entype if company.entype else "-", # "build_date": {
"industry": company.company_industry if company.company_industry else "-", # }
"scope": company.business_scope if company.business_scope else "-", # }
"collect": "1" if company.id in enters_ids else "2", # 关注状态码1关注,2未关注 # },
"choice": "2" # 1太原企业,2全国企业 # "must": [
} # {"multi_match": {
else: # "query": "{}".format(args_query["query"]),
return jsonify(code=RET.NODATA, msg="查无数据") # "type": "best_fields",
except Exception as e: # "fields": [
current_app.logger.error(e) # "product^1.0",
return jsonify(code=RET.DBERR, msg="数据库查询错误") # "company_name^1.0",
return jsonify(code=RET.OK, msg="获取成功", data=data) # "industry^1.0"
# ],
# "tie_breaker": 0.3
# }
# },
# ]
# }
# },
# "from": page,
# "size": page_size,
# "sort": [],
# "aggs": {},
# "_source": [
# # 'all_info',
# 'industry', 'build_date', 'register_money_nums', 'product',
# 'company_name', "mysql_id"
# ],
# "highlight": {
# "fields": {
# "product": {"type": "plain"},
# "company_name": {"type": "plain"},
# "industry": {"type": "plain"}
# }
# }
# }
#
# for k, v in args_term.items():
# body["query"]["bool"]["must"].append({"term": {"{}".format(k): "{}".format(v)}})
#
# return body
\ 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