Commit 4115f64a by dong

fix20230223

parent d99b26b4
......@@ -1059,6 +1059,14 @@ class User(BaseModel, db.Model):
company = db.relationship("Company", secondary="user_company", backref=db.backref("bcompany"))
# 用户关注全国企业
enterprise = db.relationship("Enterprise", secondary="user_enterprise", backref=db.backref("benterprise"))
# 用户收藏地块
carrier_land = db.relationship("CarrierLand", secondary="user_land", backref=db.backref("bland"))
# 用户收藏楼宇
carrier_build = db.relationship("CarrierBuild", secondary="user_build", backref=db.backref("bbuild"))
# 用户收藏厂房
carrier_factory = db.relationship("CarrierFactory", secondary="user_factory", backref=db.backref("bfactory"))
# 用户收藏园区
industry_zone = db.relationship("Induzone", secondary="user_zone", backref=db.backref("bzone"))
@property
def password(self):
......@@ -1537,211 +1545,25 @@ class UserEnterprise(BaseModel, db.Model):
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='审核附言')
# attract_status = db.Column(db.String(20), 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 UserLand(BaseModel, db.Model):
__tablename__ = "user_land"
user_id = db.Column(db.Integer, db.ForeignKey("user.id"), primary_key=True)
land_id = db.Column(db.Integer, db.ForeignKey("carrier_land.id"), primary_key=True)
# 小程序用户收藏楼宇,多-多
class UserBuild(BaseModel, db.Model):
__tablename__ = "user_build"
user_id = db.Column(db.Integer, db.ForeignKey("user.id"), primary_key=True)
build_id = db.Column(db.Integer, db.ForeignKey("carrier_build.id"), primary_key=True)
# 小程序用户收藏厂房,多-多
class UserFactory(BaseModel, db.Model):
__tablename__ = "user_factory"
user_id = db.Column(db.Integer, db.ForeignKey("user.id"), primary_key=True)
factory_id = db.Column(db.Integer, db.ForeignKey("carrier_factory.id"), primary_key=True)
# 产业载体-土地数据
......@@ -1889,29 +1711,6 @@ class CarrierFactory(db.Model):
audit_message = db.Column(db.String(50), comment='审核附言')
# 载体资源库-产业地图-各载体类型面积数据表
# class CarrierArea(db.Model):
# __tablename_ = "carrier_area"
# __table_args__ = ({'comment': '载体资源库-产业地图-各载体类型面积数据表'}) # 添加表注释
# id = db.Column(db.Integer, primary_key=True, autoincrement=True, comment='主键id')
# district_name = db.Column(db.String(20), comment='区域名称')
# lng = db.Column(db.String(50), comment='经度')
# lat = db.Column(db.String(50), comment='维度')
# build_area = db.Column(db.String(20), comment='楼宇当前总面积(㎡)')
# build_current_empty_area = db.Column(db.String(20), comment='楼宇当前闲置面积(㎡)')
# build_last_empty_area = db.Column(db.String(20), comment='楼宇去年闲置面积(㎡)')
# factory_area = db.Column(db.String(20), comment='厂房当前总面积(㎡)')
# factory_current_empty_area = db.Column(db.String(20), comment='厂房当前闲置面积(㎡)')
# factory_last_empty_area = db.Column(db.String(20), comment='厂房去年闲置面积(㎡)')
# plan_land_store_area = db.Column(db.String(20), comment='计划土地储备面积(亩)')
# plan_land_supply_area = db.Column(db.String(20), comment='计划土地供应面积(亩)')
# plan_land_stock_area = db.Column(db.String(20), comment='计划土地存量面积(亩)')
# land_area = db.Column(db.String(20), comment='土地当前总面积(亩)')
# land_current_empty_area = db.Column(db.String(20), comment='土地当前闲置面积(亩)')
# land_last_empty_area = db.Column(db.String(20), comment='土地去年闲置面积(亩)')
""""""
# 载体资源库-产业地图-水电气热能源数据表
class CarrierEnergy(db.Model):
__tablename_ = "carrier_energy"
......@@ -1938,31 +1737,6 @@ class CarrierEnergy(db.Model):
life_gas_three = db.Column(db.String(20), comment='居民用气(三档)(元/m³)')
# 载体资源库-产业地图-各区县闲置环比按月份区分显示图数据表
# class CarrierAreaData(db.Model):
# __tablename_ = "carrier_rate_data"
# __table_args__ = ({'comment': '载体资源库-产业地图-各区县各载体闲置面积数据表'}) # 添加表注释
# id = db.Column(db.Integer, primary_key=True, autoincrement=True, comment='主键id')
# district_name = db.Column(db.String(20), comment='区域名称')
# land_year = db.Column(db.String(20), comment='土地全年闲置面积')
# land_one = db.Column(db.String(20), comment='土地第一季度闲置面积')
# land_two = db.Column(db.String(20), comment='土地第二季度闲置面积')
# land_three = db.Column(db.String(20), comment='土地第三季度闲置面积')
# land_four = db.Column(db.String(20), comment='土地第四季度闲置面积')
#
# factory_year = db.Column(db.String(20), comment='厂房全年闲置面积')
# factory_one = db.Column(db.String(20), comment='厂房第一季度闲置面积')
# factory_two = db.Column(db.String(20), comment='厂房第二季度闲置面积')
# factory_three = db.Column(db.String(20), comment='厂房第三季度闲置面积')
# factory_four = db.Column(db.String(20), comment='厂房第四季度闲置面积')
#
# build_year = db.Column(db.String(20), comment='楼宇全年闲置面积')
# build_one = db.Column(db.String(20), comment='楼宇第一季度闲置面积')
# build_two = db.Column(db.String(20), comment='楼宇第二季度闲置面积')
# build_three = db.Column(db.String(20), comment='楼宇第三季度闲置面积')
# build_four = db.Column(db.String(20), comment='楼宇第四季度闲置面积')
# 记录操作日志得数据表
class OperationLog(db.Model):
__tablename_ = "operation_log"
......@@ -2018,6 +1792,9 @@ class CustomerConsultation(db.Model):
investment_volume = db.Column(db.Text, comment='总投资额')
basic_information = db.Column(db.Text, comment='项目方基本情况')
land_area = db.Column(db.Text, comment='拟落地区域')
linkman = db.Column(db.String(20), comment='联系人')
link_mobile = db.Column(db.String(20), comment='联系方式')
flag = db.Column(db.Integer, comment='是否已回复 0否1是')
reply_content = db.Column(db.Text, comment='回复内容')
......@@ -52,7 +52,7 @@ def show_area():
# print(gong_total_area)
# 获取商业用地面积
shang_area_obj_list = com.get_total_land_area('', '', district_name, '商用地', '')
shang_area_obj_list = com.get_total_land_area('', '', district_name, '商用地', '')
shang_total_area = round(sum([float(area_obj.total_area if area_obj.total_area else 0) for area_obj in shang_area_obj_list]), 2)
# print(shang_total_area)
......
......@@ -44,6 +44,11 @@ def attract_map():
district = req_dict.get("district")
product = req_dict.get("product") # 产业产品选择
name_query = "AttractMap" + str(inid) + province + city + district + product
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)
try:
enterprise = Enterprise.query.filter(or_(
Enterprise.c_type == inid,
......@@ -108,6 +113,9 @@ def attract_map():
"color": "",
# "jwd": {"lng": district_data.d_lng, "lat": district_data.d_lat}})
})
# redis缓存
redis_store.setex(name_query, 30 * 24 * 3600, json.dumps(df))
return jsonify(code=RET.OK, msg="获取成功", data=df)
else:
return jsonify(code=RET.OK, msg="无满足条件数据", data=df)
......
import re
import requests
from flask import current_app, request, jsonify
from apps.view_radar import api_radar
from apps.models import *
from sqlalchemy import extract, or_, and_
from sqlalchemy.sql import func
from apps.util import login_required
from apps.util import login_required, create_token, verify_token
from apps.utils.response_code import RET
from datetime import datetime
import datetime
......@@ -14,6 +17,9 @@ from apps.view_xiaocx import api_xiaocx
# 首页搜索
from apps.utils.vxconfig import WxConfig
@api_xiaocx.route('/IndexSearch', methods=['POST'])
# @login_required
def index_search():
......@@ -27,8 +33,8 @@ def index_search():
nature = req_dict.get("nature") # 土地性质
area = req_dict.get("area") # 土地面积 [10, 20 ]
build_area = req_dict.get("industry") # 建筑面积 [0, 10000]
rent = req_dict.get("industry") # 租金 [0, 1.5]
build_area = req_dict.get("build_area") # 建筑面积 [0, 10000]
rent_money = req_dict.get("rent_money") # 租金 [0, 1.5]
zone_level = req_dict.get("zone_level") # 园区级别
......@@ -37,56 +43,56 @@ def index_search():
data = []
try:
if carrier_type == 1:
land_obj_list = ZaitiLand.query.filter(
ZaitiLand.name == carrier_name if carrier_name else text(''),
ZaitiLand.nature == nature if nature else text(''),
ZaitiLand.area[0] == float(area) if area[0] else text(''),
ZaitiLand.area[1] == float(area) if area[1] else text(''),
land_obj_list = CarrierLand.query.filter(
CarrierLand.land_name.like('%{}%'.format(carrier_name)) if carrier_name else text(''),
CarrierLand.land_nature == nature if nature else text(''),
CarrierLand.total_area > float(area[0]) if area[0] else text(''),
CarrierLand.total_area <= float(area[1]) if area[1] else text(''),
).paginate(page, perpage).items
data = [{
"id": land_obj.id,
"name": land_obj.name,
"district": land_obj.district,
"nature": land_obj.nature,
"area": land_obj.area,
"name": land_obj.land_name,
"district": land_obj.district_name,
"nature": land_obj.land_nature,
"area": land_obj.total_area,
"lng": land_obj.lng,
"lat": land_obj.lat,
} for land_obj in land_obj_list]
if carrier_type == 2:
build_obj_list = ZaitiBuild.query.filter(
ZaitiBuild.name == carrier_name if carrier_name else text(''),
ZaitiBuild.attract_industry == industry if industry else text(''),
ZaitiBuild.build_area > build_area[0] if build_area[0] else text(''),
ZaitiBuild.build_area <= build_area[1] if build_area[1] else text(''),
ZaitiBuild.rent > rent[0] if rent[0] else text(''),
ZaitiBuild.rent <= rent[1] if rent[1] else text('')
build_obj_list = CarrierBuild.query.filter(
CarrierBuild.build_name.like('%{}%'.format(carrier_name)) if carrier_name else text(''),
CarrierBuild.attract_status == industry if industry else text(''),
CarrierBuild.build_area > build_area[0] if build_area[0] else text(''),
CarrierBuild.build_area <= build_area[1] if build_area[1] else text(''),
CarrierBuild.rent_money > rent_money[0] if rent_money[0] else text(''),
CarrierBuild.rent_money <= rent_money[1] if rent_money[1] else text('')
).paginate(page, perpage).items
data = [{
"id": build_obj.id,
"name": build_obj.name,
"district": build_obj.district,
"rent": build_obj.rent,
"name": build_obj.build_name,
"district": build_obj.district_name,
"rent": build_obj.rent_money,
"area": build_obj.build_area,
"lng": build_obj.lng,
"lat": build_obj.lat,
} for build_obj in build_obj_list]
if carrier_type == 3:
factory_obj_list = ZaitiFactory.query.filter(
ZaitiFactory.name == carrier_name if carrier_name else text(''),
ZaitiFactory.attract_industry == industry if industry else text(''),
ZaitiFactory.build_area > build_area[0] if build_area[0] else text(''),
ZaitiFactory.build_area <= build_area[1] if build_area[1] else text('')
factory_obj_list = CarrierFactory.query.filter(
CarrierFactory.factory_name.like('%{}%'.format(carrier_name)) if carrier_name else text(''),
CarrierFactory.attract_status == industry if industry else text(''),
CarrierFactory.factory_area > build_area[0] if build_area[0] else text(''),
CarrierFactory.factory_area <= build_area[1] if build_area[1] else text('')
).paginate(page, perpage).items
data = [{
"id": factory_obj.id,
"name": factory_obj.name,
"district": factory_obj.district,
"attract_industry": factory_obj.attract_industry,
"name": factory_obj.factory_name,
"district": factory_obj.district_name,
"attract_industry": factory_obj.attract_status,
"area": factory_obj.factory_area,
"lng": factory_obj.lng,
"lat": factory_obj.lat,
......@@ -94,7 +100,7 @@ def index_search():
if carrier_type == 4: # 园区
zone_obj_list = Induzone.query.filter(
Induzone.name == carrier_name if carrier_name else text(''),
Induzone.name.like('%{}%'.format(carrier_name)) if carrier_name else text(''),
Induzone.navigat == industry if industry else text(''),
Induzone.level == zone_level if zone_level else text('')
).paginate(page, perpage).items
......@@ -111,7 +117,7 @@ def index_search():
if carrier_type == 5: # 项目
project_obj_list = Project.query.filter(
Project.project_name == carrier_name if carrier_name else text(''),
Project.name.like('%{}%'.format(carrier_name)) if carrier_name else text(''),
Project.district == district if district else text(''),
Project.industry == industry if industry else text(''),
......@@ -125,8 +131,8 @@ def index_search():
"district": project_obj.district,
"money": project_obj.money,
"attract_industry": project_obj.attract_industry,
"lng": project_obj.lng,
"lat": project_obj.lat,
# "lng": project_obj.lng,
# "lat": project_obj.lat,
} for project_obj in project_obj_list]
except Exception as e:
current_app.logger.error(e)
......@@ -199,8 +205,8 @@ def information():
data = [{
"name": inform_obj.name,
"time": inform_obj.time,
# "source": inform_obj.source,
"info": inform_obj.info,
"source": inform_obj.source,
"info": inform_obj.content,
} for inform_obj in inform_obj_list]
except Exception as e:
......@@ -222,15 +228,14 @@ def information_detail():
else: # 最新一条
inform_obj = InvestmentInformation.query.order_by(
InvestmentInformation.id.desc()
).all()[0]
).all()[-1]
data = {
"name": inform_obj.name,
"time": inform_obj.time,
"source": inform_obj.source,
"info": inform_obj.info,
"info": inform_obj.content,
}
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.SESSIONERR, msg="查询出错!")
......@@ -250,7 +255,7 @@ def company_list():
company_count = Company.query.count()
data = [{
"id": company_obj.id,
"name": company_obj.name
"name": company_obj.company_name
} for company_obj in company_obj_list]
except Exception as e:
......@@ -304,68 +309,70 @@ def company_detail():
return jsonify(code=RET.OK, data=data, msg='数据查询成功!')
# 地块详情
@api_xiaocx.route('/ZaitiDetail', methods=['POST'])
# @login_required
def zaiti_detail():
req_dict = request.get_json()
flag = req_dict.get("flag") # 1地块,2楼宇,3厂房,4园区, 5项目
_id = req_dict.get("id")
try:
if flag == 1:
land_obj = ZaitiLand.query.get(_id)
data = {
"name": land_obj.name,
"lng": land_obj.lng,
"lat": land_obj.lat,
"district": land_obj.district,
"location": land_obj.location,
"nature": land_obj.nature,
"plot_ratio": land_obj.plot_ratio,
"develop_degree": land_obj.develop_degree,
"linkman": land_obj.linkman,
"telephone": land_obj.telephone
}
if flag == 2:
build_obj = ZaitiBuild.query.get(_id)
data = {
"name": build_obj.name,
"lng": build_obj.lng,
"lat": build_obj.lat,
"district": build_obj.district,
"address": build_obj.address,
"build_area": build_obj.build_area,
"attract_industry": build_obj.attract_industry,
"rent": build_obj.rent,
"linkman": build_obj.linkman,
"telephone": build_obj.telephone
}
if flag == 3:
factory_obj = ZaitiFactory.query.get(_id)
data = {
"name": factory_obj.name,
"lng": factory_obj.lng,
"lat": factory_obj.lat,
"district": factory_obj.district,
"address": factory_obj.address,
"land_area": factory_obj.land_area,
"build_area": factory_obj.build_area,
"empty_area": factory_obj.empty_area,
"factory_structure": factory_obj.factory_structure,
"width": factory_obj.width,
"high": factory_obj.high,
"attract_industry": factory_obj.attract_industry,
"rent": factory_obj.rent,
"linkman": factory_obj.linkman,
"telephone": factory_obj.telephone
}
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.SESSIONERR, msg="查询出错!")
return jsonify(code=RET.OK, data=data, msg='数据查询成功!')
# 详情
# @api_xiaocx.route('/ZaitiDetail', methods=['POST'])
# # @login_required
# def zaiti_detail():
# req_dict = request.get_json()
# flag = req_dict.get("flag") # 1地块,2楼宇,3厂房,4园区, 5项目
# _id = req_dict.get("id")
#
# try:
# if flag == 1:
# land_obj = CarrierLand.query.get(_id)
# data = {
# "name": land_obj.name,
# "lng": land_obj.lng,
# "lat": land_obj.lat,
# "district": land_obj.district,
# "location": land_obj.location,
# "nature": land_obj.nature,
# "plot_ratio": land_obj.plot_ratio,
# "develop_degree": land_obj.develop_degree,
# "linkman": land_obj.linkman,
# "telephone": land_obj.telephone
# }
#
# if flag == 2:
# build_obj = ZaitiBuild.query.get(_id)
# data = {
# "name": build_obj.name,
# "lng": build_obj.lng,
# "lat": build_obj.lat,
# "district": build_obj.district,
# "address": build_obj.address,
# "build_area": build_obj.build_area,
# "attract_industry": build_obj.attract_industry,
# "rent": build_obj.rent,
# "linkman": build_obj.linkman,
# "telephone": build_obj.telephone
# }
#
# if flag == 3:
# factory_obj = ZaitiFactory.query.get(_id)
# data = {
# "name": factory_obj.name,
# "lng": factory_obj.lng,
# "lat": factory_obj.lat,
# "district": factory_obj.district,
# "address": factory_obj.address,
# "land_area": factory_obj.land_area,
# "build_area": factory_obj.build_area,
# "empty_area": factory_obj.empty_area,
# "factory_structure": factory_obj.factory_structure,
# "width": factory_obj.width,
# "high": factory_obj.high,
# "attract_industry": factory_obj.attract_industry,
# "rent": factory_obj.rent,
# "linkman": factory_obj.linkman,
# "telephone": factory_obj.telephone
# }
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.SESSIONERR, msg="查询出错!")
# return jsonify(code=RET.OK, data=data, msg='数据查询成功!')
""""""
# 投资咨询
......@@ -380,6 +387,8 @@ def consultation():
investment_volume = req_dict.get("investment_volume")
basic_information = req_dict.get("basic_information")
land_area = req_dict.get("land_area")
linkman = req_dict.get("linkman")
link_mobile = req_dict.get("link_mobile")
try:
cons_obj = CustomerConsultation()
......@@ -390,6 +399,8 @@ def consultation():
cons_obj.investment_volume = investment_volume
cons_obj.basic_information = basic_information
cons_obj.land_area = land_area
cons_obj.linkman = linkman
cons_obj.link_mobile = link_mobile
cons_obj.flag = 0
db.session.add(cons_obj)
db.session.commit()
......@@ -399,10 +410,10 @@ def consultation():
return jsonify(code=RET.OK, msg='保存成功!')
# 投资咨询信息展示
@api_xiaocx.route('/GetConsultation', methods=['POST'])
# 投资咨询信息列表
@api_xiaocx.route('/ConsultationList', methods=['POST'])
# @login_required
def get_consultation():
def consultation_list():
req_dict = request.get_json()
page = req_dict.get("page")
perpage = req_dict.get("perpage")
......@@ -417,6 +428,8 @@ def get_consultation():
"investment_volume": cons_obj.investment_volume,
"basic_information": cons_obj.basic_information,
"land_area": cons_obj.land_area,
"linkman": cons_obj.linkman,
"link_mobile": cons_obj.link_mobile,
"flag": cons_obj.flag,
"reply_content": cons_obj.reply_content,
} for cons_obj in cons_obj_list]
......@@ -427,6 +440,33 @@ def get_consultation():
return jsonify(code=RET.OK, data={"data": data, "size": cons_count}, msg='查询成功!')
# 投资咨询详情
@api_xiaocx.route('/ConsultationDetail', methods=['POST'])
# @login_required
def consultation_detail():
req_dict = request.get_json()
_id = req_dict.get("id")
try:
cons_obj = CustomerConsultation.query.get(_id)
data = {
"project_name": cons_obj.project_name,
"investor": cons_obj.investor,
"investor_place": cons_obj.investor_place,
"project_type": cons_obj.project_type,
"investment_volume": cons_obj.investment_volume,
"basic_information": cons_obj.basic_information,
"land_area": cons_obj.land_area,
"linkman": cons_obj.linkman,
"link_mobile": cons_obj.link_mobile,
"flag": cons_obj.flag,
"reply_content": cons_obj.reply_content
}
except Enterprise as e:
current_app.logger.error(e)
return jsonify(code=RET.SESSIONERR, msg="查询出错!")
return jsonify(code=RET.OK, data=data, msg='查询成功!')
# 回复投资咨询
@api_xiaocx.route('/ReplyConsultation', methods=['POST'])
# @login_required
......@@ -444,3 +484,157 @@ def reply_consultation():
return jsonify(code=RET.SESSIONERR, msg="回复信息保存出错!")
return jsonify(code=RET.OK, msg='回复信息保存成功。')
# 收藏载体
@api_xiaocx.route('/CollectionCarrier', methods=['POST'])
# @login_required
def collection_carrier():
req_dict = request.get_json()
_id = req_dict.get("id")
flag = req_dict.get("flag") # 1地块,2楼宇,3厂房,4园区,5项目,6企业
token = request.headers["token"]
user_obj = verify_token(token)
if flag == 1:
user_obj.carrier_land.append(_id)
elif flag == 2:
user_obj.carrier_build.append(_id)
elif flag == 3:
user_obj.carrier_factory.append(_id)
elif flag == 4:
user_obj.carrier_factory.append(_id)
elif flag == 5:
user_obj.carrier_build.append(_id)
elif flag == 6:
user_obj.carrier_build.append(_id)
else:
pass
# 微信授权
@api_xiaocx.route("/WeChatLogin", methods=["POST"])
def wechat_login():
'''
用户验证码登录,用户存在,直接登陆,不存在就后台注册
:return:
'''
# 参数获取与校验
req_dict = request.get_json()
code = req_dict.get('code') # 微信登录code
# 校验参数完整性
if not all([code]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
app_id = 'wx1c081c352a9de7d9'
app_secret = '5d0976f00a0f068deffa40d6a9383655'
# url = u'https://api.weixin.qq.com/sns/oauth2/access_token'
url = u'https://api.weixin.qq.com/sns/jscode2session'
params = {
'appid': app_id,
'secret': app_secret,
'js_code': code,
'grant_type': 'authorization_code'
}
res = requests.get(url, params=params).json()
# user_info_url = u'https://api.weixin.qq.com/sns/userinfo'
# params1 = {
# 'access_token': res.get("access_token"),
# 'openid': res.get("openid")
# }
# uinfo = requests.get(user_info_url, params=params1).json()
try:
openid = res["openid"]
unionid = res["unionid"]
except:
return None
try:
user = User.query.filter_by(vxopenid=openid, vxunionid=unionid).first()
if user:
# 若成功保存登录状态
token = create_token(user.id)
return jsonify(code=RET.OK, msg="登录成功", data={"token": token, "flag": user.flag})
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="appid,secreat异常")
time = datetime.now()
current_app.logger.error(
'++++++++++++++++++++++++++++登录日志>>>{}:{}通过使用微信登录成功了!+++++++++++++++++++++++=++'.format(time, user))
# return jsonify(code=RET.USERERR, msg="授权成功", user_info=uinfo)
return jsonify(code=RET.USERERR, msg="授权成功")
# vx登陆后绑定手机号
# @api_xiaocx.route("/BindMobile", methods=["POST"])
# def bind_mobile():
# '''
# 绑定已有账号
# :return:
# '''
# req_dict = request.get_json()
# openid = req_dict.get("openid") # vxopenid
# unionid = req_dict.get("unionid") # vxunionid
# mobile = req_dict.get('mobile') # 手机号
# sms_code = req_dict.get("sms_code") # 验证码
#
# # 校验参数完整性
# if not all([openid, unionid, mobile, sms_code]):
# 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()
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="redis数据库异常")
#
# # 获取用户
# try:
# user = User.query.filter_by(mobile=mobile).first()
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="获取用户信息失败")
#
# # 判断用户填写短信验证码是否一致
# if real_sms_code != sms_code:
# return jsonify(code=RET.DATAERR, msg="短信验证码错误")
# # 删除redis中的短信验证码,防止重复校验
# try:
# redis_store.delete("sms_code_{}".format(mobile))
# except Exception as e:
# current_app.logger.error(e)
#
# try:
# if user:
# user.vxopenid = openid
# user.vxunionid = unionid
# db.session.commit()
# if user.status != 1:
# jsonify(code=RET.OK, msg="绑定成功,当前用户被禁止登录,请联系管理员")
# else:
# user = User(name=mobile, mobile=mobile, vxopenid=openid, vxunionid=unionid, flag=1, status=1)
# # user.password = password
# db.session.add(user)
# db.session.commit()
# except Exception as e:
# # 表示操作失败,回滚数据库操作
# db.session.rollback()
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库异常")
#
# # 若成功保存登录状态
# token = create_token(user.id)
# return jsonify(code=RET.OK, msg="绑定成功,登录成功", data={"token": token, "flag": user.flag})
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment