Commit ee495050 by dong

fix20230202

parent 8158749a
......@@ -38,8 +38,6 @@ class IndustryChain(db.Model):
status = db.Column(db.Integer, doc='启用状态1启用,2禁用', comment='启用状态1启用,2禁用') # 启用状态1启用,2禁用
industry_type = db.Column(db.Integer, comment='行业类型(0是产业集群,1是上游行业,2是中游行业,3是下游行业)')
relate_id = db.Column(db.Integer, comment='关系id(关联与哪个产业环节')
# enterprise_id = db.Column(db.Integer, db.ForeignKey("enterprise.id"), comment='外键id,全国企业id')
enterprise = db.relationship('Enterprise', backref=db.backref('enterprise'))
......@@ -746,7 +744,7 @@ class Induzone(db.Model):
upper_district = db.Column(db.String(255), doc='上级行政区', comment='上级行政区') # 所在开发区
# 创新资源-高等院校(985,211,本科,高职专高)
# 创新资源-高等院校(985, 211, 本科,高职专高)
class College(db.Model):
__tablename_ = "college"
__table_args__ = ({'comment': '创新资源-高等院校表'}) # 添加表注释
......
......@@ -16,13 +16,12 @@ from apps.view_choose import api_address
# 搜索行政区公共方法
def global_region(key_words, district_name, page, per_page):
def global_region(industry_id, preference, 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_(
......@@ -31,6 +30,23 @@ def global_region(key_words, district_name, page, per_page):
Induzone.navigat.like("%" + key_words + "%"),
Induzone.cate.like("%" + key_words + "%")
))
if preference[0] == "true": # 如果有政府扶持力度 --- 政策数的打分
carrier_obj = carrier_obj.order_by(Induzone.policy_point.desc())
if preference[1] == "true": # 产业聚集度 --- 产业的打分
carrier_obj = carrier_obj.outerjoin(CompanyIndustryPoint, Induzone.name == CompanyIndustryPoint.district).filter(
CompanyIndustryPoint.f_type == industry_id).order_by(CompanyIndustryPoint.point.desc()).all()
carrier_obj = carrier_obj.outerjoin(CompanyIndustryPoint,
Induzone.name == CompanyIndustryPoint.district).\
order_by(CompanyIndustryPoint.point.desc()).all()
if preference[2] == "true": # 园区配套服务 ----园区的学校,商业街,宾馆打分
carrier_obj = carrier_obj.order_by(Induzone.mall_point.desc(), Induzone.hotel_point.desc(),
Induzone.school_point.desc())
if preference[3] == "true": # 生活配套服务
carrier_obj = carrier_obj.order_by(Induzone.live_point.desc())
if preference[4] == "true": # 交通 -----交通打分
carrier_obj = carrier_obj.order_by(Induzone.traffic_point.desc())
else:
carrier_obj = Induzone.query.filter(
and_(
......@@ -38,6 +54,18 @@ def global_region(key_words, district_name, page, per_page):
# Induzone.navigat.like('%{}%'.format(industry_name)) if industry_name else text(''),
Induzone.id.in_([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
))
if preference[0] == "true": # 如果有政府扶持力度 --- 政策数的打分
carrier_obj = carrier_obj.order_by(Induzone.policy_point.desc())
if preference[1] == "true": # 产业聚集度 --- 产业的打分
carrier_obj = carrier_obj.outerjoin(CompanyIndustryPoint, Induzone.name == CompanyIndustryPoint.district).filter(
CompanyIndustryPoint.f_type == industry_id).order_by(CompanyIndustryPoint.point.desc()).all()
if preference[2] == "true": # 园区配套服务 ----园区的学校,商业街,宾馆打分
carrier_obj = carrier_obj.order_by(Induzone.mall_point.desc(), Induzone.hotel_point.desc(),
Induzone.school_point.desc())
if preference[3] == "true": # 生活配套服务
carrier_obj = carrier_obj.order_by(Induzone.live_point.desc())
if preference[4] == "true": # 交通 -----交通打分
carrier_obj = carrier_obj.order_by(Induzone.traffic_point.desc())
# 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
......@@ -317,13 +345,20 @@ def search_build():
def search_all():
req_dict = request.get_json()
key_words = req_dict['key_words'] # 关键字
industry_name = req_dict['industry_name'] # 所属行业
district_name = req_dict['district_name'] # 所属区县
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'] # 产业类型名称
preference = req_dict.get("preference") # 选址偏好 [f,f,t,f,f,f]
page = req_dict.get("page") # 页码
per_page = int(req_dict.get("per_page")) # 每页大小
token = request.headers['token']
if any([preference[0], preference[1], preference[2], preference[3], preference[4]]):
if not industry_name:
return jsonify(code=RET.PARAMERR, msg="选择选址偏好时,必须选择所属行业!")
industry_id = ''
if industry_name:
industry_id = IndustryChain.query.fliter(industry_name=industry_name).first().id
if not district_name:
district_name = get_district_name(token)
......@@ -331,7 +366,7 @@ def search_all():
if carrier_type_id == 0:
# 行政区
if not industry_name:
region_data = global_region(key_words, district_name,
region_data = global_region(industry_id, preference, key_words, district_name,
page, per_page)
data_list.append(region_data)
# 土地
......
......@@ -394,12 +394,14 @@ def attract_enterprise():
@api_map.route('/GetChain', methods=['GET'])
def get_chain():
# 在IndustryChain中查找到某个产业链,比如:‘中成药’
indu_obj = IndustryChain.query.filter_by(industry_name='中成药').first()
indu_obj = IndustryChain.query.filter_by(industry_name='废钢').first()
industry_name = indu_obj.industry_name
enterprise_list = Enterprise.query.filter(Enterprise.product_all.like("%{}%".format(industry_name))).all()
for enterprise_obj in enterprise_list:
#
indu_obj.enterprise.append(enterprise_obj)
continue
# 查询时比较方便,速度提升
enterprise_list1 = indu_obj.enterprise
print(enterprise_list1)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment