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
85eb2121
Commit
85eb2121
authored
Dec 05, 2022
by
dong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix20221205
parent
6401bb38
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
1307 additions
and
98 deletions
+1307
-98
apps/models.py
+283
-4
apps/view_atlas/view.py
+199
-13
apps/view_choose/view.py
+333
-1
apps/view_radar/view.py
+54
-4
apps/view_user/__init__.py
+0
-0
apps/view_user/view.py
+438
-76
No files found.
apps/models.py
View file @
85eb2121
...
...
@@ -947,11 +947,11 @@ class User(BaseModel, db.Model):
# dddingid = db.Column(db.String(128)) # 钉钉dingid
# 用户关注行业(图谱)
#
industry = db.relationship("Industry", secondary="user_industry", backref=db.backref('bindustry'))
industry
=
db
.
relationship
(
"Industry"
,
secondary
=
"user_industry"
,
backref
=
db
.
backref
(
'bindustry'
))
# 用户关注太原企业
#
company = db.relationship("Company", secondary="user_company", backref=db.backref("bcompany"))
company
=
db
.
relationship
(
"Company"
,
secondary
=
"user_company"
,
backref
=
db
.
backref
(
"bcompany"
))
# 用户关注全国企业
#
enterprise = db.relationship("Enterprise", secondary="user_enterprise", backref=db.backref("benterprise"))
enterprise
=
db
.
relationship
(
"Enterprise"
,
secondary
=
"user_enterprise"
,
backref
=
db
.
backref
(
"benterprise"
))
@property
def
password
(
self
):
...
...
@@ -983,6 +983,33 @@ class User(BaseModel, db.Model):
return
token
# 后台管理用户
class
Bstage
(
BaseModel
,
db
.
Model
):
__tablename__
=
"bstage"
# 基本信息
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
)
# 用户编号
name
=
db
.
Column
(
db
.
String
(
32
),
unique
=
True
)
# 用户名
password_hash
=
db
.
Column
(
db
.
String
(
128
))
# 加密的密码
# 角色(职级配置)
role
=
db
.
Column
(
db
.
Integer
)
# 1超级管理员,2 系统运维员
@property
def
password
(
self
):
# 设置为只写的方式
# return self.password_hash
raise
AttributeError
(
'这个属性只能设置,不能读取'
)
@password.setter
def
password
(
self
,
value
):
self
.
password_hash
=
generate_password_hash
(
value
)
def
check_password
(
self
,
password
):
'''检验密码的正确性,传入参数为用户登录时填写的密码'''
return
check_password_hash
(
self
.
password_hash
,
password
)
# 角色(职位,职级)
class
Role
(
BaseModel
,
db
.
Model
):
__tablename__
=
"role"
...
...
@@ -1293,18 +1320,270 @@ class MoneyArrive(db.Model):
upload_time
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'上传日期'
)
upload_unit
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'上传部门'
)
upload_people
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'上传人'
)
district_name
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'区县名称'
)
arrive_money
=
db
.
Column
(
db
.
Float
,
comment
=
'固定资产投资项目资金到位额('
)
"""以下为202212月改版后需求"""
# 招商图谱-产业链收藏
class
IndustryCollect
(
db
.
Model
):
__tablename_
=
"industry_collect"
__table_args__
=
({
'comment'
:
'招商图谱-产业链收藏'
})
# 添加表注释
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
,
comment
=
'主键id'
)
industry_id
=
db
.
Column
(
db
.
Integer
,
comment
=
'产业id'
)
user_id
=
db
.
Column
(
db
.
Integer
,
comment
=
'用户id'
)
collect_time
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'收藏时间'
)
industry_name
=
db
.
Column
(
db
.
String
(
30
),
comment
=
'收藏的产业名称'
)
# 用户关注行业,多-多
class
UserIndustry
(
BaseModel
,
db
.
Model
):
__tablename__
=
"user_industry"
user_id
=
db
.
Column
(
db
.
Integer
,
db
.
ForeignKey
(
"user.id"
),
primary_key
=
True
)
industry_id
=
db
.
Column
(
db
.
Integer
,
db
.
ForeignKey
(
"industry.id"
),
primary_key
=
True
)
# #用户关注公司,多-多
class
UserCompany
(
BaseModel
,
db
.
Model
):
__tablename__
=
"user_company"
user_id
=
db
.
Column
(
db
.
Integer
,
db
.
ForeignKey
(
"user.id"
),
primary_key
=
True
)
company_id
=
db
.
Column
(
db
.
Integer
,
db
.
ForeignKey
(
"company.id"
),
primary_key
=
True
)
# #用户关注公司,多-多
class
UserEnterprise
(
BaseModel
,
db
.
Model
):
__tablename__
=
"user_enterprise"
user_id
=
db
.
Column
(
db
.
Integer
,
db
.
ForeignKey
(
"user.id"
),
primary_key
=
True
)
enterprise_id
=
db
.
Column
(
db
.
Integer
,
db
.
ForeignKey
(
"enterprise.id"
),
primary_key
=
True
)
# 载体资源库-数据填报-楼宇详情表
class
CarrierBuild
(
db
.
Model
):
__tablename_
=
"carrier_build"
__table_args__
=
({
'comment'
:
'载体资源库-楼宇详情表'
})
# 添加表注释
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
,
comment
=
'主键id'
)
district_name
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'区域名称'
)
build_name
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'楼宇名称'
)
industry_name
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'产业名称'
)
industry_type
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'产业类型'
)
total_area
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'总面积(㎡)'
)
# total_area_id = db.Column(db.Integer,
# comment='总面积范围id(1:0-500㎡;2:500-1000㎡;3:1000-2000㎡;4:2000-5000㎡;5:5000-10000㎡)')
cover_land_area
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'占地面积(㎡)'
)
# cover_land_area_id = db.Column(db.Integer,
# comment='占地面积范围id(1:0-500㎡;2:500-1000㎡;3:1000-2000㎡;4:2000-5000㎡;5:5000-10000㎡)')
build_type
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'楼宇类型'
)
# build_type_id = db.Column(db.Integer, comment='楼宇类型id(1:商铺;2:写字楼)')
rent_rate
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'出租率'
)
# rent_rate_id = db.Column(db.Integer, comment='出租率id(1:0-50%;2:50-80%;3:80-90%;4:90-100%;)')
layer_num
=
db
.
Column
(
db
.
Integer
,
comment
=
'总层数(层,填写整数)'
)
detail_address
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'详细地址'
)
lng
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'经度'
)
lat
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'维度'
)
construction_time
=
db
.
Column
(
db
.
String
(
20
),
default
=
''
,
comment
=
'建设时间(例如:2022年)'
)
upload_time
=
db
.
Column
(
db
.
DateTime
,
default
=
''
,
comment
=
'数据上传时间'
)
# 权限相关
upload_people
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'数据上传人'
)
upload_people_id
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'数据上传人用户id'
)
upload_people_role_id
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'数据上传人权限id'
)
upload_people_belong
=
db
.
Column
(
db
.
String
(
100
),
comment
=
'数据上传人所属区县、机构、部门'
)
fix_time
=
db
.
Column
(
db
.
DateTime
,
default
=
''
,
comment
=
'数据修改时间'
)
fix_people
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'数据修改人'
)
build_status
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'楼宇状态'
)
# rent_money = db.Column(db.String(20), comment='租金(万元)')
rent_money
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'租金范围(元/平米/天)'
)
wuye_money
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'物业费(元/平米/天)'
)
audit_status
=
db
.
Column
(
db
.
Integer
,
comment
=
'审核状态 0为未审核;1为审核通过;2为提交;3为驳回;4未通过'
)
audit_message
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'审核附言'
)
build_info
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'楼宇介绍'
)
inside_picture_url
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'内部照片url'
)
outer_picture_url
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'外部照片url'
)
price_url
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'平面图url'
)
car_space_num
=
db
.
Column
(
db
.
Integer
,
comment
=
'车位数(个,填写整数)'
)
lift_num
=
db
.
Column
(
db
.
Integer
,
comment
=
'电梯数(部,填写整数)'
)
rentout_status
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'出租状态'
)
linkman
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'联系人'
)
link_mobile
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'联系方式'
)
build_area
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'建筑面积(㎡)'
)
empty_area
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'闲置面积(㎡)'
)
build_structure
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'建筑结构'
)
owner
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'权属人'
)
attract_status
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'拟招引状态'
)
attract_industry_status
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'招引业态'
)
cooperation_model
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'合作模式'
)
attract_advantage
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'招商优势'
)
policy
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'优惠政策'
)
# settled_company = db.Column(db.String(255), comment='入住企业名称(多个,列表形式,顿号分隔)')
# surround_facility = db.Column(db.String(255), comment='周边配套(多个,列表形式,顿号分隔)')
# education_name = db.Column(db.String(255), comment='教育机构名称(多个,列表形式,顿号分隔)')
# medical_name = db.Column(db.String(255), comment='医疗设施名称(多个,列表形式,顿号分隔)')
# park_name = db.Column(db.String(255), comment='大型公园名称(多个,列表形式,顿号分隔)')
# shangfu_center = db.Column(db.String(255), comment='商服中心(多个,列表形式,顿号分隔)')
# administration_center = db.Column(db.String(255), comment='行政中心(多个,列表形式,顿号分隔)')
# transportation = db.Column(db.String(255), comment='交通设施(多个,列表形式,顿号分隔)')
# 载体资源库-数据填报-土地详情表
class
CarrierLand
(
db
.
Model
):
__tablename_
=
"carrier_land"
__table_args__
=
({
'comment'
:
'载体资源库-土地详情表'
})
# 添加表注释
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
,
comment
=
'主键id'
)
district_name
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'区域名称'
)
land_name
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'土地名称'
)
industry_name
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'产业名称'
)
land_nature
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'土地性质)'
)
land_nature_id
=
db
.
Column
(
db
.
Integer
,
comment
=
'土地性质id(1:农用地;2:商业用地;3:建设用地;4:旅游用地;5:居民用地。)'
)
detail_address
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'详细地址'
)
lng
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'经度'
)
lat
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'维度'
)
total_area
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'总面积(㎡)'
)
total_area_id
=
db
.
Column
(
db
.
Integer
,
comment
=
'总面积范围id(1:0-500㎡;2:500-1000㎡;3:1000-2000㎡;4:2000-5000㎡;5:5000-10000㎡)'
)
industry_type
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'产业类型'
)
jing_area
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'净面积(㎡)'
)
transfer_year
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'出让年限(年)'
)
transfer_year_id
=
db
.
Column
(
db
.
Integer
,
comment
=
'出让年限范围id(1:0-5年;2:5-10年;3:10-15年;4:15-20年;5:20年以上)'
)
land_code
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'土地编码'
)
upload_time
=
db
.
Column
(
db
.
DateTime
,
default
=
''
,
comment
=
'数据上传时间'
)
upload_people
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'数据上传人名字'
)
upload_people_id
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'数据上传人用户id'
)
upload_people_role_id
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'数据上传人权限id'
)
upload_people_belong
=
db
.
Column
(
db
.
String
(
100
),
comment
=
'数据上传人所属区县、机构、部门'
)
fix_time
=
db
.
Column
(
db
.
DateTime
,
default
=
''
,
comment
=
'数据修改时间'
)
fix_people
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'数据修改人名字'
)
land_status
=
db
.
Column
(
db
.
Integer
,
comment
=
'土地状态 0为闲置;1为占用'
)
audit_status
=
db
.
Column
(
db
.
Integer
,
comment
=
'审核状态 0为未审核;1为审核通过;2为提交;3为驳回;4未通过'
)
audit_message
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'审核附言'
)
linkman
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'联系人'
)
link_mobile
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'联系方式'
)
land_info
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'土地介绍'
)
inside_picture_url
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'内部照片url'
)
outer_picture_url
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'外部照片url'
)
plot_ratio
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'容积率'
)
sales_price
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'销售均价(毛坯)(万元)'
)
max_sales_price
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'最高销售单价(万元)'
)
max_car_space_price
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'车位最高销售单价'
)
plan_target
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'规划指标'
)
plan_condition
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'规划条件'
)
price_url
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'规划图url'
)
surround_facility
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'周边配套(多个,列表形式,顿号分隔)'
)
education_name
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'教育机构名称(多个,列表形式,顿号分隔)'
)
medical_name
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'医疗设施名称(多个,列表形式,顿号分隔)'
)
park_name
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'大型公园名称(多个,列表形式,顿号分隔)'
)
shangfu_center
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'商服中心(多个,列表形式,顿号分隔)'
)
administration_center
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'行政中心(多个,列表形式,顿号分隔)'
)
policy
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'相关政策(多个,列表形式,顿号分隔)'
)
# 载体资源库-数据填报-厂房详情表
class
CarrierFactory
(
db
.
Model
):
__tablename_
=
"carrier_factory"
__table_args__
=
({
'comment'
:
'载体资源库-厂房详情表'
})
# 添加表注释
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
,
comment
=
'主键id'
)
district_name
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'区域名称'
)
factory_name
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'厂房名称'
)
# is_standard = db.Column(db.Integer, comment='是否为标准化厂房(是1否0)')
# rent_status = db.Column(db.Integer, comment='是否对外租赁(是1否0)')
is_standard
=
db
.
Column
(
db
.
String
(
10
),
comment
=
'是否为标准化厂房(是或否)'
)
rent_status
=
db
.
Column
(
db
.
String
(
10
),
comment
=
'是否对外租赁(是或否)'
)
# rent_money = db.Column(db.String(20), comment='租金(万元)')
rent_money
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'租金范围(元/平米/天)'
)
detail_address
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'详细地址'
)
factory_area
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'建筑面积(㎡)'
)
cover_land_area
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'占地面积(㎡)'
)
cover_land_area_id
=
db
.
Column
(
db
.
Integer
,
comment
=
'占地面积范围id(1:0-500㎡;2:500-1000㎡;3:1000-2000㎡;4:2000-5000㎡;5:5000-10000㎡)'
)
industry_name
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'产业名称'
)
property_type
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'产权类型'
)
construction_time
=
db
.
Column
(
db
.
String
(
20
),
default
=
''
,
comment
=
'建设时间(例如:2022年)'
)
upload_time
=
db
.
Column
(
db
.
DateTime
,
default
=
''
,
comment
=
'数据上传时间'
)
upload_people
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'数据上传人名字'
)
upload_people_id
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'数据上传人用户id'
)
upload_people_role_id
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'数据上传人权限id'
)
upload_people_belong
=
db
.
Column
(
db
.
String
(
100
),
comment
=
'数据上传人所属区县、机构、部门'
)
fix_time
=
db
.
Column
(
db
.
DateTime
,
default
=
''
,
comment
=
'数据修改时间'
)
fix_people
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'数据修改人名字'
)
factory_status
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'厂房状态'
)
audit_status
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'审核状态 0为未审核;1为审核通过;2为提交;3为驳回;4未通过;'
)
audit_message
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'审核附言'
)
lng
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'经度'
)
lat
=
db
.
Column
(
db
.
String
(
50
),
comment
=
'维度'
)
factory_info
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'厂房介绍'
)
inside_picture_url
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'内部照片url'
)
outer_picture_url
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'外部照片url'
)
price_url
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'平面图url'
)
# owner = db.Column(db.String(20), comment='权属人')
empty_area
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'闲置面积(㎡)'
)
factory_structure
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'建筑结构'
)
width
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'跨度(米)'
)
high
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'层高(米)'
)
bearing
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'承重(500kg/m2)'
)
linkman
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'联系人'
)
link_mobile
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'联系方式'
)
# is_electric = db.Column(db.Integer, comment='是否已通电(是1否0,填写整数)')
# is_water = db.Column(db.Integer, comment='是否已通水(是1否0,填写整数)')
# is_warm = db.Column(db.Integer, comment='是否已通暖(是1否0,填写整数)')
# is_gas = db.Column(db.Integer, comment='是否已通燃气(是1否0,填写整数)')
# is_network = db.Column(db.Integer, comment='是否已通网络(是1否0,填写整数)')
# is_lift = db.Column(db.Integer, comment='是否有电梯(是1否0)')
is_electric
=
db
.
Column
(
db
.
String
(
10
),
comment
=
'是否已通电(是或否)'
)
is_water
=
db
.
Column
(
db
.
String
(
10
),
comment
=
'是否已通水(是或否)'
)
is_warm
=
db
.
Column
(
db
.
String
(
10
),
comment
=
'是否已通暖(是或否)'
)
is_gas
=
db
.
Column
(
db
.
String
(
10
),
comment
=
'是否已通燃气(是或否)'
)
is_network
=
db
.
Column
(
db
.
String
(
10
),
comment
=
'是否已通网络(是或否)'
)
is_lift
=
db
.
Column
(
db
.
String
(
10
),
comment
=
'是否有电梯(是或否)'
)
lift_num
=
db
.
Column
(
db
.
Integer
,
comment
=
'电梯数量(部,填写整数)'
)
is_car_space
=
db
.
Column
(
db
.
Integer
,
comment
=
'是否有车位(是1否0)'
)
# car_space_num = db.Column(db.Integer, comment='车位数(个,填写整数)')
layer_num
=
db
.
Column
(
db
.
Integer
,
comment
=
'总层数(层,填写整数)'
)
attract_status
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'拟招引状态'
)
cooperation_model
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'合作模式'
)
attract_advantage
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'招商优势'
)
policy
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'相关政策'
)
# settled_company = db.Column(db.String(255), comment='入住企业名称(多个,列表形式,顿号分隔)')
# surround_facility = db.Column(db.String(255), comment='周边配套(多个,列表形式,顿号分隔)')
# education_name = db.Column(db.String(255), comment='教育机构名称(多个,列表形式,顿号分隔)')
# medical_name = db.Column(db.String(255), comment='医疗设施名称(多个,列表形式,顿号分隔)')
# park_name = db.Column(db.String(255), comment='大型公园名称(多个,列表形式,顿号分隔)')
# shangfu_center = db.Column(db.String(255), comment='商服中心(多个,列表形式,顿号分隔)')
# administration_center = db.Column(db.String(255), comment='行政中心(多个,列表形式,顿号分隔)')
# transportation = db.Column(db.String(255), comment='交通设施(多个,列表形式,顿号分隔)')
# 记录操作日志得数据表
class
OperationLog
(
db
.
Model
):
__tablename_
=
"operation_log"
__table_args__
=
({
'comment'
:
'载体资源库-记录操作日志的数据表'
})
# 添加表注释
id
=
db
.
Column
(
db
.
Integer
,
primary_key
=
True
,
autoincrement
=
True
,
comment
=
'主键id'
)
operation_time
=
db
.
Column
(
db
.
DateTime
,
default
=
''
,
comment
=
'操作时间'
)
operation_people
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'操作人名字'
)
operation_people_id
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'操作人id'
)
operation_people_belong
=
db
.
Column
(
db
.
String
(
100
),
comment
=
'操作人所属区县、机构、部门'
)
operation_mobile
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'操作人电话'
)
operation_message
=
db
.
Column
(
db
.
String
(
255
),
comment
=
'操作信息'
)
section
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'操作人职务'
)
remark
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'备注:是或否(是否是每月二十五号前进行提报导入)'
)
action
=
db
.
Column
(
db
.
String
(
20
),
comment
=
'记录"导入"的动作用于备注(每月十五号前是否进行提报导入)的是和否'
)
read_type
=
db
.
Column
(
db
.
Integer
,
comment
=
'消息类型(用于消息提醒) 0未读,1已读,3已读状态一天后转为历史消息'
)
time
=
db
.
Column
(
db
.
DateTime
,
default
=
''
,
comment
=
'转为已读状态的时间(用于消息提醒)'
)
apps/view_atlas/view.py
View file @
85eb2121
from
flask
import
current_app
,
request
,
jsonify
from
sqlalchemy
import
or_
from
apps.view_atlas
import
api_atlas
from
apps.util
import
login_required
from
apps.util
import
login_required
,
verify_token
from
apps.utils.response_code
import
RET
from
apps.models
import
*
from
apps.utils.neo4j_conn
import
conn_neo4j
,
neo4j_dict
...
...
@@ -74,7 +76,8 @@ def find_up_thr(name_query, relation):
@api_atlas.route
(
'/industry/cluster'
,
methods
=
[
'GET'
])
def
get_cluster
():
try
:
cluster_obj
=
Industry
.
query
.
filter_by
(
fid
=
0
)
.
all
()
# cluster_obj = Industry.query.filter_by(fid=0).all()
cluster_obj
=
Industry
.
query
.
all
()
data
=
{
"cluster"
:
[
...
...
@@ -189,7 +192,6 @@ def industry_enterprise():
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库查询错误"
)
# 点击产业创新资源联动显示 innovation resource
@api_atlas.route
(
'/innovate/resource'
,
methods
=
[
'POST'
])
def
industry_resource
():
...
...
@@ -414,6 +416,12 @@ def industry_policy():
page
=
req_dict
.
get
(
"page"
)
# 分页页码
perpage
=
req_dict
.
get
(
"perpage"
)
# 分页大小
policy_type
=
req_dict
.
get
(
"policy_type"
)
# 政策类型,全国、国务院
policy_year
=
req_dict
.
get
(
"policy_year"
)
# 政策年份
policy_name
=
req_dict
.
get
(
"policy_name"
)
# 政策名称
# 校验参数完整性
if
not
all
([
page
,
perpage
]):
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
"参数不完整"
)
...
...
@@ -421,56 +429,108 @@ def industry_policy():
indu_policy
=
''
size
=
''
name
=
Industry
.
query
.
filter_by
(
nid
=
inid
)
.
first
()
.
oname
# 获取导航对应的真名
# name = '煤层气'
print
(
name
)
if
industry_level
==
1
:
if
policy_level
==
1
:
# 国家级
indu_policy
=
InduPolicy
.
query
.
filter
(
InduPolicy
.
navigator
.
like
(
"
%
{}
%
"
.
format
(
name
)),
InduPolicy
.
level
==
"国家级"
)
indu_policy
=
InduPolicy
.
query
.
filter
(
InduPolicy
.
navigator
.
like
(
"
%
{}
%
"
.
format
(
name
)),
InduPolicy
.
level
==
"国家级"
,
InduPolicy
.
org
==
policy_type
if
policy_type
==
'国务院'
else
text
(
''
),
InduPolicy
.
year
==
policy_year
if
policy_year
else
text
(
''
),
InduPolicy
.
name
.
like
(
'
%
{}
%
'
.
format
(
policy_name
))
)
size
=
indu_policy
.
count
()
# 分页总数
# indu_policy = indu_policy.
indu_policy
=
indu_policy
.
order_by
(
InduPolicy
.
pubdate
.
desc
())
.
paginate
(
page
,
perpage
)
.
items
if
policy_level
==
2
:
# 省级
indu_policy
=
InduPolicy
.
query
.
filter
(
InduPolicy
.
navigator
.
like
(
"
%
{}
%
"
.
format
(
name
)),
InduPolicy
.
level
==
"省级"
)
indu_policy
=
InduPolicy
.
query
.
filter
(
InduPolicy
.
navigator
.
like
(
"
%
{}
%
"
.
format
(
name
)),
InduPolicy
.
level
==
"省级"
,
InduPolicy
.
org
==
policy_type
if
policy_type
==
'国务院'
else
text
(
''
),
InduPolicy
.
year
==
policy_year
if
policy_year
else
text
(
''
),
InduPolicy
.
name
.
like
(
'
%
{}
%
'
.
format
(
policy_name
)))
size
=
indu_policy
.
count
()
# 分页总数
# indu_policy = indu_policy.
indu_policy
=
indu_policy
.
order_by
(
InduPolicy
.
pubdate
.
desc
())
.
paginate
(
page
,
perpage
)
.
items
if
policy_level
==
3
:
# 市级
indu_policy
=
InduPolicy
.
query
.
filter
(
InduPolicy
.
navigator
.
like
(
"
%
{}
%
"
.
format
(
name
)),
InduPolicy
.
level
==
"市级"
)
indu_policy
=
InduPolicy
.
query
.
filter
(
InduPolicy
.
navigator
.
like
(
"
%
{}
%
"
.
format
(
name
)),
InduPolicy
.
level
==
"市级"
,
InduPolicy
.
org
==
policy_type
if
policy_type
==
'国务院'
else
text
(
''
),
InduPolicy
.
year
==
policy_year
if
policy_year
else
text
(
''
),
InduPolicy
.
name
.
like
(
'
%
{}
%
'
.
format
(
policy_name
)))
size
=
indu_policy
.
count
()
# 分页总数
# indu_policy = indu_policy.
indu_policy
=
indu_policy
.
order_by
(
InduPolicy
.
pubdate
.
desc
())
.
paginate
(
page
,
perpage
)
.
items
if
policy_level
==
4
:
# 区县
indu_policy
=
InduPolicy
.
query
.
filter
(
InduPolicy
.
navigator
.
like
(
"
%
{}
%
"
.
format
(
name
)),
InduPolicy
.
level
==
"区县"
)
indu_policy
=
InduPolicy
.
query
.
filter
(
InduPolicy
.
navigator
.
like
(
"
%
{}
%
"
.
format
(
name
)),
InduPolicy
.
level
==
"区县"
,
InduPolicy
.
org
==
policy_type
if
policy_type
==
'国务院'
else
text
(
''
),
InduPolicy
.
year
==
policy_year
if
policy_year
else
text
(
''
),
InduPolicy
.
name
.
like
(
'
%
{}
%
'
.
format
(
policy_name
)))
size
=
indu_policy
.
count
()
# 分页总数
# indu_policy = indu_policy.
indu_policy
=
indu_policy
.
order_by
(
InduPolicy
.
pubdate
.
desc
())
.
paginate
(
page
,
perpage
)
.
items
if
policy_level
==
5
:
# 开发区
indu_policy
=
InduPolicy
.
query
.
filter
(
InduPolicy
.
navigator
.
like
(
"
%
{}
%
"
.
format
(
name
)),
InduPolicy
.
level
==
"开发区"
)
indu_policy
=
InduPolicy
.
query
.
filter
(
InduPolicy
.
navigator
.
like
(
"
%
{}
%
"
.
format
(
name
)),
InduPolicy
.
level
==
"开发区"
,
InduPolicy
.
org
==
policy_type
if
policy_type
==
'国务院'
else
text
(
''
),
InduPolicy
.
year
==
policy_year
if
policy_year
else
text
(
''
),
InduPolicy
.
name
.
like
(
'
%
{}
%
'
.
format
(
policy_name
)))
size
=
indu_policy
.
count
()
# 分页总数
# indu_policy = indu_policy.
indu_policy
=
indu_policy
.
order_by
(
InduPolicy
.
pubdate
.
desc
())
.
paginate
(
page
,
perpage
)
.
items
if
industry_level
==
2
:
if
policy_level
==
1
:
# 国家级
indu_policy
=
InduPolicy
.
query
.
filter
(
InduPolicy
.
navigat
.
like
(
"
%
{}
%
"
.
format
(
name
)),
InduPolicy
.
level
==
"国家级"
)
indu_policy
=
InduPolicy
.
query
.
filter
(
InduPolicy
.
navigat
.
like
(
"
%
{}
%
"
.
format
(
name
)),
InduPolicy
.
level
==
"国家级"
,
InduPolicy
.
org
==
policy_type
if
policy_type
==
'国务院'
else
text
(
''
),
InduPolicy
.
year
==
policy_year
if
policy_year
else
text
(
''
),
InduPolicy
.
name
.
like
(
'
%
{}
%
'
.
format
(
policy_name
)))
size
=
indu_policy
.
count
()
# 分页总数
# indu_policy = indu_policy.
indu_policy
=
indu_policy
.
order_by
(
InduPolicy
.
pubdate
.
desc
())
.
paginate
(
page
,
perpage
)
.
items
if
policy_level
==
2
:
# 省级
indu_policy
=
InduPolicy
.
query
.
filter
(
InduPolicy
.
navigat
.
like
(
"
%
{}
%
"
.
format
(
name
)),
InduPolicy
.
level
==
"省级"
)
indu_policy
=
InduPolicy
.
query
.
filter
(
InduPolicy
.
navigat
.
like
(
"
%
{}
%
"
.
format
(
name
)),
InduPolicy
.
level
==
"省级"
,
InduPolicy
.
org
==
policy_type
if
policy_type
==
'国务院'
else
text
(
''
),
InduPolicy
.
year
==
policy_year
if
policy_year
else
text
(
''
),
InduPolicy
.
name
.
like
(
'
%
{}
%
'
.
format
(
policy_name
)))
size
=
indu_policy
.
count
()
# 分页总数
# indu_policy = indu_policy.
indu_policy
=
indu_policy
.
order_by
(
InduPolicy
.
pubdate
.
desc
())
.
paginate
(
page
,
perpage
)
.
items
if
policy_level
==
3
:
# 市级
indu_policy
=
InduPolicy
.
query
.
filter
(
InduPolicy
.
navigat
.
like
(
"
%
{}
%
"
.
format
(
name
)),
InduPolicy
.
level
==
"市级"
)
indu_policy
=
InduPolicy
.
query
.
filter
(
InduPolicy
.
navigat
.
like
(
"
%
{}
%
"
.
format
(
name
)),
InduPolicy
.
level
==
"市级"
,
InduPolicy
.
org
==
policy_type
if
policy_type
==
'国务院'
else
text
(
''
),
InduPolicy
.
year
==
policy_year
if
policy_year
else
text
(
''
),
InduPolicy
.
name
.
like
(
'
%
{}
%
'
.
format
(
policy_name
)))
size
=
indu_policy
.
count
()
# 分页总数
# indu_policy = indu_policy.
indu_policy
=
indu_policy
.
order_by
(
InduPolicy
.
pubdate
.
desc
())
.
paginate
(
page
,
perpage
)
.
items
if
policy_level
==
4
:
# 区县
indu_policy
=
InduPolicy
.
query
.
filter
(
InduPolicy
.
navigat
.
like
(
"
%
{}
%
"
.
format
(
name
)),
InduPolicy
.
level
==
"区县"
)
indu_policy
=
InduPolicy
.
query
.
filter
(
InduPolicy
.
navigat
.
like
(
"
%
{}
%
"
.
format
(
name
)),
InduPolicy
.
level
==
"区县"
,
InduPolicy
.
org
==
policy_type
if
policy_type
==
'国务院'
else
text
(
''
),
InduPolicy
.
year
==
policy_year
if
policy_year
else
text
(
''
),
InduPolicy
.
name
.
like
(
'
%
{}
%
'
.
format
(
policy_name
)))
size
=
indu_policy
.
count
()
# 分页总数
# indu_policy = indu_policy.
indu_policy
=
indu_policy
.
order_by
(
InduPolicy
.
pubdate
.
desc
())
.
paginate
(
page
,
perpage
)
.
items
if
policy_level
==
5
:
# 开发区
indu_policy
=
InduPolicy
.
query
.
filter
(
InduPolicy
.
navigat
.
like
(
"
%
{}
%
"
.
format
(
name
)),
InduPolicy
.
level
==
"开发区"
)
indu_policy
=
InduPolicy
.
query
.
filter
(
InduPolicy
.
navigat
.
like
(
"
%
{}
%
"
.
format
(
name
)),
InduPolicy
.
level
==
"开发区"
,
InduPolicy
.
org
==
policy_type
if
policy_type
==
'国务院'
else
text
(
''
),
InduPolicy
.
year
==
policy_year
if
policy_year
else
text
(
''
),
InduPolicy
.
name
.
like
(
'
%
{}
%
'
.
format
(
policy_name
)))
size
=
indu_policy
.
count
()
# 分页总数
# indu_policy = indu_policy.
indu_policy
=
indu_policy
.
order_by
(
InduPolicy
.
pubdate
.
desc
())
.
paginate
(
page
,
perpage
)
.
items
...
...
@@ -678,3 +738,128 @@ def get_zaiti_detail_data():
return
jsonify
(
code
=
RET
.
OK
,
msg
=
'厂房详情查询成功!'
,
data
=
data
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
"""以下为202212月改版后需求"""
# 企业搜索
@api_atlas.route
(
'/SearchEnterprises'
,
methods
=
[
'POST'
])
def
search_enterprise
():
req_dic
=
request
.
get_json
()
entype
=
req_dic
[
'entype'
]
aptitude
=
req_dic
[
'aptitude'
]
# 资质
company_name
=
req_dic
[
'company_name'
]
status
=
req_dic
[
'status'
]
page
=
req_dic
[
'page'
]
per_page
=
req_dic
[
'per_page'
]
try
:
company_obj
=
Company
.
query
.
filter
(
or_
(
Company
.
entype
==
entype
,
Company
.
company_name
.
like
(
'
%
{}
%
'
.
format
(
company_name
)),
Company
.
status
==
status
,
Company
.
high_new
==
'1'
if
aptitude
==
'是否高新技术企业'
else
text
(
''
),
Company
.
tbe
==
'1'
if
aptitude
==
'是否科技型中小企业'
else
text
(
''
),
Company
.
quoted_company
==
'1'
if
aptitude
==
'是否上市企业'
else
text
(
''
),
Company
.
sxmon
==
'1'
if
aptitude
==
'是否山西民营100强'
else
text
(
''
),
Company
.
zjtg
==
'1'
if
aptitude
==
'是否为山西专精特新企业'
else
text
(
''
),
Company
.
unicorn
==
'1'
if
aptitude
==
'独角兽企业'
else
text
(
''
),
Company
.
dengl
==
'1'
if
aptitude
==
'瞪羚'
else
text
(
''
),
Company
.
isfive
==
'1'
if
aptitude
==
'是否中国500强'
else
text
(
''
),
Company
.
scale
==
'1'
if
aptitude
==
'规模以上企业'
else
text
(
''
),
Company
.
serve
==
'1'
if
aptitude
==
'限额以上服务业'
else
text
(
''
),
))
company_obj_list
=
company_obj
.
paginate
(
page
,
per_page
)
.
items
data
=
[{
"id"
:
company_obj
.
id
,
"company_name"
:
company_obj
.
company_name
,
"district"
:
company_obj
.
district
,
"entype"
:
company_obj
.
entype
,
"aptitude"
:
[
"是否高新技术企业"
if
company_obj
.
high_new
==
'1'
else
"是否科技型中小企业"
if
company_obj
.
tbe
==
'1'
else
"是否上市企业"
if
company_obj
.
quoted_company
==
'1'
else
"是否山西民营100强"
if
company_obj
.
sxmon
==
'1'
else
"是否为山西专精特新企业"
if
company_obj
.
zjtg
==
'1'
else
"独角兽企业"
if
company_obj
.
unicorn
==
'1'
else
"瞪羚"
if
company_obj
.
dengl
==
'1'
else
"是否中国500强"
if
company_obj
.
isfive
==
'1'
else
"规模以上企业"
if
company_obj
.
scale
==
'1'
else
"限额以上服务业"
if
company_obj
.
serve
==
'1'
else
''
]
}
for
company_obj
in
company_obj_list
]
return
jsonify
(
code
=
RET
.
OK
,
data
=
data
,
msg
=
'查询成功。'
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
'查询出错!'
)
# # 产业链收藏
# @api_atlas.route('/IndustryCollect', methods=['POST'])
# def industry_collect():
# req_dic = request.get_json()
# industry_name = req_dic['industry_name']
# token = request.headers['token']
# try:
# user_obj = verify_token(token)
# user_id = user_obj.id
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.SESSIONERR, msg="用户信息校验失败,请重新登陆后尝试!")
#
# if not industry_name:
# return jsonify(code=RET.NODATA, msg="产业名称不能为空!")
#
# try:
# # 获取产业的fid
# industry_obj = Industry.query.filter_by(oname=industry_name).first()
# industry_id = industry_obj.id
#
# collect_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# collect_obj = IndustryCollect(
# industry_id=industry_id,
# user_id=user_id,
# collect_time=collect_time,
# industry_name=industry_name
# )
# db.session.add(collect_obj)
# db.session.commit()
# return jsonify(code=RET.OK, msg="收藏成功。")
# except Exception as e:
# db.session.rollback()
# current_app.logger.error(e)
# return jsonify(code=RET.SESSIONERR, msg="收藏失败!")
# 行业业收藏与取消
@api_atlas.route
(
'/industry/collect'
,
methods
=
[
'POST'
])
@login_required
def
indu_collect
():
'''企业收藏与状态取消'''
token
=
request
.
headers
[
"token"
]
user
=
verify_token
(
token
)
user_id
=
user
.
id
# 用户id
req_dict
=
request
.
get_json
()
_id
=
req_dict
.
get
(
"id"
)
# 二级行业id
collect
=
req_dict
.
get
(
"collect"
)
# 关注状态(1是,2否)
# 校验参数完整性
if
not
all
([
_id
,
collect
]):
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
"参数不完整"
)
try
:
if
collect
==
"2"
:
# 未关注,我要关注
user
=
User
.
query
.
get
(
user_id
)
indu
=
Industry
.
query
.
filter_by
(
nid
=
_id
)
.
first
()
user
.
industry
.
append
(
indu
)
db
.
session
.
commit
()
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"收藏成功"
,
collect
=
"1"
)
elif
collect
==
"1"
:
# 已关注,我要取关
user
=
User
.
query
.
get
(
user_id
)
indu
=
Industry
.
query
.
filter_by
(
nid
=
_id
)
.
first
()
user
.
industry
.
remove
(
indu
)
db
.
session
.
commit
()
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"取消收藏"
,
collect
=
"2"
)
else
:
return
jsonify
(
code
=
RET
.
DATAERR
,
msg
=
"参数异常"
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库查询错误"
)
\ No newline at end of file
apps/view_choose/view.py
View file @
85eb2121
from
sqlalchemy
import
func
,
desc
,
or_
from
flask
import
current_app
,
request
,
jsonify
from
apps.models
import
Induzone
,
Industry
,
CompanyIndustryPoint
from
apps.models
import
Induzone
,
Industry
,
CompanyIndustryPoint
,
User
from
apps.utils.response_code
import
RET
from
apps.view_choose
import
api_address
# 获取某个行政区的全部园区信息
from
apps.util
import
verify_token
@api_address.route
(
"/DefaultAddress"
,
methods
=
[
"POST"
])
def
default_address
():
req_dict
=
request
.
get_json
()
...
...
@@ -137,3 +140,332 @@ def downlist(): # 一级二级行业分类
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库错误"
)
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"查找成功"
,
data
=
data
)
"""以下为202212月改版后需求"""
# 搜索行政区公共方法
def
global_region
(
key_words
,
district_name
,
page
,
per_page
):
try
:
if
key_words
:
carrier_obj
=
Induzone
.
query
.
filter
(
and_
(
Induzone
.
region
.
like
(
'
%
{}
%
'
.
format
(
district_name
))
if
district_name
else
text
(
''
),
# Induzone.navigat.like('%{}%'.format(industry_name)) if industry_name else text(''),
Induzone
.
id
.
in_
([
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
])
))
.
filter
(
or_
(
Induzone
.
region
.
like
(
"
%
"
+
key_words
+
"
%
"
),
Induzone
.
cluster
.
like
(
"
%
"
+
key_words
+
"
%
"
),
Induzone
.
navigat
.
like
(
"
%
"
+
key_words
+
"
%
"
),
Induzone
.
cate
.
like
(
"
%
"
+
key_words
+
"
%
"
)
))
else
:
carrier_obj
=
Induzone
.
query
.
filter
(
and_
(
Induzone
.
region
.
like
(
'
%
{}
%
'
.
format
(
district_name
))
if
district_name
else
text
(
''
),
# Induzone.navigat.like('%{}%'.format(industry_name)) if industry_name else text(''),
Induzone
.
id
.
in_
([
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
])
))
# region_obj_list = carrier_obj.order_by(Induzone.upload_time.desc()).paginate(page, per_page).items
region_obj_list
=
carrier_obj
.
paginate
(
page
,
per_page
)
.
items
# region_obj_list = carrier_obj.all()
carrier_size
=
len
(
region_obj_list
)
if
region_obj_list
:
data_list
=
[{
"id"
:
region_obj
.
id
,
"carrier_type"
:
'行政区'
,
"region_name"
:
region_obj
.
name
,
"cover_region_area"
:
region_obj
.
area
,
"gdp"
:
region_obj
.
gdp
,
"detail_address"
:
region_obj
.
address
,
# 审核信息
"industry_name"
:
region_obj
.
navigat
,
"district_name"
:
region_obj
.
region
,
"lng"
:
region_obj
.
lng
,
"lat"
:
region_obj
.
lat
}
for
region_obj
in
region_obj_list
]
data
=
{
"code"
:
RET
.
OK
,
"data"
:
{
"data_list"
:
data_list
,
"size"
:
carrier_size
,
"msg"
:
"行政区 数据获取成功!"
}}
return
data
else
:
data
=
{
"code"
:
RET
.
DATAERR
,
"msg"
:
"没有符合搜索条件的 行政区 数据!"
}
return
data
except
Exception
as
e
:
db
.
session
.
rollback
()
current_app
.
logger
.
error
(
e
)
data
=
{
"code"
:
RET
.
DBERR
,
"msg"
:
"行政区 查询数据库错误!"
}
return
data
# 厂房公共方法
def
global_land
(
key_words
,
district_name
,
land_name
,
land_nature
,
industry_name
,
page
,
per_page
):
try
:
if
key_words
:
carrier_obj
=
CarrierLand
.
query
.
filter
(
and_
(
CarrierLand
.
land_name
.
like
(
'
%
{}
%
'
.
format
(
land_name
))
if
land_name
else
text
(
''
),
CarrierLand
.
district_name
.
like
(
'
%
{}
%
'
.
format
(
district_name
))
if
district_name
else
text
(
''
),
CarrierLand
.
land_nature
.
like
(
'
%
{}
%
'
.
format
(
land_nature
))
if
land_nature
else
text
(
''
),
CarrierLand
.
industry_name
.
like
(
'
%
{}
%
'
.
format
(
industry_name
))
if
industry_name
else
text
(
''
),
CarrierLand
.
audit_status
==
1
))
.
filter
(
or_
(
CarrierLand
.
industry_name
.
like
(
"
%
"
+
key_words
+
"
%
"
),
CarrierLand
.
district_name
.
like
(
"
%
"
+
key_words
+
"
%
"
),
CarrierLand
.
land_name
.
like
(
"
%
"
+
key_words
+
"
%
"
)
))
else
:
carrier_obj
=
CarrierLand
.
query
.
filter
(
and_
(
CarrierLand
.
land_name
.
like
(
'
%
{}
%
'
.
format
(
land_name
))
if
land_name
else
text
(
''
),
CarrierLand
.
district_name
==
district_name
if
district_name
else
text
(
''
),
CarrierLand
.
land_nature
==
land_nature
if
land_nature
else
text
(
''
),
CarrierLand
.
industry_name
.
like
(
'
%
{}
%
'
.
format
(
industry_name
))
if
industry_name
else
text
(
''
),
CarrierLand
.
audit_status
==
1
))
land_obj_list
=
carrier_obj
.
order_by
(
CarrierLand
.
upload_time
.
desc
())
.
paginate
(
page
,
per_page
)
.
items
carrier_size
=
len
(
land_obj_list
)
if
land_obj_list
:
data_list
=
[{
"id"
:
land_obj
.
id
,
"carrier_type"
:
"土地"
,
"land_name"
:
land_obj
.
land_name
,
"land_nature"
:
land_obj
.
land_nature
,
"total_area"
:
land_obj
.
total_area
,
"jing_area"
:
land_obj
.
jing_area
,
# 审核信息
"district_name"
:
land_obj
.
district_name
,
"industry_name"
:
land_obj
.
industry_name
,
"lng"
:
land_obj
.
lng
,
"lat"
:
land_obj
.
lat
}
for
land_obj
in
land_obj_list
]
data
=
{
"code"
:
RET
.
OK
,
"data"
:
{
"data_list"
:
data_list
,
"size"
:
carrier_size
,
"msg"
:
"土地 数据获取成功!"
}}
return
data
else
:
data
=
{
"code"
:
RET
.
DATAERR
,
"msg"
:
"没有符合搜索条件的 土地 数据!"
}
return
data
except
Exception
as
e
:
db
.
session
.
rollback
()
current_app
.
logger
.
error
(
e
)
data
=
{
"code"
:
RET
.
DBERR
,
"msg"
:
"土地 查询数据库错误!"
}
return
data
# 楼宇公共方法
def
global_factory
(
key_words
,
district_name
,
factory_name
,
industry_name
,
page
,
per_page
):
try
:
if
key_words
:
carrier_obj
=
CarrierFactory
.
query
.
filter
(
and_
(
CarrierFactory
.
factory_name
.
like
(
'
%
{}
%
'
.
format
(
factory_name
))
if
factory_name
else
text
(
''
),
CarrierFactory
.
district_name
.
like
(
'
%
{}
%
'
.
format
(
district_name
))
if
district_name
else
text
(
''
),
CarrierFactory
.
attract_status
.
like
(
'
%
{}
%
'
.
format
(
industry_name
))
if
industry_name
else
text
(
''
),
CarrierFactory
.
audit_status
==
1
))
.
filter
(
or_
(
CarrierFactory
.
attract_status
.
like
(
"
%
"
+
key_words
+
"
%
"
),
CarrierFactory
.
district_name
.
like
(
"
%
"
+
key_words
+
"
%
"
),
CarrierFactory
.
factory_name
.
like
(
"
%
"
+
key_words
+
"
%
"
)
))
carrier_size
=
carrier_obj
.
count
()
else
:
carrier_obj
=
CarrierFactory
.
query
.
filter
(
and_
(
CarrierFactory
.
factory_name
.
like
(
'
%
{}
%
'
.
format
(
factory_name
))
if
factory_name
else
text
(
''
),
CarrierFactory
.
district_name
==
district_name
if
district_name
else
text
(
''
),
CarrierFactory
.
attract_status
.
like
(
'
%
{}
%
'
.
format
(
industry_name
))
if
industry_name
else
text
(
''
),
CarrierFactory
.
audit_status
==
1
))
carrier_size
=
carrier_obj
.
count
()
factory_obj_list
=
carrier_obj
.
order_by
(
CarrierFactory
.
upload_time
.
desc
())
.
paginate
(
page
,
per_page
)
.
items
if
factory_obj_list
:
data_list
=
[{
"id"
:
factory_obj
.
id
,
"carrier_type"
:
"标准厂房"
,
"factory_name"
:
factory_obj
.
factory_name
,
"factory_area"
:
factory_obj
.
factory_area
,
"district_name"
:
factory_obj
.
district_name
,
# 审核信息
"detail_address"
:
factory_obj
.
detail_address
,
"industry_name"
:
factory_obj
.
industry_name
,
"is_standard"
:
factory_obj
.
is_standard
,
"attract_status"
:
factory_obj
.
attract_status
,
"lng"
:
factory_obj
.
lng
,
"lat"
:
factory_obj
.
lat
}
for
factory_obj
in
factory_obj_list
]
data
=
{
"code"
:
RET
.
OK
,
"data"
:
{
"data_list"
:
data_list
,
"size"
:
carrier_size
,
"msg"
:
"厂房 数据获取成功!"
}}
return
data
else
:
data
=
{
"code"
:
RET
.
DATAERR
,
"msg"
:
"没有符合搜索条件的 厂房 数据!"
}
return
data
except
Exception
as
e
:
db
.
session
.
rollback
()
current_app
.
logger
.
error
(
e
)
data
=
{
"code"
:
RET
.
DBERR
,
"msg"
:
"厂房 查询数据库错误!"
}
return
data
# 土地公共方法
def
global_build
(
key_words
,
district_name
,
build_name
,
industry_name
,
build_type
,
page
,
per_page
):
try
:
if
key_words
:
carrier_obj
=
CarrierBuild
.
query
.
filter
(
and_
(
CarrierBuild
.
build_name
.
like
(
'
%
{}
%
'
.
format
(
build_name
))
if
build_name
else
text
(
''
),
CarrierBuild
.
district_name
.
like
(
'
%
{}
%
'
.
format
(
district_name
))
if
district_name
else
text
(
''
),
CarrierBuild
.
build_type
.
like
(
'
%
{}
%
'
.
format
(
build_type
))
if
build_type
else
text
(
''
),
CarrierBuild
.
attract_status
.
like
(
'
%
{}
%
'
.
format
(
industry_name
))
if
industry_name
else
text
(
''
),
CarrierBuild
.
audit_status
==
1
))
.
filter
(
or_
(
CarrierBuild
.
attract_status
.
like
(
"
%
"
+
key_words
+
"
%
"
),
CarrierBuild
.
district_name
.
like
(
"
%
"
+
key_words
+
"
%
"
),
CarrierBuild
.
build_name
.
like
(
"
%
"
+
key_words
+
"
%
"
),
CarrierBuild
.
build_type
.
like
(
"
%
"
+
key_words
+
"
%
"
)
))
else
:
carrier_obj
=
CarrierBuild
.
query
.
filter
(
and_
(
CarrierBuild
.
build_name
.
like
(
'
%
{}
%
'
.
format
(
build_name
))
if
build_name
else
text
(
''
),
CarrierBuild
.
district_name
.
like
(
'
%
{}
%
'
.
format
(
district_name
))
if
district_name
else
text
(
''
),
CarrierBuild
.
build_type
.
like
(
'
%
{}
%
'
.
format
(
build_type
))
if
build_type
else
text
(
''
),
CarrierBuild
.
attract_status
.
like
(
'
%
{}
%
'
.
format
(
industry_name
))
if
industry_name
else
text
(
''
),
CarrierBuild
.
audit_status
==
1
))
build_obj_list
=
carrier_obj
.
order_by
(
CarrierBuild
.
upload_time
.
desc
())
.
paginate
(
page
,
per_page
)
.
items
carrier_size
=
len
(
build_obj_list
)
if
build_obj_list
:
data_list
=
[{
"id"
:
build_obj
.
id
,
"carrier_type"
:
"商业楼宇"
,
"district_name"
:
build_obj
.
district_name
,
"build_name"
:
build_obj
.
build_name
,
"detail_address"
:
build_obj
.
detail_address
,
# 审核信息
"industry_name"
:
build_obj
.
industry_name
,
"layer_num"
:
build_obj
.
layer_num
,
"build_type"
:
build_obj
.
build_type
,
"attract_status"
:
build_obj
.
attract_status
,
"lng"
:
build_obj
.
lng
,
"lat"
:
build_obj
.
lat
}
for
build_obj
in
build_obj_list
]
data
=
{
"code"
:
RET
.
OK
,
"data"
:
{
"data_list"
:
data_list
,
"size"
:
carrier_size
,
"msg"
:
"楼宇 数据获取成功!"
}}
return
data
else
:
data
=
{
"code"
:
RET
.
DATAERR
,
"msg"
:
"没有符合搜索条件的 楼宇 数据!"
}
return
data
except
Exception
as
e
:
db
.
session
.
rollback
()
current_app
.
logger
.
error
(
e
)
data
=
{
"code"
:
RET
.
DBERR
,
"msg"
:
"楼宇 查询数据库错误!"
}
return
data
def
get_district_name
(
token
,
industry_name
):
try
:
user
=
verify_token
(
token
)
user_id
=
user
.
id
# 用户id
# 查出做此操作的用户名
user_obj
=
User
.
query
.
get
(
user_id
)
district_name1
=
user_obj
.
district_name
# 所属区县
if
district_name1
==
'太原市'
:
return
industry_name
else
:
return
district_name1
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"token过期,请重新登录!"
)
# 土地条件搜索功能
@api_address.route
(
"/SearchLand"
,
methods
=
[
"POST"
])
def
search_land
():
req_dict
=
request
.
get_json
()
key_words
=
req_dict
[
'key_words'
]
district_name
=
req_dict
[
'district_name'
]
land_name
=
req_dict
[
'land_name'
]
land_nature
=
req_dict
[
'land_nature'
]
industry_name
=
req_dict
[
'industry_name'
]
# total_area_id = req_dict['total_area_id']
# transfer_year_id = req_dict['transfer_year_id']
page
=
req_dict
.
get
(
"page"
)
# 页码
per_page
=
int
(
req_dict
.
get
(
"per_page"
))
# 每页大小
token
=
request
.
headers
[
'token'
]
district_name
=
get_district_name
(
token
,
district_name
)
data
=
global_land
(
key_words
,
district_name
,
land_name
,
land_nature
,
industry_name
,
page
,
per_page
)
return
jsonify
(
data
)
# 厂房条件搜索功能
@api_address.route
(
"/SearchFactory"
,
methods
=
[
"POST"
])
def
search_factory
():
req_dict
=
request
.
get_json
()
key_words
=
req_dict
[
'key_words'
]
# 关键字
district_name
=
req_dict
[
'district_name'
]
# 区域名称
factory_name
=
req_dict
[
'factory_name'
]
# 厂房名称
industry_name
=
req_dict
[
'industry_name'
]
# 产业类型
page
=
req_dict
.
get
(
"page"
)
# 页码
per_page
=
int
(
req_dict
.
get
(
"per_page"
))
# 每页大小
token
=
request
.
headers
[
'token'
]
district_name
=
get_district_name
(
token
,
district_name
)
data
=
global_factory
(
key_words
,
district_name
,
factory_name
,
industry_name
,
page
,
per_page
)
return
jsonify
(
data
)
# 楼宇条件搜索功能
@api_address.route
(
"/SearchBuild"
,
methods
=
[
"POST"
])
def
search_build
():
req_dict
=
request
.
get_json
()
key_words
=
req_dict
[
'key_words'
]
# 关键字
district_name
=
req_dict
[
'district_name'
]
# 区域名称
build_name
=
req_dict
[
'build_name'
]
# 楼宇名称
industry_name
=
req_dict
[
'industry_name'
]
# 产业类型(名称)
build_type
=
req_dict
[
'build_type'
]
# 楼宇类型id(商铺/写字楼)
page
=
req_dict
.
get
(
"page"
)
# 页码
per_page
=
int
(
req_dict
.
get
(
"per_page"
))
# 每页大小
token
=
request
.
headers
[
'token'
]
district_name
=
get_district_name
(
token
,
district_name
)
data
=
global_build
(
key_words
,
district_name
,
build_name
,
industry_name
,
build_type
,
page
,
per_page
)
return
jsonify
(
data
)
# 全部搜索功能
@api_address.route
(
"/SearchAll"
,
methods
=
[
"POST"
])
def
search_all
():
req_dict
=
request
.
get_json
()
key_words
=
req_dict
[
'key_words'
]
# 关键字
carrier_type_id
=
req_dict
[
'carrier_type_id'
]
# 载体类型id(1:园区;2:土地;3:楼宇;4:厂房。)
district_name
=
req_dict
[
'district_name'
]
# 区域名称
industry_name
=
req_dict
[
'industry_name'
]
# 产业类型名称
page
=
req_dict
.
get
(
"page"
)
# 页码
per_page
=
int
(
req_dict
.
get
(
"per_page"
))
# 每页大小
token
=
request
.
headers
[
'token'
]
district_name
=
get_district_name
(
token
,
district_name
)
data_list
=
[]
if
carrier_type_id
==
0
:
# 行政区
if
not
industry_name
:
region_data
=
global_region
(
key_words
,
district_name
,
page
,
per_page
)
data_list
.
append
(
region_data
)
# 土地
land_data
=
global_land
(
key_words
,
district_name
,
''
,
''
,
industry_name
,
page
,
per_page
)
data_list
.
append
(
land_data
)
# 厂房
factory_data
=
global_factory
(
key_words
,
district_name
,
''
,
industry_name
,
page
,
per_page
)
data_list
.
append
(
factory_data
)
# 楼宇
build_data
=
global_build
(
key_words
,
district_name
,
''
,
industry_name
,
''
,
page
,
per_page
)
data_list
.
append
(
build_data
)
return
jsonify
(
code
=
RET
.
OK
,
data
=
data_list
,
msg
=
'全部数据查询成功!'
)
if
carrier_type_id
==
1
:
# 土地
data
=
global_land
(
key_words
,
district_name
,
''
,
''
,
industry_name
,
page
,
per_page
)
return
jsonify
(
data
)
if
carrier_type_id
==
2
:
# 厂房
data
=
global_factory
(
key_words
,
district_name
,
''
,
industry_name
,
page
,
per_page
)
return
jsonify
(
data
)
if
carrier_type_id
==
3
:
# 楼宇
data
=
global_build
(
key_words
,
district_name
,
''
,
industry_name
,
''
,
page
,
per_page
)
return
jsonify
(
data
)
else
:
data
=
{
"code"
:
RET
.
PARAMERR
,
"msg"
:
'参数错误!'
}
return
jsonify
(
data
)
apps/view_radar/view.py
View file @
85eb2121
...
...
@@ -588,10 +588,6 @@ def newList():
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库错误"
)
# # 产品描述及推荐
# @api_radar.route('/randerSelect', methods=['GET'])
# # @login_required
...
...
@@ -981,3 +977,56 @@ def newList():
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库查询错误")
"""以下为202212月改版后需求新增"""
# 企业搜索
@api_radar.route
(
'/SearchEnterprises'
,
methods
=
[
'POST'
])
def
search_enterprise
():
req_dic
=
request
.
get_json
()
entype
=
req_dic
[
'entype'
]
aptitude
=
req_dic
[
'aptitude'
]
# 资质
company_name
=
req_dic
[
'company_name'
]
status
=
req_dic
[
'status'
]
page
=
req_dic
[
'page'
]
per_page
=
req_dic
[
'per_page'
]
try
:
enterprise_obj
=
Enterprise
.
query
.
filter
(
or_
(
Enterprise
.
entype
==
entype
,
Enterprise
.
company_name
.
like
(
'
%
{}
%
'
.
format
(
company_name
)),
Enterprise
.
status
==
status
,
Enterprise
.
high_new
==
'1'
if
aptitude
==
'是否高新技术企业'
else
text
(
''
),
Enterprise
.
tbe
==
'1'
if
aptitude
==
'是否科技型中小企业'
else
text
(
''
),
Enterprise
.
quoted_company
==
'1'
if
aptitude
==
'是否上市企业'
else
text
(
''
),
Enterprise
.
sxmon
==
'1'
if
aptitude
==
'是否山西民营100强'
else
text
(
''
),
Enterprise
.
zjtg
==
'1'
if
aptitude
==
'是否为山西专精特新企业'
else
text
(
''
),
Enterprise
.
unicorn
==
'1'
if
aptitude
==
'独角兽企业'
else
text
(
''
),
Enterprise
.
dengl
==
'1'
if
aptitude
==
'瞪羚'
else
text
(
''
),
Enterprise
.
isfive
==
'1'
if
aptitude
==
'是否中国500强'
else
text
(
''
),
Enterprise
.
scale
==
'1'
if
aptitude
==
'规模以上企业'
else
text
(
''
),
Enterprise
.
serve
==
'1'
if
aptitude
==
'限额以上服务业'
else
text
(
''
),
))
enterprise_obj_list
=
enterprise_obj
.
paginate
(
page
,
per_page
)
.
items
data
=
[{
"id"
:
enterprise_obj
.
id
,
"enterprise_name"
:
enterprise_obj
.
enterprise_name
,
"district"
:
enterprise_obj
.
district
,
"entype"
:
enterprise_obj
.
entype
,
"aptitude"
:
[
"是否高新技术企业"
if
enterprise_obj
.
high_new
==
'1'
else
"是否科技型中小企业"
if
enterprise_obj
.
tbe
==
'1'
else
"是否上市企业"
if
enterprise_obj
.
quoted_company
==
'1'
else
"是否山西民营100强"
if
enterprise_obj
.
sxmon
==
'1'
else
"是否为山西专精特新企业"
if
enterprise_obj
.
zjtg
==
'1'
else
"独角兽企业"
if
enterprise_obj
.
unicorn
==
'1'
else
"瞪羚"
if
enterprise_obj
.
dengl
==
'1'
else
"是否中国500强"
if
enterprise_obj
.
isfive
==
'1'
else
"规模以上企业"
if
enterprise_obj
.
scale
==
'1'
else
"限额以上服务业"
if
enterprise_obj
.
serve
==
'1'
else
''
]
}
for
enterprise_obj
in
enterprise_obj_list
]
return
jsonify
(
code
=
RET
.
OK
,
data
=
data
,
msg
=
'查询成功。'
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
'查询出错!'
)
\ No newline at end of file
apps/view_user/__init__.py
View file @
85eb2121
apps/view_user/view.py
View file @
85eb2121
...
...
@@ -77,6 +77,81 @@ def send_phone_code():
return
jsonify
(
code
=
RET
.
THIRDERR
,
msg
=
"发送失败"
)
# 后台用户账号密码
@api_user.route
(
"/backLogin"
,
methods
=
[
"POST"
])
def
back_login
():
'''
用户密码登录
:return:
'''
# 参数获取与校验
req_dict
=
request
.
get_json
()
# 解密
param
=
req_dict
.
get
(
"param"
)
# 揭秘参数
req_dict
=
json
.
loads
(
decrypt
(
param
))
# name = req_dict.get('name')
name
=
req_dict
.
get
(
'mobile'
)
password
=
req_dict
.
get
(
'password'
)
# 校验参数完整性
if
not
all
([
name
,
password
]):
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
"参数不完整"
)
# 判断错误次数是否超过限制,如果超过则10分钟内禁止此IP登录
user_ip
=
request
.
remote_addr
# print("IP地址:", user_ip)
try
:
access_nums
=
redis_store
.
get
(
'access_nums_{}'
.
format
(
user_ip
))
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
else
:
if
access_nums
:
if
int
(
access_nums
.
decode
())
>=
constants
.
LOGIN_ERROR_TIMES
:
return
jsonify
(
code
=
RET
.
REQERR
,
msg
=
"错误次数过多,请稍候重试"
)
# 验证账户与密码
try
:
user
=
Bstage
.
query
.
filter_by
(
name
=
name
)
.
first
()
# 用于记录日志
# section, user_name, operation_mobile, role_id, belong_unit = get_user_info(user)
name
=
user
.
name
role
=
user
.
role
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"获取用户信息失败"
)
# 将用户名与密码验证放置在一处,若失败返回提示信息并记录次数
# if (not user) or (not user.check_password(password)):
# # if (not user) or (password != "123"):
# try:
# redis_store.incr('access_nums_{}'.format(user_ip))
# redis_store.expire('access_nums_{}'.format(user_ip), constants.LOGIN_ERROR_FORBID_TIME)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="密码错误")
# 若成功保存登录状态和管理员的角色id
token
=
create_token
(
user
.
id
)
time
=
datetime
.
now
()
current_app
.
logger
.
error
(
'++++++++++++++++++++++++++++登录日志>>>{}:{}通过后台登录成功了!+++++++++++++++++++++++=++'
.
format
(
time
,
name
))
# 记录日志
role_name
=
''
if
role
==
1
:
role_name
=
'超级管理员'
if
role
==
2
:
role_name
=
'系统运维员'
# operation_message = "{}通过后台登录成功了!".format(role_name)
# upload_time = datetime.now()
# log = OperationLog(read_type=0, operation_people_id=user.id, operation_time=upload_time, operation_people=name,
# section=role_name,
# operation_message=operation_message, action='使用密码登录后台管理系统成功')
# db.session.add(log)
# db.session.commit()
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"登录成功"
,
token
=
token
,
flag
=
3
)
# 手机验证码登录
@api_user.route
(
"/LoginBySms"
,
methods
=
[
"POST"
])
def
login_bysms
():
...
...
@@ -357,9 +432,7 @@ def binding():
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"绑定成功,登录成功"
,
data
=
{
"token"
:
token
,
"flag"
:
user
.
flag
})
"""
用户中心
"""
"""用户中心"""
# 用户中心-账号设置-添加账号(注册)
...
...
@@ -378,11 +451,11 @@ def register():
# age = req_dict.get("age") # 年龄
# sex = req_dict.get("sex") # 性别
# sms_code = req_dict.get("sms_code") # 验证码
is_organization_manager
=
req_dict
.
get
(
"is_organization_manager"
)
# 是否是机构负责人
charge_organization
=
req_dict
.
get
(
"charge_organization"
)
# 是机构负责人的话,所负责的机构
#
is_organization_manager = req_dict.get("is_organization_manager") # 是否是机构负责人
#
charge_organization = req_dict.get("charge_organization") # 是机构负责人的话,所负责的机构
belong_department
=
req_dict
.
get
(
"belong_department"
)
# 所属部门(政府)
is_department_manager
=
req_dict
.
get
(
"is_department_manager"
)
# 是否是部门负责人
#
is_department_manager = req_dict.get("is_department_manager") # 是否是部门负责人
# charge_department = req_dict.get("charge_department") # 是部门负责人的话,所负责的部门
position
=
req_dict
.
get
(
"position"
)
# 职务
...
...
@@ -390,39 +463,39 @@ def register():
name
=
req_dict
.
get
(
"name"
)
# 用户名
password
=
req_dict
.
get
(
"password"
)
# 密码
password_again
=
req_dict
.
get
(
"password_again"
)
# 密码2
sms_code
=
req_dict
.
get
(
"sms_code"
)
# 验证码
# 校验参数完整性
if
not
all
([
real_name
,
mobile
,
name
,
belong_organization
,
is_organization_manager
,
belong_department
,
is_department_manager
,
position
,
password
,
password_again
]):
if
not
all
([
real_name
,
mobile
,
name
,
belong_organization
,
belong_department
,
sms_code
,
position
,
password
,
password_again
]):
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
"参数不完整"
)
# 校验手机号格式
if
not
re
.
match
(
r"1[23456789]\d{9}$"
,
mobile
):
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
"手机号格式错误"
)
# # 获取短信验证码
# try:
# real_sms_code = redis_store.get('sms_code_{}'.format(mobile)).decode()
# # real_sms_code = "123456"
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.NODATA, msg="短信验证码失效")
#
# # 判断短信验证码是否失效
# if not redis_store:
# return jsonify(code=RET.NODATA, msg="短信验证码失效")
# 获取短信验证码
try
:
real_sms_code
=
redis_store
.
get
(
'sms_code_{}'
.
format
(
mobile
))
.
decode
()
# real_sms_code = "123456"
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
"短信验证码失效"
)
# # 删除redis中的短信验证码,防止重复校验
# try:
# redis_store.delete("sms_code_{}".format(mobile))
# except Exception as e:
# current_app.logger.error(e)
#
# # 判断用户填写短信验证码是否一致
# if real_sms_code != sms_code:
# # if "123456" != sms_code:
# return jsonify(code=RET.DATAERR, msg="短信验证码错误")
# 判断短信验证码是否失效
if
not
redis_store
:
return
jsonify
(
code
=
RET
.
NODATA
,
msg
=
"短信验证码失效"
)
# 删除redis中的短信验证码,防止重复校验
try
:
redis_store
.
delete
(
"sms_code_{}"
.
format
(
mobile
))
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
# 判断用户填写短信验证码是否一致
if
real_sms_code
!=
sms_code
:
# if "123456" != sms_code:
return
jsonify
(
code
=
RET
.
DATAERR
,
msg
=
"短信验证码错误"
)
# 用户名唯一(字母开头,长度4-15)
try
:
...
...
@@ -471,11 +544,11 @@ def register():
ouser
.
real_name
=
real_name
# 姓名
ouser
.
mobile
=
mobile
# 联系电话
ouser
.
belong_organization
=
belong_organization
# 所属机构
ouser
.
is_organization_manager
=
is_organization_manager
# 是否为机构负责人
ouser
.
charge_organization
=
charge_organization
# 是机构负责人的话,所负责的机构
#
ouser.is_organization_manager = is_organization_manager # 是否为机构负责人
#
ouser.charge_organization = charge_organization # 是机构负责人的话,所负责的机构
ouser
.
belong_department
=
belong_department
# 所属部门
ouser
.
is_department_manager
=
is_department_manager
# 是否为部门负责人
#
ouser.is_department_manager = is_department_manager # 是否为部门负责人
# ouser.charge_department = charge_department # 是部门负责人的话,所负责的部门
ouser
.
position
=
position
# 职务
...
...
@@ -487,10 +560,10 @@ def register():
user
=
User
(
real_name
=
real_name
,
mobile
=
mobile
,
belong_organization
=
belong_organization
,
is_organization_manager
=
is_organization_manager
,
charge_organization
=
charge_organization
,
#
is_organization_manager=is_organization_manager,
#
charge_organization=charge_organization,
belong_department
=
belong_department
,
is_department_manager
=
is_department_manager
,
#
is_department_manager=is_department_manager,
# charge_department=charge_department,
position
=
position
,
name
=
name
,
...
...
@@ -542,46 +615,55 @@ def detail():
# 用户中心-个人中心确认修改
@api_user.route
(
"/FixUserInfo"
,
methods
=
[
"POST"
])
@login_required
def
fix_user_info
():
token
=
request
.
headers
[
"token"
]
user
=
verify_token
(
token
)
user_id
=
user
.
id
req_dict
=
request
.
get_json
()
real_name
=
req_dict
.
get
(
"real_name"
)
age
=
req_dict
.
get
(
"age"
)
sex
=
req_dict
.
get
(
"sex"
)
name
=
req_dict
.
get
(
"name"
)
position
=
req_dict
.
get
(
"position"
)
try
:
user_information
=
User
.
query
.
get
(
user_id
)
# 姓名
if
real_name
:
user_information
.
real_name
=
real_name
# 年龄
if
age
:
user_information
.
age
=
age
# 性别 1 - 男 2 - 女
if
sex
:
user_information
.
sex
=
sex
# 职务
if
position
:
user_information
.
position
=
position
# 用户名
if
name
:
user
=
User
.
query
.
filter_by
(
name
=
name
)
.
filter
(
User
.
id
!=
user_id
)
.
first
()
if
user
:
return
jsonify
(
code
=
RET
.
DATAEXIST
,
msg
=
"用户名已经存在"
)
user_information
.
name
=
name
db
.
session
.
commit
()
except
Exception
as
e
:
db
.
session
.
rollback
()
# 回滚数据库
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库错误"
)
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"修改成功"
)
# @api_user.route("/FixUserInfo", methods=["POST"])
# @login_required
# def fix_user_info():
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id
# req_dict = request.get_json()
# real_name = req_dict.get("real_name")
# age = req_dict.get("age")
# sex = req_dict.get("sex")
# name = req_dict.get("name")
# position = req_dict.get("position")
#
# belong_organization = req_dict.get("belong_organization")
# belong_department = req_dict.get("belong_department")
#
# try:
# user_information = User.query.get(user_id)
# # 姓名
# if real_name:
# user_information.real_name = real_name
# # 机构
# if belong_organization:
# user_information.belong_organization = belong_organization
# # 部门
# if belong_department:
# user_information.belong_department = belong_department
# # 年龄
# if age:
# user_information.age = age
# # 性别 1 - 男 2 - 女
# if sex:
# user_information.sex = sex
# # 职务
# if position:
# user_information.position = position
# # 用户名
# if name:
# user = User.query.filter_by(name=name).filter(User.id != user_id).first()
# if user:
# return jsonify(code=RET.DATAEXIST, msg="用户名已经存在")
# user_information.name = name
# db.session.commit()
# except Exception as e:
# db.session.rollback() # 回滚数据库
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
# return jsonify(code=RET.OK, msg="修改成功")
# 修改用户手机号
...
...
@@ -695,3 +777,283 @@ def change_password():
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库错误"
)
"""以下为202212月改版后需求"""
# 用户中心-个人中心确认修改
@api_user.route
(
"/FixUserInfo"
,
methods
=
[
"POST"
])
@login_required
def
fix_user_info
():
token
=
request
.
headers
[
"token"
]
try
:
user
=
verify_token
(
token
)
user_id
=
user
.
id
except
:
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
'个人信息校验失败,请重新登录!'
)
req_dict
=
request
.
get_json
()
real_name
=
req_dict
.
get
(
"real_name"
)
age
=
req_dict
.
get
(
"age"
)
sex
=
req_dict
.
get
(
"sex"
)
name
=
req_dict
.
get
(
"name"
)
position
=
req_dict
.
get
(
"position"
)
belong_organization
=
req_dict
.
get
(
"belong_organization"
)
# 202212新增
belong_department
=
req_dict
.
get
(
"belong_department"
)
# 202212新增
try
:
user_information
=
User
.
query
.
get
(
user_id
)
# 姓名
if
real_name
:
user_information
.
real_name
=
real_name
# 机构
if
belong_organization
:
user_information
.
belong_organization
=
belong_organization
# 部门
if
belong_department
:
user_information
.
belong_department
=
belong_department
# 年龄
if
age
:
user_information
.
age
=
age
# 性别 1 - 男 2 - 女
if
sex
:
user_information
.
sex
=
sex
# 职务
if
position
:
user_information
.
position
=
position
# 用户名
if
name
:
user
=
User
.
query
.
filter_by
(
name
=
name
)
.
filter
(
User
.
id
!=
user_id
)
.
first
()
if
user
:
return
jsonify
(
code
=
RET
.
DATAEXIST
,
msg
=
"用户名已经存在"
)
user_information
.
name
=
name
db
.
session
.
commit
()
except
Exception
as
e
:
db
.
session
.
rollback
()
# 回滚数据库
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库错误"
)
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"修改成功"
)
# 用户中心-收藏界面获取收藏的产业
# @api_user.route("/GetCollectIndustry", methods=["GET"])
# @login_required
# def get_collect_industry():
# token = request.headers["token"]
# try:
# user = verify_token(token)
# user_id = user.id
# except:
# return jsonify(code=RET.SESSIONERR, msg='个人信息校验失败,请重新登录!')
#
# try:
# industry_obj_li = IndustryCollect.query.filter(IndustryCollect.user_id == user_id).all()
# data = [{
# "industry_id": industry_obj.id,
# "industry_name": industry_obj.industry_name
# } for industry_obj in industry_obj_li]
# return jsonify(code=RET.OK, data=data, msg="获取成功")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
# # 用户中心-取消收藏
# @api_user.route("/CancelCollectIndustry", methods=["POST"])
# @login_required
# def cancel_collect_industry():
# token = request.headers["token"]
# try:
# user = verify_token(token)
# user_id = user.id
# except:
# return jsonify(code=RET.SESSIONERR, msg='个人信息校验失败,请重新登录!')
# req_dict = request.get_json()
# industry_name = req_dict['industry_name']
#
# try:
# collect_obj = IndustryCollect.query.filter_by(industry_name=industry_name).first()
# db.session.delete(collect_obj)
# db.session.commit()
# return jsonify(code=RET.OK, msg="取消收藏成功。")
# except Exception as e:
# db.session.rollback() # 回滚数据库
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
# 查看收藏-收藏的企业和行业
@api_user.route
(
"/GetCollect"
,
methods
=
[
"POST"
])
@login_required
def
get_collect
():
try
:
token
=
request
.
headers
[
"token"
]
user
=
verify_token
(
token
)
user_id
=
user
.
id
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"token过期,请重新登录!"
)
req_dict
=
request
.
get_json
()
page
=
req_dict
.
get
(
"page"
)
per_page
=
req_dict
.
get
(
"per_page"
)
classify
=
req_dict
.
get
(
"classify"
)
choice
=
req_dict
.
get
(
"choice"
)
company_name
=
req_dict
.
get
(
"company_name"
)
if
not
page
:
page
=
1
if
not
per_page
:
per_page
=
10
if
classify
==
1
and
not
all
([
classify
,
choice
]):
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
"数据不全"
)
# 判断是企业还是行业关注,企业1,行业0
if
classify
==
1
:
company
=
[]
try
:
user
=
User
.
query
.
get
(
user_id
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库错误"
)
if
choice
==
"2"
:
try
:
maxnum
=
len
(
user
.
enterprise
)
company_list
=
user
.
enterprise
[(
page
-
1
)
*
per_page
:
page
*
per_page
]
for
i
in
company_list
:
create_time
=
UserEnterprise
.
query
.
filter_by
(
enterprise_id
=
i
.
id
,
user_id
=
user_id
)
.
first
()
if
company_name
and
company_name
in
i
.
company_name
:
company
.
append
({
"id"
:
i
.
id
,
"company_name"
:
i
.
company_name
,
"create_time"
:
create_time
.
create_time
.
strftime
(
'
%
Y-
%
m-
%
d
%
H:
%
M:
%
S'
),
"build_date"
:
i
.
build_date
.
strftime
(
"
%
Y-
%
m-
%
d"
)
if
i
.
build_date
else
"-"
})
else
:
company
.
append
({
"id"
:
i
.
id
,
"company_name"
:
i
.
company_name
,
"create_time"
:
create_time
.
create_time
.
strftime
(
'
%
Y-
%
m-
%
d
%
H:
%
M:
%
S'
),
"build_date"
:
i
.
build_date
.
strftime
(
"
%
Y-
%
m-
%
d"
)
if
i
.
build_date
else
"-"
})
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库错误"
)
data
=
{
"ob_list"
:
company
,
"maxnum"
:
maxnum
}
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"查找成功"
,
data
=
data
)
else
:
maxnum
=
len
(
user
.
company
)
company_list
=
user
.
company
[(
page
-
1
)
*
per_page
:
page
*
per_page
]
try
:
for
i
in
company_list
:
create_time
=
UserCompany
.
query
.
filter_by
(
company_id
=
i
.
id
,
user_id
=
user_id
)
.
first
()
company
.
append
({
"id"
:
i
.
id
,
"company_name"
:
i
.
company_name
,
"create_time"
:
create_time
.
create_time
.
strftime
(
'
%
Y-
%
m-
%
d
%
H:
%
M:
%
S'
),
"build_date"
:
i
.
build_date
.
strftime
(
"
%
Y-
%
m-
%
d"
)
if
i
.
build_date
else
"-"
})
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库错误"
)
data
=
{
"ob_list"
:
company
,
"maxnum"
:
maxnum
}
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"查找成功"
,
data
=
data
)
# 行业
try
:
user
=
User
.
query
.
get
(
user_id
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库错误"
)
maxnum
=
len
(
user
.
industry
)
industry
=
[]
industry_list
=
user
.
industry
[(
page
-
1
)
*
per_page
:
page
*
per_page
]
for
i
in
industry_list
:
# 查询关注时间
try
:
indu
=
UserIndustry
.
query
.
filter_by
(
industry_id
=
i
.
id
,
user_id
=
user_id
)
.
first
()
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库错误"
)
# count = Company.query.filter_by(company_industry = i.name)
industry
.
append
({
"id"
:
i
.
id
,
"industry_name"
:
i
.
name
,
"create_time"
:
indu
.
create_time
.
strftime
(
"
%
Y-
%
m-
%
d"
),
"count"
:
i
.
entities
if
i
.
entities
else
0
})
industry
=
sorted
(
industry
,
key
=
lambda
k
:
k
[
'create_time'
],
reverse
=
True
)
data
=
{
"ob_list"
:
industry
,
"maxnum"
:
maxnum
}
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"查找成功"
,
data
=
data
)
# 取消收藏
@api_user.route
(
"/CancelCollect"
,
methods
=
[
"POST"
])
@login_required
def
cancel_collect
():
try
:
token
=
request
.
headers
[
"token"
]
user
=
verify_token
(
token
)
user_id
=
user
.
id
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
SESSIONERR
,
msg
=
"token过期,请重新登录!"
)
req_dict
=
request
.
get_json
()
id
=
req_dict
.
get
(
"id"
)
classify
=
req_dict
.
get
(
"classify"
)
choice
=
req_dict
.
get
(
"choice"
)
print
(
id
,
classify
,
choice
)
if
classify
==
1
and
not
all
([
id
,
classify
,
choice
]):
return
jsonify
(
code
=
RET
.
PARAMERR
,
msg
=
"数据不全"
)
# id = g.id
if
classify
==
1
:
if
choice
==
"2"
:
# 删除全国数据
# pass
try
:
company_user
=
UserEnterprise
.
query
.
filter_by
(
enterprise_id
=
id
,
user_id
=
user_id
)
.
first
()
db
.
session
.
delete
(
company_user
)
db
.
session
.
commit
()
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"删除成功"
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库错误"
)
else
:
try
:
company_user
=
UserCompany
.
query
.
filter_by
(
company_id
=
id
,
user_id
=
user_id
)
.
first
()
db
.
session
.
delete
(
company_user
)
db
.
session
.
commit
()
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"删除成功"
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库错误"
)
# 删除行业数据
try
:
industry_user
=
UserIndustry
.
query
.
filter_by
(
industry_id
=
id
,
user_id
=
user_id
)
.
first
()
db
.
session
.
delete
(
industry_user
)
db
.
session
.
commit
()
return
jsonify
(
code
=
RET
.
OK
,
msg
=
"取关成功"
)
except
Exception
as
e
:
current_app
.
logger
.
error
(
e
)
return
jsonify
(
code
=
RET
.
DBERR
,
msg
=
"数据库错误"
)
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