Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mancheng
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
mancheng
Commits
82dc05cc
Commit
82dc05cc
authored
Jan 25, 2022
by
赵宇
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
parent
b5277418
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
264 additions
and
385 deletions
+264
-385
apps/models.py
+11
-11
apps/utils/json/city.json
+0
-0
apps/view_360company/view.py
+253
-374
No files found.
apps/models.py
View file @
82dc05cc
...
@@ -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')) # 用户-搜索
#
#
#
#
#
#
...
...
apps/utils/json/city.json
View file @
82dc05cc
This source diff could not be displayed because it is too large. You can
view the blob
instead.
apps/view_360company/view.py
View file @
82dc05cc
...
@@ -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
(
"/
s
earch"
,
methods
=
[
"POST"
])
@api_portraits.route
(
"/
EsS
earch"
,
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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment