Commit af71c51a by dong

fix20221229

parent 21c6e641
......@@ -1673,7 +1673,7 @@ def add_edit_money_arrive():
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库异常,新增失败!")
if not money_arrive_list:
return jsonify(code=RET.NODATA, msg='无有效数据!')
return jsonify(code=RET.DBERR, msg='无有效数据!')
return jsonify(code=RET.OK, msg='新增成功!')
......
......@@ -149,6 +149,7 @@ def get_data4(district_li, current_year):
for district in district_li:
project_obj = MoneyArrive.query.filter(
MoneyArrive.data_time.like('%{}%'.format(str(current_year))),
MoneyArrive.is_delete == 0,
MoneyArrive.district_name.like('%{}%'.format(str(district))) if district != '全市' else text('')
).first()
if not project_obj:
......@@ -551,6 +552,7 @@ def export_jc_data1(data_time, path, pro_path):
# 固定资产投资项目资金到位额(亿元)
project_obj = MoneyArrive.query.filter(
MoneyArrive.data_time == data_time,
MoneyArrive.is_delete == 0,
MoneyArrive.district_name.like('%{}%'.format(str(district))) if district != '全市' else text('')
).first()
if not project_obj:
......@@ -1302,12 +1304,13 @@ def get_data():
# 区县
data.update({"district": district})
# 固定资产投资项目资金到位额(亿元)
money_obj_li = MoneyArrive.query.all()
money_obj_li = MoneyArrive.query.filter_by(is_delete=0).all()
max_id = max([money_obj.id for money_obj in money_obj_li])
data_time_obj = MoneyArrive.query.get(max_id)
data_time = data_time_obj.data_time
project_obj = MoneyArrive.query.filter(
MoneyArrive.data_time == data_time,
MoneyArrive.is_delete == 0,
MoneyArrive.district_name.like('%{}%'.format(str(district))) if district != '全市' else text('')
).first()
if not project_obj:
......
import re
from flask import request, jsonify, current_app
from apps.manage import api_power
from apps.models import *
from apps.util import login_required, verify_btoken
from apps.utils.response_code import RET
# 新增角色
@api_power.route("/addRole", methods=["POST"])
@login_required
def add_role():
token = request.headers["token"]
user = verify_btoken(token)
user_role = user.role # 用户角色
if user_role != 1:
return jsonify(code=RET.ROLEERR, msg="暂无权限")
req_dict = request.get_json()
role_name = req_dict.get("role_name") # 职位名称(角色)
rolev = req_dict.get("rolev") # 权值 0层级123, 1调度,2审核,3删除,4审核/上报,5新增/编辑 ,300001"
info = req_dict.get("info") # 职位功能(角色)
# 校验参数完整性
if not all([role_name, rolev, info]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
role = Role.query.filter_by(role_name=role_name).first()
if role:
return jsonify(code=RET.DATAEXIST, msg="角色名已存在")
role = Role.query.filter_by(role=rolev).first()
if role:
return jsonify(code=RET.DATAEXIST, msg="权限配置已存在,角色:{}".format(role.role_name))
role = Role(role_name=role_name, role=rolev, info=info)
db.session.add(role)
db.session.commit()
return jsonify(code=RET.OK, msg="添加成功")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 获取角色列表
@api_power.route("/roles", methods=["GET"])
@login_required
def roles():
try:
roles = Role.query.all()
data = [{"id": role.id,
"name": role.role_name,
"rolev": role.role,
"info": role.info} for role in roles]
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 获取角色信息
@api_power.route("/getRole", methods=["POST"])
@login_required
def roleinfo():
req_dict = request.get_json()
_id = req_dict.get("id") # 角色id
# 校验参数完整性
if not all([_id]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
role = Role.query.get(_id)
data = {"id": role.id,
"name": role.role_name,
"rolev": role.role,
"info": role.info}
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 角色编辑
@api_power.route("/updateRole", methods=["POST"])
@login_required
def update_role():
token = request.headers["token"]
user = verify_btoken(token)
user_role = user.role # 用户角色
if user_role != 1:
return jsonify(code=RET.ROLEERR, msg="暂无权限")
req_dict = request.get_json()
_id = req_dict.get("id") # 角色id
role_name = req_dict.get("role_name") # 职位名称(角色)
rolev = req_dict.get("rolev") # 权值 1调度,2审核,3删除,4审核/上报,5新增/编辑 "00001"
info = req_dict.get("info") # 职位功能(角色)
# 校验参数完整性
if not all([_id, role_name, rolev, info]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
me = Role.query.get(_id)
if me.role_name != role_name:
role = Role.query.filter_by(role_name=role_name).first()
if role:
return jsonify(code=RET.DATAEXIST, msg="角色名已存在")
if me.role != rolev:
role = Role.query.filter_by(role=rolev).first()
if role:
return jsonify(code=RET.DATAEXIST, msg="权限配置已存在,角色:{}".format(role.role_name))
me.role_name = role_name
me.role = rolev
me.info = info
db.session.commit()
return jsonify(code=RET.OK, msg="添加成功")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 删除角色
@api_power.route("/deleteRole", methods=["POST"])
@login_required
def delete_role():
token = request.headers["token"]
user = verify_btoken(token)
user_role = user.role # 用户角色
if user_role != 1:
return jsonify(code=RET.ROLEERR, msg="暂无权限")
req_dict = request.get_json()
_id = req_dict.get("id") # 角色id
# 校验参数完整性
if not all([_id]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
me = Role.query.get(_id)
if len(me.users) != 0:
return jsonify(code=RET.DATAEXIST, msg="当前角色存在用户使用,请查证并清除后再操作")
db.session.delete(me)
db.session.commit()
return jsonify(code=RET.OK, msg="删除成功")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 新添管理员账号
@api_power.route("/addManager", methods=["POST"])
@login_required
def add_manager():
token = request.headers["token"]
user = verify_btoken(token)
user_role = user.role # 用户角色
if user_role != 1:
return jsonify(code=RET.ROLEERR, msg="暂无权限")
req_dict = request.get_json()
account = req_dict.get("account") # 账户
password = req_dict.get("password") # 密码
role = req_dict.get("role") # 角色 1超级管理员,2系统运维员
# 校验参数完整性
if not all([account, password, role]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
# 用户名唯一(字母开头,长度4-15)
try:
patten = "^[a-zA-Z][\w]*[\w]*$"
if re.match(patten, account) and re.match(patten, account).string == account:
user = Bstage.query.filter_by(name=account).first()
if user:
return jsonify(code=RET.DATAEXIST, msg="用户名已存在")
else:
return jsonify(code=RET.DATAERR, msg="用户名格式错误1")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="用户名格式错误2")
try:
me = Bstage(name=account, role=role)
me.password = password
db.session.add(me)
db.session.commit()
return jsonify(code=RET.OK, msg="添加成功")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库操作错误")
# import re
# from flask import request, jsonify, current_app
# from apps.manage import api_power
# from apps.models import *
# from apps.util import login_required, verify_btoken
# from apps.utils.response_code import RET
#
#
# # 新增角色
# @api_power.route("/addRole", methods=["POST"])
# @login_required
# def add_role():
# token = request.headers["token"]
# user = verify_btoken(token)
# user_role = user.role # 用户角色
# if user_role != 1:
# return jsonify(code=RET.ROLEERR, msg="暂无权限")
# req_dict = request.get_json()
# role_name = req_dict.get("role_name") # 职位名称(角色)
# rolev = req_dict.get("rolev") # 权值 0层级123, 1调度,2审核,3删除,4审核/上报,5新增/编辑 ,300001"
# info = req_dict.get("info") # 职位功能(角色)
#
# # 校验参数完整性
# if not all([role_name, rolev, info]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
#
# try:
# role = Role.query.filter_by(role_name=role_name).first()
# if role:
# return jsonify(code=RET.DATAEXIST, msg="角色名已存在")
# role = Role.query.filter_by(role=rolev).first()
# if role:
# return jsonify(code=RET.DATAEXIST, msg="权限配置已存在,角色:{}".format(role.role_name))
#
# role = Role(role_name=role_name, role=rolev, info=info)
# db.session.add(role)
# db.session.commit()
# return jsonify(code=RET.OK, msg="添加成功")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库查询错误")
#
#
# # 获取角色列表
# @api_power.route("/roles", methods=["GET"])
# @login_required
# def roles():
# try:
# roles = Role.query.all()
# data = [{"id": role.id,
# "name": role.role_name,
# "rolev": role.role,
# "info": role.info} for role in roles]
#
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库查询错误")
#
#
# # 获取角色信息
# @api_power.route("/getRole", methods=["POST"])
# @login_required
# def roleinfo():
# req_dict = request.get_json()
# _id = req_dict.get("id") # 角色id
# # 校验参数完整性
# if not all([_id]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
# try:
# role = Role.query.get(_id)
# data = {"id": role.id,
# "name": role.role_name,
# "rolev": role.role,
# "info": role.info}
#
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库查询错误")
#
#
# # 角色编辑
# @api_power.route("/updateRole", methods=["POST"])
# @login_required
# def update_role():
# token = request.headers["token"]
# user = verify_btoken(token)
# user_role = user.role # 用户角色
# if user_role != 1:
# return jsonify(code=RET.ROLEERR, msg="暂无权限")
#
# req_dict = request.get_json()
# _id = req_dict.get("id") # 角色id
# role_name = req_dict.get("role_name") # 职位名称(角色)
# rolev = req_dict.get("rolev") # 权值 1调度,2审核,3删除,4审核/上报,5新增/编辑 "00001"
# info = req_dict.get("info") # 职位功能(角色)
#
# # 校验参数完整性
# if not all([_id, role_name, rolev, info]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
#
# try:
# me = Role.query.get(_id)
# if me.role_name != role_name:
# role = Role.query.filter_by(role_name=role_name).first()
# if role:
# return jsonify(code=RET.DATAEXIST, msg="角色名已存在")
# if me.role != rolev:
# role = Role.query.filter_by(role=rolev).first()
# if role:
# return jsonify(code=RET.DATAEXIST, msg="权限配置已存在,角色:{}".format(role.role_name))
# me.role_name = role_name
# me.role = rolev
# me.info = info
# db.session.commit()
# return jsonify(code=RET.OK, msg="添加成功")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库查询错误")
#
#
# # 删除角色
# @api_power.route("/deleteRole", methods=["POST"])
# @login_required
# def delete_role():
# token = request.headers["token"]
# user = verify_btoken(token)
# user_role = user.role # 用户角色
# if user_role != 1:
# return jsonify(code=RET.ROLEERR, msg="暂无权限")
#
# req_dict = request.get_json()
# _id = req_dict.get("id") # 角色id
#
# # 校验参数完整性
# if not all([_id]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
#
# try:
# me = Role.query.get(_id)
# if len(me.users) != 0:
# return jsonify(code=RET.DATAEXIST, msg="当前角色存在用户使用,请查证并清除后再操作")
# db.session.delete(me)
# db.session.commit()
# return jsonify(code=RET.OK, msg="删除成功")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库查询错误")
#
#
# # 新添管理员账号
# @api_power.route("/addManager", methods=["POST"])
# @login_required
# def add_manager():
# token = request.headers["token"]
# user = verify_btoken(token)
# user_role = user.role # 用户角色
# if user_role != 1:
# return jsonify(code=RET.ROLEERR, msg="暂无权限")
# req_dict = request.get_json()
# account = req_dict.get("account") # 账户
# password = req_dict.get("password") # 密码
# role = req_dict.get("role") # 角色 1超级管理员,2系统运维员
#
# # 校验参数完整性
# if not all([account, password, role]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
#
# # 用户名唯一(字母开头,长度4-15)
# try:
# patten = "^[a-zA-Z][\w]*[\w]*$"
# if re.match(patten, account) and re.match(patten, account).string == account:
# user = Bstage.query.filter_by(name=account).first()
# if user:
# return jsonify(code=RET.DATAEXIST, msg="用户名已存在")
# else:
# return jsonify(code=RET.DATAERR, msg="用户名格式错误1")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="用户名格式错误2")
#
# try:
# me = Bstage(name=account, role=role)
# me.password = password
# db.session.add(me)
# db.session.commit()
# return jsonify(code=RET.OK, msg="添加成功")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库操作错误")
from flask import current_app, request, jsonify
from apps.manage import api_power
from apps.models import *
from apps.util import login_required, verify_btoken
from apps.utils.response_code import RET
# 导航目录列表
@api_power.route('/listField', methods=['GET'])
@login_required
def list_fields():
'''导航目录列表'''
try:
field = Industry.query.all()
data = [{"id": i.id,
"name": i.name,
"statu": i.statu, # 启用状态1启用,2禁用
"cate": "一级产业" if i.fid == 0 else "二级产业"} for i in field]
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据异常")
return jsonify(code=RET.OK, msg="获取成功", data=data)
# 导航信息编辑
@api_power.route('/modifyFields', methods=['POST'])
@login_required
def modify_fields():
'''导航信息修改'''
token = request.headers["token"]
user = verify_btoken(token)
user_role = user.role # 用户角色
if user_role != 1:
return jsonify(code=RET.ROLEERR, msg="暂无权限")
req_dict = request.get_json()
_id = req_dict.get('id') # 行业id
name = req_dict.get("newname") # 行业新名字
try:
field = Industry.query.get(_id)
field.name = name
db.session.commit()
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据异常")
return jsonify(code=RET.OK, msg="修改成功")
# 导航状态修改
@api_power.route('/fieldStatu', methods=['POST'])
@login_required
def field_statu():
'''导航信息修改'''
token = request.headers["token"]
user = verify_btoken(token)
user_role = user.role # 用户角色
if user_role != 1:
return jsonify(code=RET.ROLEERR, msg="暂无权限")
req_dict = request.get_json()
_id = req_dict.get('id') # 行业id
statu = req_dict.get("statu") # 状态值1启用,2禁用
try:
field = Industry.query.get(_id)
if statu == 1:
field.statu = 2
else:
field.statu = 1
db.session.commit()
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据异常")
return jsonify(code=RET.OK, msg="修改成功")
'''导航一'''
# 产业发展图谱目录列表
@api_power.route('/listPropertyty', methods=['GET'])
@login_required
def list_propertyty():
'''产业发展图谱目录列表'''
try:
field = Propertyty.query.all()
data = [{"id": i.id,
"name": i.name,
"statu": i.statu, # 状态 1启动,2禁用
"cate": "企业类型" if i.sid == 1 else "企业资质" if i.sid == 2 else "上市状态" if i.sid == 3
else "融资轮次"} for i in field]
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据异常")
return jsonify(code=RET.OK, msg="获取成功", data=data)
# 产业发展图谱目录信息编辑
@api_power.route('/modifyPropertyty', methods=['POST'])
@login_required
def modify_propertyty():
'''产业发展图谱目录信息编辑'''
token = request.headers["token"]
user = verify_btoken(token)
user_role = user.role # 用户角色
if user_role != 1:
return jsonify(code=RET.ROLEERR, msg="暂无权限")
req_dict = request.get_json()
_id = req_dict.get('id') # 行业id
name = req_dict.get("newname") # 行业新名字
try:
propertyty = Propertyty.query.get(_id)
propertyty.name = name
db.session.commit()
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据异常")
return jsonify(code=RET.OK, msg="修改成功")
# 产业发展图谱导航状态修改
@api_power.route('/propertytyStatu', methods=['POST'])
@login_required
def propertyty_statu():
'''产业发展图谱导航状态修改'''
token = request.headers["token"]
user = verify_btoken(token)
user_role = user.role # 用户角色
if user_role != 1:
return jsonify(code=RET.ROLEERR, msg="暂无权限")
req_dict = request.get_json()
_id = req_dict.get('id') # 行业id
statu = req_dict.get("statu") # 状态值1启用,2禁用
try:
propertyty = Propertyty.query.get(_id)
if statu == 1:
propertyty.statu = 2
else:
propertyty.statu = 1
db.session.commit()
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据异常")
return jsonify(code=RET.OK, msg="修改成功")
'''导航二'''
# 产业招商地图360企业画像目录列表
@api_power.route('/listProperty', methods=['GET'])
@login_required
def list_property():
'''产业发展图谱目录列表'''
try:
propert = Property.query.all()
data = [{"id": i.id,
"name": i.name,
"statu": i.statu, # 状态 1启动,2禁用
"cate": "企业类型" if i.sid == 1 else "企业资质" if i.sid == 2 else "上市状态" if i.sid == 3
else "融资轮次"} for i in propert]
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据异常")
return jsonify(code=RET.OK, msg="获取成功", data=data)
# 产业招商地图360企业画像目录信息编辑
@api_power.route('/modifyProperty', methods=['POST'])
@login_required
def modify_property():
'''产业招商地图360企业画像目录信息编辑'''
token = request.headers["token"]
user = verify_btoken(token)
user_role = user.role # 用户角色
if user_role != 1:
return jsonify(code=RET.ROLEERR, msg="暂无权限")
req_dict = request.get_json()
_id = req_dict.get('id') # 行业id
name = req_dict.get("newname") # 行业新名字
try:
propert = Property.query.get(_id)
propert.name = name
db.session.commit()
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据异常")
return jsonify(code=RET.OK, msg="修改成功")
# 产业招商地图360企业画像目录状态修改
@api_power.route('/propertyStatu', methods=['POST'])
@login_required
def property_statu():
'''产业招商地图360企业画像目录状态修改'''
token = request.headers["token"]
user = verify_btoken(token)
user_role = user.role # 用户角色
if user_role != 1:
return jsonify(code=RET.ROLEERR, msg="暂无权限")
req_dict = request.get_json()
_id = req_dict.get('id') # 行业id
statu = req_dict.get("statu") # 状态值1启用,2禁用
try:
propert = Property.query.get(_id)
if statu == 1:
propert.statu = 2
else:
propert.statu = 1
db.session.commit()
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据异常")
return jsonify(code=RET.OK, msg="修改成功")
'''导航三'''
# 招商资源管理目录列表
@api_power.route('/listAttract', methods=['GET'])
@login_required
def list_atract():
'''招商资源管理目录列表'''
try:
attract = Attract.query.all()
data = [{"id": i.id,
"name": i.name,
"statu": i.statu, # 状态 1启动,2禁用
"cate": "行业选择" if i.sid == 1 else "项目阶段" if i.sid == 2 else "项目级别"} for i in attract]
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据异常")
return jsonify(code=RET.OK, msg="获取成功", data=data)
# 招商资源管理目录信息编辑
@api_power.route('/modifyAttract', methods=['POST'])
@login_required
def modify_attract():
'''招商资源管理目录信息编辑'''
token = request.headers["token"]
user = verify_btoken(token)
user_role = user.role # 用户角色
if user_role != 1:
return jsonify(code=RET.ROLEERR, msg="暂无权限")
req_dict = request.get_json()
_id = req_dict.get('id') # 行业id
name = req_dict.get("newname") # 行业新名字
try:
attract = Attract.query.get(_id)
attract.name = name
db.session.commit()
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据异常")
return jsonify(code=RET.OK, msg="修改成功")
# 招商资源管理目录状态修改
@api_power.route('/attractStatu', methods=['POST'])
@login_required
def attract_statu():
'''产业发展图谱导航状态修改'''
token = request.headers["token"]
user = verify_btoken(token)
user_role = user.role # 用户角色
if user_role != 1:
return jsonify(code=RET.ROLEERR, msg="暂无权限")
req_dict = request.get_json()
_id = req_dict.get('id') # 行业id
statu = req_dict.get("statu") # 状态值1启用,2禁用
try:
attract = Attract.query.get(_id)
if statu == 1:
attract.statu = 2
else:
attract.statu = 1
db.session.commit()
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据异常")
return jsonify(code=RET.OK, msg="修改成功")
'''导航四'''
# 园区信息目录列表
@api_power.route('/listZone', methods=['GET'])
@login_required
def list_zone():
'''招商资源管理目录列表'''
try:
zone = Zone.query.all()
data = [{"id": i.id,
"name": i.name,
"statu": i.statu, # 状态 1启动,2禁用
"cate": "园区类别" if i.sid == 1 else "园区级别"} for i in zone]
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据异常")
return jsonify(code=RET.OK, msg="获取成功", data=data)
# 园区信息目录信息编辑
@api_power.route('/modifyZone', methods=['POST'])
@login_required
def modify_zone():
'''园区信息目录信息编辑'''
token = request.headers["token"]
user = verify_btoken(token)
user_role = user.role # 用户角色
if user_role != 1:
return jsonify(code=RET.ROLEERR, msg="暂无权限")
req_dict = request.get_json()
_id = req_dict.get('id') # 行业id
name = req_dict.get("newname") # 行业新名字
try:
zone = Zone.query.get(_id)
zone.name = name
db.session.commit()
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据异常")
return jsonify(code=RET.OK, msg="修改成功")
# 园区信息目录状态修改
@api_power.route('/zoneStatu', methods=['POST'])
@login_required
def zone_statu():
'''园区信息目录状态修改'''
token = request.headers["token"]
user = verify_btoken(token)
user_role = user.role # 用户角色
if user_role != 1:
return jsonify(code=RET.ROLEERR, msg="暂无权限")
req_dict = request.get_json()
_id = req_dict.get('id') # 行业id
statu = req_dict.get("statu") # 状态值1启用,2禁用
try:
zone = Zone.query.get(_id)
if statu == 1:
zone.statu = 2
else:
zone.statu = 1
db.session.commit()
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据异常")
return jsonify(code=RET.OK, msg="修改成功")
# from flask import current_app, request, jsonify
# from apps.manage import api_power
# from apps.models import *
# from apps.util import login_required, verify_btoken
# from apps.utils.response_code import RET
#
#
# # 导航目录列表
# @api_power.route('/listField', methods=['GET'])
# @login_required
# def list_fields():
# '''导航目录列表'''
# try:
# field = Industry.query.all()
# data = [{"id": i.id,
# "name": i.name,
# "statu": i.statu, # 启用状态1启用,2禁用
# "cate": "一级产业" if i.fid == 0 else "二级产业"} for i in field]
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据异常")
#
# return jsonify(code=RET.OK, msg="获取成功", data=data)
#
#
# # 导航信息编辑
# @api_power.route('/modifyFields', methods=['POST'])
# @login_required
# def modify_fields():
# '''导航信息修改'''
# token = request.headers["token"]
# user = verify_btoken(token)
# user_role = user.role # 用户角色
# if user_role != 1:
# return jsonify(code=RET.ROLEERR, msg="暂无权限")
#
# req_dict = request.get_json()
# _id = req_dict.get('id') # 行业id
# name = req_dict.get("newname") # 行业新名字
#
# try:
# field = Industry.query.get(_id)
# field.name = name
# db.session.commit()
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据异常")
#
# return jsonify(code=RET.OK, msg="修改成功")
#
#
# # 导航状态修改
# @api_power.route('/fieldStatu', methods=['POST'])
# @login_required
# def field_statu():
# '''导航信息修改'''
# token = request.headers["token"]
# user = verify_btoken(token)
# user_role = user.role # 用户角色
# if user_role != 1:
# return jsonify(code=RET.ROLEERR, msg="暂无权限")
#
# req_dict = request.get_json()
# _id = req_dict.get('id') # 行业id
# statu = req_dict.get("statu") # 状态值1启用,2禁用
#
# try:
# field = Industry.query.get(_id)
# if statu == 1:
# field.statu = 2
# else:
# field.statu = 1
# db.session.commit()
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据异常")
#
# return jsonify(code=RET.OK, msg="修改成功")
#
#
# '''导航一'''
#
#
# # 产业发展图谱目录列表
# @api_power.route('/listPropertyty', methods=['GET'])
# @login_required
# def list_propertyty():
# '''产业发展图谱目录列表'''
# try:
# field = Propertyty.query.all()
# data = [{"id": i.id,
# "name": i.name,
# "statu": i.statu, # 状态 1启动,2禁用
# "cate": "企业类型" if i.sid == 1 else "企业资质" if i.sid == 2 else "上市状态" if i.sid == 3
# else "融资轮次"} for i in field]
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据异常")
#
# return jsonify(code=RET.OK, msg="获取成功", data=data)
#
#
# # 产业发展图谱目录信息编辑
# @api_power.route('/modifyPropertyty', methods=['POST'])
# @login_required
# def modify_propertyty():
# '''产业发展图谱目录信息编辑'''
# token = request.headers["token"]
# user = verify_btoken(token)
# user_role = user.role # 用户角色
# if user_role != 1:
# return jsonify(code=RET.ROLEERR, msg="暂无权限")
#
# req_dict = request.get_json()
# _id = req_dict.get('id') # 行业id
# name = req_dict.get("newname") # 行业新名字
#
# try:
# propertyty = Propertyty.query.get(_id)
# propertyty.name = name
# db.session.commit()
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据异常")
#
# return jsonify(code=RET.OK, msg="修改成功")
#
#
# # 产业发展图谱导航状态修改
# @api_power.route('/propertytyStatu', methods=['POST'])
# @login_required
# def propertyty_statu():
# '''产业发展图谱导航状态修改'''
# token = request.headers["token"]
# user = verify_btoken(token)
# user_role = user.role # 用户角色
# if user_role != 1:
# return jsonify(code=RET.ROLEERR, msg="暂无权限")
# req_dict = request.get_json()
# _id = req_dict.get('id') # 行业id
# statu = req_dict.get("statu") # 状态值1启用,2禁用
#
# try:
# propertyty = Propertyty.query.get(_id)
# if statu == 1:
# propertyty.statu = 2
# else:
# propertyty.statu = 1
# db.session.commit()
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据异常")
#
# return jsonify(code=RET.OK, msg="修改成功")
#
#
# '''导航二'''
#
#
# # 产业招商地图360企业画像目录列表
# @api_power.route('/listProperty', methods=['GET'])
# @login_required
# def list_property():
# '''产业发展图谱目录列表'''
# try:
# propert = Property.query.all()
# data = [{"id": i.id,
# "name": i.name,
# "statu": i.statu, # 状态 1启动,2禁用
# "cate": "企业类型" if i.sid == 1 else "企业资质" if i.sid == 2 else "上市状态" if i.sid == 3
# else "融资轮次"} for i in propert]
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据异常")
#
# return jsonify(code=RET.OK, msg="获取成功", data=data)
#
#
# # 产业招商地图360企业画像目录信息编辑
# @api_power.route('/modifyProperty', methods=['POST'])
# @login_required
# def modify_property():
# '''产业招商地图360企业画像目录信息编辑'''
# token = request.headers["token"]
# user = verify_btoken(token)
# user_role = user.role # 用户角色
# if user_role != 1:
# return jsonify(code=RET.ROLEERR, msg="暂无权限")
#
# req_dict = request.get_json()
# _id = req_dict.get('id') # 行业id
# name = req_dict.get("newname") # 行业新名字
#
# try:
# propert = Property.query.get(_id)
# propert.name = name
# db.session.commit()
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据异常")
#
# return jsonify(code=RET.OK, msg="修改成功")
#
#
# # 产业招商地图360企业画像目录状态修改
# @api_power.route('/propertyStatu', methods=['POST'])
# @login_required
# def property_statu():
# '''产业招商地图360企业画像目录状态修改'''
# token = request.headers["token"]
# user = verify_btoken(token)
# user_role = user.role # 用户角色
# if user_role != 1:
# return jsonify(code=RET.ROLEERR, msg="暂无权限")
#
# req_dict = request.get_json()
# _id = req_dict.get('id') # 行业id
# statu = req_dict.get("statu") # 状态值1启用,2禁用
#
# try:
# propert = Property.query.get(_id)
# if statu == 1:
# propert.statu = 2
# else:
# propert.statu = 1
# db.session.commit()
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据异常")
#
# return jsonify(code=RET.OK, msg="修改成功")
#
#
# '''导航三'''
#
#
# # 招商资源管理目录列表
# @api_power.route('/listAttract', methods=['GET'])
# @login_required
# def list_atract():
# '''招商资源管理目录列表'''
# try:
# attract = Attract.query.all()
# data = [{"id": i.id,
# "name": i.name,
# "statu": i.statu, # 状态 1启动,2禁用
# "cate": "行业选择" if i.sid == 1 else "项目阶段" if i.sid == 2 else "项目级别"} for i in attract]
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据异常")
#
# return jsonify(code=RET.OK, msg="获取成功", data=data)
#
#
# # 招商资源管理目录信息编辑
# @api_power.route('/modifyAttract', methods=['POST'])
# @login_required
# def modify_attract():
# '''招商资源管理目录信息编辑'''
# token = request.headers["token"]
# user = verify_btoken(token)
# user_role = user.role # 用户角色
# if user_role != 1:
# return jsonify(code=RET.ROLEERR, msg="暂无权限")
# req_dict = request.get_json()
# _id = req_dict.get('id') # 行业id
# name = req_dict.get("newname") # 行业新名字
#
# try:
# attract = Attract.query.get(_id)
# attract.name = name
# db.session.commit()
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据异常")
#
# return jsonify(code=RET.OK, msg="修改成功")
#
#
# # 招商资源管理目录状态修改
# @api_power.route('/attractStatu', methods=['POST'])
# @login_required
# def attract_statu():
# '''产业发展图谱导航状态修改'''
# token = request.headers["token"]
# user = verify_btoken(token)
# user_role = user.role # 用户角色
# if user_role != 1:
# return jsonify(code=RET.ROLEERR, msg="暂无权限")
# req_dict = request.get_json()
# _id = req_dict.get('id') # 行业id
# statu = req_dict.get("statu") # 状态值1启用,2禁用
#
# try:
# attract = Attract.query.get(_id)
# if statu == 1:
# attract.statu = 2
# else:
# attract.statu = 1
# db.session.commit()
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据异常")
#
# return jsonify(code=RET.OK, msg="修改成功")
#
#
# '''导航四'''
#
#
# # 园区信息目录列表
# @api_power.route('/listZone', methods=['GET'])
# @login_required
# def list_zone():
# '''招商资源管理目录列表'''
# try:
# zone = Zone.query.all()
# data = [{"id": i.id,
# "name": i.name,
# "statu": i.statu, # 状态 1启动,2禁用
# "cate": "园区类别" if i.sid == 1 else "园区级别"} for i in zone]
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据异常")
#
# return jsonify(code=RET.OK, msg="获取成功", data=data)
#
#
# # 园区信息目录信息编辑
# @api_power.route('/modifyZone', methods=['POST'])
# @login_required
# def modify_zone():
# '''园区信息目录信息编辑'''
# token = request.headers["token"]
# user = verify_btoken(token)
# user_role = user.role # 用户角色
# if user_role != 1:
# return jsonify(code=RET.ROLEERR, msg="暂无权限")
# req_dict = request.get_json()
# _id = req_dict.get('id') # 行业id
# name = req_dict.get("newname") # 行业新名字
#
# try:
# zone = Zone.query.get(_id)
# zone.name = name
# db.session.commit()
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据异常")
#
# return jsonify(code=RET.OK, msg="修改成功")
#
#
# # 园区信息目录状态修改
# @api_power.route('/zoneStatu', methods=['POST'])
# @login_required
# def zone_statu():
# '''园区信息目录状态修改'''
# token = request.headers["token"]
# user = verify_btoken(token)
# user_role = user.role # 用户角色
# if user_role != 1:
# return jsonify(code=RET.ROLEERR, msg="暂无权限")
# req_dict = request.get_json()
# _id = req_dict.get('id') # 行业id
# statu = req_dict.get("statu") # 状态值1启用,2禁用
#
# try:
# zone = Zone.query.get(_id)
# if statu == 1:
# zone.statu = 2
# else:
# zone.statu = 1
# db.session.commit()
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据异常")
#
# return jsonify(code=RET.OK, msg="修改成功")
import time
from datetime import datetime
from flask import request, jsonify, current_app, g
from apps.manage import api_power
from apps.models import *
from apps.utils.response_code import RET
from apps.util import login_required, verify_token
# 新增机构组织
@api_power.route("/AddOrg", methods=["POST"])
@login_required
def add_org():
'''
不得重名
'''
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
user_name = User.query.get(id=user_id).name
req_dict = request.get_json()
org_name = req_dict.get("name") # 机构名称
# forg = req_dict.get("forg") # 上级机构 id
charge = req_dict.get("charge") # 机构负责人
charge_phone = req_dict.get("charge_phone") # 负责人电话
# sublist = req_dict.get("sublist") # 统筹机构id list["1","2"...]
# 校验参数完整性
if not all([org_name]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
gover = GovOrganization.query.filter_by(name=org_name).first()
if gover: # 机构名相同,提示其错误
return jsonify(code=RET.DBERR, msg="机构名重复")
goverment = GovOrganization(name=org_name) # 创建机构
if charge:
goverment.charge = charge
if charge_phone:
goverment.charge_phone = charge_phone
if user_name:
goverment.add_person = user_name
add_time = datetime.now()
goverment.add_time = add_time
db.session.add(goverment) # 添加到数据库
# if forg: # 如果有上级机构,就让上级机构统筹新增机构
# fgover = Government.query.get(forg)
# fgover.followed.append(goverment)
# for ctr in sublist: # 如果有统筹机构,就让新增机构统筹
# sgover = Government.query.get(ctr)
# goverment.followed.append(sgover)
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_power.route("/GetOrg", methods=["GET"])
@login_required
def get_org():
try:
org = GovOrganization.query.all()
data = [{"id": i.id, "name": i.name, "pnums": i.pnums,
"charge": i.charge, "charge_phone": i.charge_phone,
"add_person": i.add_person, "add_time": i.add_time,
"edit_person": i.edit_person, "edit_time": i.edit_time}
for i in org]
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 新增下级部门(ok)
@api_power.route("/AddSubDepartment", methods=["POST"])
@login_required
def add_sub_department():
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
user_name = User.query.get(id=user_id).name
req_dict = request.get_json()
id = req_dict.get("id") # 当前机构或者部门id
# cate = req_dict.get("cate") # 分类标识,1机构,2部门
name = req_dict.get("name") # 部门或组名称
# pnums = req_dict.get("pnums") # 人数
charge = req_dict.get("charge") # 机构负责人
charge_phone = req_dict.get("charge_phone") # 负责人电话
# 校验参数完整性
# if not all([_id, cate, name]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
if not all([id, name]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
# if cate == 1: # 增加部门
sec = GovDepartment.query.filter_by(name=name, goverment_org_id=id).first()
if sec: # 一个机构下部门名不能重复
return jsonify(code=RET.DATAERR, msg="部门名重复")
gov_organization = GovOrganization.query.get(id)
gov_department = GovDepartment(name=name, goverment_org_id=id)
# if pnums:
# gov_department.pnums = pnums
if charge:
gov_department.charge = charge
if charge_phone:
gov_department.charge_phone = charge_phone
if user_name:
gov_department.add_person = user_name
add_time = datetime.now()
gov_department.add_time = add_time
db.session.add(gov_department) # 添加部门
gov_organization.government_departments.append(gov_department) # 外键关系添加
db.session.commit() # 数据库提交
# if cate == 2: # 增加组
# gro = Group.query.filter_by(name=name, gov_department_id=_id).first()
# if gro: # 一个部门下组名不能重复
# return jsonify(code=RET.DATAERR, msg="组名重复")
# gov_department = Section.query.get(_id)
# group = Group(name=name, section_id=_id)
# if pnums:
# group.pnums = pnums
# if charge:
# group.charge = charge
# if charge_phone:
# group.charge_phone = charge_phone
# db.session.add(group) # 添加组
# section.groups.append(group) # 添加关系
# db.session.commit() # 提交
# if cate == 3:
# return jsonify(code=RET.OK, msg="暂无下级机构,请勿继续添加")
return jsonify(code=RET.OK, msg="添加成功")
except Exception as e:
# 操作失败,数据回滚
db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库操作错误")
# 获取上级或下级统筹机构 (ok)
@api_power.route("/uadOrg", methods=["GET"])
@login_required
def uad_org():
try:
gover = Government.query.all()
data = [{"label": i.name, "value": i.id} for i in gover]
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 获取上级机构后的统筹机构 (ok)
@api_power.route("/downOrg", methods=["POST"])
@login_required
def down_org():
req_dict = request.get_json()
_id = req_dict.get("id") # 机构名称
try:
if _id:
gover = Government.query.all()
data = [{"label": i.name, "value": i.id} for i in gover if i.id != _id]
return jsonify(code=RET.OK, msg="查询成功", data=data)
else:
gover = Government.query.all()
data = [{"label": i.name, "value": i.id} for i in gover]
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 组织架构管理,获取机构单位数据(ok)
@api_power.route("/organization", methods=["POST"])
@login_required
def organization():
req_dict = request.get_json()
page = req_dict.get("page")
perpage = req_dict.get("perpage")
# 校验参数完整性
if not all([page, perpage]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
# goverment = Government.query.paginate(page, perpage).items
goverment = Government.query.all()
size = Government.query.count()
df = [{"id": gover.id,
"name": gover.name,
"pnums": gover.pnums if gover.pnums else 0,
"charge": gover.charge if gover.charge else "-",
"charge_phone": gover.charge_phone if gover.charge_phone else "-",
"cate": 1} for gover in goverment]
data = {"df": df, "size": size}
return jsonify(code=RET.OK, msg="查找成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误", data=[])
# 组织架构获取部门和组(Ok)
@api_power.route("/sectionGroup", methods=["POST"])
@login_required
def section_group():
req_dict = request.get_json()
_id = req_dict.get("id") # 当前机构或者部门的id
cate = req_dict.get("cate") # 分类标识,1机构,2部门
# 校验参数完整性
if not all([_id, cate]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
if cate == 1: # 查询当前机构下的部门
goverment = Government.query.get(_id)
sections = goverment.sections # 查询当前机构下的部门list
data = [{"id": sec.id,
"name": sec.name,
"pnums": sec.pnums if sec.pnums else 0,
"charge": sec.charge if sec.charge else "-",
"charge_phone": sec.charge_phone if sec.charge_phone else "-",
"cate": 2} for sec in sections]
return jsonify(code=RET.OK, msg="查找成功", data=data)
if cate == 2: # 查询当前部门下的组
section = Section.query.get(_id)
groups = section.groups # 查询当前部门下的组list
data = [{"id": group.id,
"name": group.name,
"pnums": group.pnums if group.pnums else 0,
"charge": group.charge if group.charge else "-",
"charge_phone": group.charge_phone if group.charge_phone else "-",
"cate": 3} for group in groups]
return jsonify(code=RET.OK, msg="查找成功", data=data)
return jsonify(code=RET.OK, msg="暂无下级信息", data=[])
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误", data=[])
# 删除组织机构或者部门和组(需要先删除人员)--------OK
@api_power.route("/deleteOrg", methods=["POST"])
@login_required
def deleteorg():
req_dict = request.get_json()
_id = req_dict.get("id") # 待删除的,部门、机构、组、id
cate = req_dict.get("cate") # 待删除数据的类别 1政府,2部门,3组
# 校验参数完整性
if not all([_id, cate]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
if cate == 1: # 删除机构
gover = Government.query.get(_id) # 当前机构对象
section = gover.sections # 当前机构下的部门对象列表
if len(section) > 0: # 有部门就需要先删除部门
return jsonify(code=RET.REQERR, msg="当前机构有部门存在,请清除后再操作")
unums = User.query.filter_by(unit=gover.name, status=1).count() # 当前机构下通过审核人员
if unums > 0: # 当前部门有人,先到机构详情,进行人员的删除
return jsonify(code=RET.REQERR, msg="当前机构有人员存在,请清除后再操作")
db.session.delete(gover) # 无人无部门,删除
db.session.commit() # 提交
return jsonify(code=RET.OK, msg="删除成功")
if cate == 2: # 删除部门
section = Section.query.get(_id)
gover = section.goverment # 部门所属的机构
group = section.groups # 当前部门的组对象list
if len(group) > 0: # 如果有组先删除组
return jsonify(code=RET.REQERR, msg="当前部门有组存在,请清除后再操作")
unums = User.query.filter_by(unit=gover.name, section=section.name, status=1).count() # # 已经通过审核的人数
if unums > 0: # 当前部门有人,先到部门详情,进行部门人员的删除
return jsonify(code=RET.REQERR, msg="当前部门有人员存在,请清除后再操作")
gover.sections.remove(section) # 当前部门没有人,没有组,删除部门之前需要先删除与之相关的机构关系
db.session.delete(section) # 删除
db.session.commit() # 提交
return jsonify(code=RET.OK, msg="删除成功")
if cate == 3: # 删除组
group = Group.query.get(_id) # 当前组信息
section = group.section # 组属于的部门,单个对象
gover = section.goverment # 部门属于的机构,单个对象
unums = User.query.filter_by(unit=gover.name, section=section.name, group=group.name,
status=1).count() # 已经通过审核的人数
if unums > 0: # 当前组有人,先到组详情,进行组员的删除
return jsonify(code=RET.REQERR, msg="当前组有人员存在,请清除后再操作")
section.groups.remove(group) # 当前组没有人,删除组之前需要先删除与之相关的部门关系
db.session.delete(group) # 删除
db.session.commit() # 提交
return jsonify(code=RET.OK, msg="删除成功")
else:
return jsonify(code=RET.DATAERR, msg="参数错误")
except Exception as e:
# 操作失败,回滚数据库
db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库操作失败")
''''''
# 获取机构,部门或者组详情()
@api_power.route("/orgDetail", methods=["POST"])
@login_required
def org_detail():
req_dict = request.get_json()
_id = req_dict.get("id") # id
cate = req_dict.get("cate") # 1机构,2部门,3组
# 校验参数完整性
if not all([_id, cate]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
if cate == 1: # 政府机构详情
goverment = Government.query.get(_id)
# 政府信息
data = {"id": goverment.id,
"name": goverment.name, # 机构名
"charge": goverment.charge if goverment.charge else "-", # 主管
"phone": goverment.charge_phone if goverment.charge_phone else "-", # 电话
"pnums": goverment.pnums if goverment.pnums else 0, # 机构人数
"secnums": len(goverment.sections), # 部门数
"func": goverment.function if goverment.function else "", # 政府职能
"cate": cate}
return jsonify(code=RET.OK, msg="查询成功", data=data)
if cate == 2: # 部门详情
section = Section.query.get(_id)
# 政府信息
data = {"id": section.id,
"name": section.name, # 机构名
"charge": section.charge if section.charge else "-", # 主管
"phone": section.charge_phone if section.charge_phone else "-", # 电话
"pnums": section.pnums if section.pnums else 0, # 机构人数
"secnums": len(section.groups), # 组数
"func": section.function if section.function else "", # 部门职能
"cate": cate}
return jsonify(code=RET.OK, msg="查询成功", data=data)
if cate == 3: # 组详情
group = Group.query.get(_id)
# 政府信息
data = {"id": group.id,
"name": group.name, # 机构名
"charge": group.charge if group.charge else "-", # 主管
"phone": group.charge_phone if group.charge_phone else "-", # 电话
"pnums": group.pnums if group.pnums else 0, # 机构人数
"secnums": "-",
"func": group.function if group.function else "", # 部门职能
"cate": cate}
return jsonify(code=RET.OK, msg="查询成功", data=data)
return jsonify(code=RET.OK, msg="参数错误")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库操作错误")
# 编辑机构,部门或者组详情
@api_power.route("/editDetail", methods=["POST"])
@login_required
def edit_detail():
req_dict = request.get_json()
_id = req_dict.get("id") # 部门id
cate = req_dict.get("cate") # 1机构,2部门,3组
name = req_dict.get("name") # 1机构,2部门,3组 的名称
charge = req_dict.get("charge") # 局内领导
charge_phone = req_dict.get("charge_phone") # 联系方式
func = req_dict.get("func") # 部门职能
pnums = str(req_dict.get("pnums")) # 人数
secnums = str(req_dict.get("secnums")) # 部门组人数
# 校验参数完整性
if not all([_id, name, charge, charge_phone, pnums, secnums]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
if cate == 1: # 机构
gover = Government.query.filter_by(name=name).filter(Government.id != _id).first()
if gover:
return jsonify(code=RET.DBERR, msg="机构名不可重复")
gover = Government.query.get(_id)
gover.name = name
gover.charge = charge
gover.charge_phone = charge_phone
gover.function = func
gover.pnums = pnums
gover.secnums = secnums
db.session.commit()
return jsonify(code=RET.OK, msg="修改成功")
if cate == 2: # 部门
section = Section.query.get(_id) # 当前部门
gover_id = section.goverment_id # 当前部门的机构id
sec = Section.query.filter_by(name=name, goverment_id=gover_id).filter(Section.id != _id).first()
if sec: # 当前机构下此部门名已存在
return jsonify(code=RET.DBERR, msg="部门名不可重复")
section.name = name
section.charge = charge
section.charge_phone = charge_phone
section.function = func
section.pnums = pnums
section.secnums = secnums
db.session.commit()
return jsonify(code=RET.OK, msg="修改成功")
if cate == 3: # 组
group = Group.query.get(_id) # 当前组
sec_id = group.section_id # 当前组的部门id
gro = Group.query.filter_by(name=name, section_id=sec_id).filter(Group.id != _id).first()
if gro: # 当前部门下此组名已存在
return jsonify(code=RET.DBERR, msg="组名不可重复")
group.name = name
group.charge = charge
group.charge_phone = charge_phone
group.function = func
group.pnums = pnums
group.secnums = secnums
db.session.commit()
return jsonify(code=RET.OK, msg="修改成功")
return jsonify(code=RET.DATAERR, msg="cate参数错误")
except Exception as e:
# 操作失败,回滚数据库
db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库操作错误")
# 获取机构,部门或者组的人员
@api_power.route("/orgStaff", methods=["POST"])
@login_required
def org_staff():
req_dict = request.get_json()
_id = req_dict.get("id") # 部门id
cate = req_dict.get("cate") # 1机构,2部门,3组
# 校验参数完整性
if not all([_id, cate]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
if cate == 1: # 政府机构详情
goverment = Government.query.get(_id)
# 人员列表
staff = User.query.filter_by(status=1, unit=goverment.name).filter(
User.role_id.isnot(None)).all() # 通过审核的员工列表
staff = [{"id": i.id,
"name": i.real_name,
"position": i.position,
"section": i.section} for i in staff]
return jsonify(code=RET.OK, msg="查询成功", data=staff)
if cate == 2: # 部门详情
section = Section.query.get(_id)
# 人员列表
staff = User.query.filter_by(status=1, unit=section.goverment.name, section=section.name).filter(
User.role_id.isnot(None)).all() # 通过审核的员工列表
staff = [{"id": i.id,
"name": i.real_name,
"position": i.position,
"section": i.section} for i in staff]
return jsonify(code=RET.OK, msg="查询成功", data=staff)
if cate == 3: # 组详情
group = Group.query.get(_id)
# 人员列表
staff = User.query.filter_by(status=1, unit=group.section.goverment.name, section=group.section.name,
group=group.name).filter(User.role_id.isnot(None)).all() # 通过审核的员工列表
staff = [{"id": i.id,
"name": i.real_name,
"position": i.position,
"section": i.section} for i in staff]
return jsonify(code=RET.OK, msg="查询成功", data=staff)
else:
return jsonify(code=RET.OK, msg="参数错误")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库操作错误")
# 机构部门或这组的待新增人员列表-------------------?
@api_power.route("/listOfStaff", methods=["POST"])
# import time
# from datetime import datetime
#
# from flask import request, jsonify, current_app, g
# from apps.manage import api_power
# from apps.models import *
# from apps.utils.response_code import RET
# from apps.util import login_required, verify_token
#
#
# # 新增机构组织
# @api_power.route("/AddOrg", methods=["POST"])
# @login_required
def list_Staff():
req_dict = request.get_json()
_id = req_dict.get("id") # 当前机构id
cate = req_dict.get("cate") # 1机构 2部门 3组
# 校验参数完整性
if not all([_id]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
if cate == 1: # 政府
gover = Government.query.get(_id)
if gover:
name = gover.name
user = User.query.filter_by(unit=name).filter(User.role_id.isnot(None)).all()
data = [{"id": i.id,
"real_name": i.real_name if i.real_name else i.id} for i in user]
return jsonify(code=RET.OK, msg="查询成功", data=data)
else:
return jsonify(code=RET.DATAERR, msg="参数错误")
if cate == 2: # 部门
section = Section.query.get(_id)
if section:
gover = section.goverment
user = User.query.filter_by(unit=gover.name).filter(User.role_id.isnot(None)).all()
data = [{"id": i.id,
"real_name": i.real_name if i.real_name else i.id} for i in user]
return jsonify(code=RET.OK, msg="查询成功", data=data)
else:
return jsonify(code=RET.DATAERR, msg="参数错误")
if cate == 3: # 组
group = Group.query.get(_id)
if group:
section = group.section
gover = section.goverment
user = User.query.filter_by(unit=gover.name).filter(User.role_id.isnot(None)).all()
data = [{"id": i.id,
"real_name": i.real_name if i.real_name else i.id} for i in user]
return jsonify(code=RET.OK, msg="查询成功", data=data)
else:
return jsonify(code=RET.DATAERR, msg="参数错误")
return jsonify(code=RET.DATAERR, msg="参数错误")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 机构部门或这组的人员 新增(人员部门调度)
@api_power.route("/addStaffOrg", methods=["POST"])
# def add_org():
# '''
# 不得重名
# '''
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id
# user_name = User.query.get(id=user_id).name
# req_dict = request.get_json()
# org_name = req_dict.get("name") # 机构名称
# # forg = req_dict.get("forg") # 上级机构 id
# charge = req_dict.get("charge") # 机构负责人
# charge_phone = req_dict.get("charge_phone") # 负责人电话
# # sublist = req_dict.get("sublist") # 统筹机构id list["1","2"...]
#
# # 校验参数完整性
# if not all([org_name]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
# try:
# gover = GovOrganization.query.filter_by(name=org_name).first()
# if gover: # 机构名相同,提示其错误
# return jsonify(code=RET.DBERR, msg="机构名重复")
#
# goverment = GovOrganization(name=org_name) # 创建机构
# if charge:
# goverment.charge = charge
# if charge_phone:
# goverment.charge_phone = charge_phone
# if user_name:
# goverment.add_person = user_name
# add_time = datetime.now()
# goverment.add_time = add_time
# db.session.add(goverment) # 添加到数据库
#
# # if forg: # 如果有上级机构,就让上级机构统筹新增机构
# # fgover = Government.query.get(forg)
# # fgover.followed.append(goverment)
# # for ctr in sublist: # 如果有统筹机构,就让新增机构统筹
# # sgover = Government.query.get(ctr)
# # goverment.followed.append(sgover)
# 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_power.route("/GetOrg", methods=["GET"])
# @login_required
def add_staff():
req_dict = request.get_json()
_id = req_dict.get("id") # 部门机构组id
cate = req_dict.get("cate") # 1政府,2部门,3组
uid = req_dict.get("uid") # 员工id
level = req_dict.get("level") # 职级(角色id)
position = req_dict.get("position") # 职务,文本框随意填
# 校验参数完整性
if not all([_id, level, position]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
user = User.query.get(uid)
if user:
if cate == 1: # 政府机构
user.section = Government.query.get(_id).name
# 删除原有角色
role = Role.query.get(user.role_id)
role.users.remove(user)
# 添加新角色
role = Role.query.get(level)
role.users.append(user)
user.position = position
db.session.commit()
return jsonify(code=RET.OK, msg="添加成功")
if cate == 2: # 部门调度
user.section = Section.query.get(_id).name
# 删除原有角色
role = Role.query.get(user.role_id)
role.users.remove(user)
# 添加新角色
role = Role.query.get(level)
role.users.append(user)
user.position = position
db.session.commit()
return jsonify(code=RET.OK, msg="添加成功")
if cate == 3: # 组调度
user.group = Group.query.get(_id).name
# 删除原有角色
role = Role.query.get(user.role_id)
role.users.remove(user)
# 添加新角色
role = Role.query.get(level)
role.users.append(user)
user.position = position
db.session.commit()
return jsonify(code=RET.OK, msg="添加成功")
return jsonify(code=RET.DATAERR, msg="参数错误")
else:
return jsonify(code=RET.DATAERR, msg="参数错误")
except Exception as e:
# 操作失败,回滚数据库
db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库操作错误")
# # 测试
# @api_power.route("/cs", methods=["get"])
# def ces():
# gover = Government.query.get(18)
# section = Section.query.get(37)
# print(gover,section)
# # section.goverment.remove(gover)
# gover.sections.remove(section)
# def get_org():
# try:
# org = GovOrganization.query.all()
# data = [{"id": i.id, "name": i.name, "pnums": i.pnums,
# "charge": i.charge, "charge_phone": i.charge_phone,
# "add_person": i.add_person, "add_time": i.add_time,
# "edit_person": i.edit_person, "edit_time": i.edit_time}
# for i in org]
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库查询错误")
#
#
# # 新增下级部门(ok)
# @api_power.route("/AddSubDepartment", methods=["POST"])
# @login_required
# def add_sub_department():
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id
# user_name = User.query.get(id=user_id).name
# req_dict = request.get_json()
# id = req_dict.get("id") # 当前机构或者部门id
# # cate = req_dict.get("cate") # 分类标识,1机构,2部门
# name = req_dict.get("name") # 部门或组名称
# # pnums = req_dict.get("pnums") # 人数
# charge = req_dict.get("charge") # 机构负责人
# charge_phone = req_dict.get("charge_phone") # 负责人电话
#
# # 校验参数完整性
# # if not all([_id, cate, name]):
# # return jsonify(code=RET.PARAMERR, msg="参数不完整")
# if not all([id, name]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
#
# try:
# # if cate == 1: # 增加部门
# sec = GovDepartment.query.filter_by(name=name, goverment_org_id=id).first()
# if sec: # 一个机构下部门名不能重复
# return jsonify(code=RET.DATAERR, msg="部门名重复")
# gov_organization = GovOrganization.query.get(id)
# gov_department = GovDepartment(name=name, goverment_org_id=id)
# # if pnums:
# # gov_department.pnums = pnums
# if charge:
# gov_department.charge = charge
# if charge_phone:
# gov_department.charge_phone = charge_phone
# if user_name:
# gov_department.add_person = user_name
# add_time = datetime.now()
# gov_department.add_time = add_time
# db.session.add(gov_department) # 添加部门
# gov_organization.government_departments.append(gov_department) # 外键关系添加
# db.session.commit() # 数据库提交
# # if cate == 2: # 增加组
# # gro = Group.query.filter_by(name=name, gov_department_id=_id).first()
# # if gro: # 一个部门下组名不能重复
# # return jsonify(code=RET.DATAERR, msg="组名重复")
# # gov_department = Section.query.get(_id)
# # group = Group(name=name, section_id=_id)
# # if pnums:
# # group.pnums = pnums
# # if charge:
# # group.charge = charge
# # if charge_phone:
# # group.charge_phone = charge_phone
# # db.session.add(group) # 添加组
# # section.groups.append(group) # 添加关系
# # db.session.commit() # 提交
# # if cate == 3:
# # return jsonify(code=RET.OK, msg="暂无下级机构,请勿继续添加")
# return jsonify(code=RET.OK, msg="添加成功")
# except Exception as e:
# # 操作失败,数据回滚
# db.session.rollback()
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库操作错误")
#
#
#
#
# # 获取上级或下级统筹机构 (ok)
# @api_power.route("/uadOrg", methods=["GET"])
# @login_required
# def uad_org():
# try:
# gover = Government.query.all()
# data = [{"label": i.name, "value": i.id} for i in gover]
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库查询错误")
#
#
# # 获取上级机构后的统筹机构 (ok)
# @api_power.route("/downOrg", methods=["POST"])
# @login_required
# def down_org():
# req_dict = request.get_json()
# _id = req_dict.get("id") # 机构名称
# try:
# if _id:
# gover = Government.query.all()
# data = [{"label": i.name, "value": i.id} for i in gover if i.id != _id]
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# else:
# gover = Government.query.all()
# data = [{"label": i.name, "value": i.id} for i in gover]
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库查询错误")
#
#
# # 组织架构管理,获取机构单位数据(ok)
# @api_power.route("/organization", methods=["POST"])
# @login_required
# def organization():
# req_dict = request.get_json()
# page = req_dict.get("page")
# perpage = req_dict.get("perpage")
# # 校验参数完整性
# if not all([page, perpage]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
# try:
# # goverment = Government.query.paginate(page, perpage).items
# goverment = Government.query.all()
# size = Government.query.count()
# df = [{"id": gover.id,
# "name": gover.name,
# "pnums": gover.pnums if gover.pnums else 0,
# "charge": gover.charge if gover.charge else "-",
# "charge_phone": gover.charge_phone if gover.charge_phone else "-",
# "cate": 1} for gover in goverment]
# data = {"df": df, "size": size}
# return jsonify(code=RET.OK, msg="查找成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库查询错误", data=[])
#
#
# # 组织架构获取部门和组(Ok)
# @api_power.route("/sectionGroup", methods=["POST"])
# @login_required
# def section_group():
# req_dict = request.get_json()
# _id = req_dict.get("id") # 当前机构或者部门的id
# cate = req_dict.get("cate") # 分类标识,1机构,2部门
#
# # 校验参数完整性
# if not all([_id, cate]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
#
# try:
# if cate == 1: # 查询当前机构下的部门
# goverment = Government.query.get(_id)
# sections = goverment.sections # 查询当前机构下的部门list
# data = [{"id": sec.id,
# "name": sec.name,
# "pnums": sec.pnums if sec.pnums else 0,
# "charge": sec.charge if sec.charge else "-",
# "charge_phone": sec.charge_phone if sec.charge_phone else "-",
# "cate": 2} for sec in sections]
# return jsonify(code=RET.OK, msg="查找成功", data=data)
# if cate == 2: # 查询当前部门下的组
# section = Section.query.get(_id)
# groups = section.groups # 查询当前部门下的组list
# data = [{"id": group.id,
# "name": group.name,
# "pnums": group.pnums if group.pnums else 0,
# "charge": group.charge if group.charge else "-",
# "charge_phone": group.charge_phone if group.charge_phone else "-",
# "cate": 3} for group in groups]
# return jsonify(code=RET.OK, msg="查找成功", data=data)
# return jsonify(code=RET.OK, msg="暂无下级信息", data=[])
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库查询错误", data=[])
#
#
# # 删除组织机构或者部门和组(需要先删除人员)--------OK
# @api_power.route("/deleteOrg", methods=["POST"])
# @login_required
# def deleteorg():
# req_dict = request.get_json()
# _id = req_dict.get("id") # 待删除的,部门、机构、组、id
# cate = req_dict.get("cate") # 待删除数据的类别 1政府,2部门,3组
#
# # 校验参数完整性
# if not all([_id, cate]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
#
# try:
# if cate == 1: # 删除机构
# gover = Government.query.get(_id) # 当前机构对象
# section = gover.sections # 当前机构下的部门对象列表
# if len(section) > 0: # 有部门就需要先删除部门
# return jsonify(code=RET.REQERR, msg="当前机构有部门存在,请清除后再操作")
# unums = User.query.filter_by(unit=gover.name, status=1).count() # 当前机构下通过审核人员
# if unums > 0: # 当前部门有人,先到机构详情,进行人员的删除
# return jsonify(code=RET.REQERR, msg="当前机构有人员存在,请清除后再操作")
# db.session.delete(gover) # 无人无部门,删除
# db.session.commit() # 提交
# return jsonify(code=RET.OK, msg="删除成功")
# if cate == 2: # 删除部门
# section = Section.query.get(_id)
# gover = section.goverment # 部门所属的机构
# group = section.groups # 当前部门的组对象list
# if len(group) > 0: # 如果有组先删除组
# return jsonify(code=RET.REQERR, msg="当前部门有组存在,请清除后再操作")
# unums = User.query.filter_by(unit=gover.name, section=section.name, status=1).count() # # 已经通过审核的人数
# if unums > 0: # 当前部门有人,先到部门详情,进行部门人员的删除
# return jsonify(code=RET.REQERR, msg="当前部门有人员存在,请清除后再操作")
# gover.sections.remove(section) # 当前部门没有人,没有组,删除部门之前需要先删除与之相关的机构关系
# db.session.delete(section) # 删除
# db.session.commit() # 提交
# return jsonify(code=RET.OK, msg="删除成功")
# if cate == 3: # 删除组
# group = Group.query.get(_id) # 当前组信息
# section = group.section # 组属于的部门,单个对象
# gover = section.goverment # 部门属于的机构,单个对象
# unums = User.query.filter_by(unit=gover.name, section=section.name, group=group.name,
# status=1).count() # 已经通过审核的人数
# if unums > 0: # 当前组有人,先到组详情,进行组员的删除
# return jsonify(code=RET.REQERR, msg="当前组有人员存在,请清除后再操作")
# section.groups.remove(group) # 当前组没有人,删除组之前需要先删除与之相关的部门关系
# db.session.delete(group) # 删除
# db.session.commit() # 提交
# return jsonify(code=RET.OK, msg="删除成功")
# else:
# return jsonify(code=RET.DATAERR, msg="参数错误")
# except Exception as e:
# # 操作失败,回滚数据库
# db.session.rollback()
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库操作失败")
#
#
# ''''''
#
#
# # 获取机构,部门或者组详情()
# @api_power.route("/orgDetail", methods=["POST"])
# @login_required
# def org_detail():
# req_dict = request.get_json()
# _id = req_dict.get("id") # id
# cate = req_dict.get("cate") # 1机构,2部门,3组
#
# # 校验参数完整性
# if not all([_id, cate]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
#
# try:
# if cate == 1: # 政府机构详情
# goverment = Government.query.get(_id)
# # 政府信息
# data = {"id": goverment.id,
# "name": goverment.name, # 机构名
# "charge": goverment.charge if goverment.charge else "-", # 主管
# "phone": goverment.charge_phone if goverment.charge_phone else "-", # 电话
# "pnums": goverment.pnums if goverment.pnums else 0, # 机构人数
# "secnums": len(goverment.sections), # 部门数
# "func": goverment.function if goverment.function else "", # 政府职能
# "cate": cate}
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# if cate == 2: # 部门详情
# section = Section.query.get(_id)
# # 政府信息
# data = {"id": section.id,
# "name": section.name, # 机构名
# "charge": section.charge if section.charge else "-", # 主管
# "phone": section.charge_phone if section.charge_phone else "-", # 电话
# "pnums": section.pnums if section.pnums else 0, # 机构人数
# "secnums": len(section.groups), # 组数
# "func": section.function if section.function else "", # 部门职能
# "cate": cate}
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# if cate == 3: # 组详情
# group = Group.query.get(_id)
# # 政府信息
# data = {"id": group.id,
# "name": group.name, # 机构名
# "charge": group.charge if group.charge else "-", # 主管
# "phone": group.charge_phone if group.charge_phone else "-", # 电话
# "pnums": group.pnums if group.pnums else 0, # 机构人数
# "secnums": "-",
# "func": group.function if group.function else "", # 部门职能
# "cate": cate}
# return jsonify(code=RET.OK, msg="查询成功", data=data)
#
# return jsonify(code=RET.OK, msg="参数错误")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库操作错误")
#
#
# # 编辑机构,部门或者组详情
# @api_power.route("/editDetail", methods=["POST"])
# @login_required
# def edit_detail():
# req_dict = request.get_json()
# _id = req_dict.get("id") # 部门id
# cate = req_dict.get("cate") # 1机构,2部门,3组
# name = req_dict.get("name") # 1机构,2部门,3组 的名称
# charge = req_dict.get("charge") # 局内领导
# charge_phone = req_dict.get("charge_phone") # 联系方式
# func = req_dict.get("func") # 部门职能
# pnums = str(req_dict.get("pnums")) # 人数
# secnums = str(req_dict.get("secnums")) # 部门组人数
#
# # 校验参数完整性
# if not all([_id, name, charge, charge_phone, pnums, secnums]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
#
# try:
# if cate == 1: # 机构
# gover = Government.query.filter_by(name=name).filter(Government.id != _id).first()
# if gover:
# return jsonify(code=RET.DBERR, msg="机构名不可重复")
# gover = Government.query.get(_id)
# gover.name = name
# gover.charge = charge
# gover.charge_phone = charge_phone
# gover.function = func
# gover.pnums = pnums
# gover.secnums = secnums
# db.session.commit()
# return jsonify(code=RET.OK, msg="修改成功")
# if cate == 2: # 部门
# section = Section.query.get(_id) # 当前部门
# gover_id = section.goverment_id # 当前部门的机构id
# sec = Section.query.filter_by(name=name, goverment_id=gover_id).filter(Section.id != _id).first()
# if sec: # 当前机构下此部门名已存在
# return jsonify(code=RET.DBERR, msg="部门名不可重复")
# section.name = name
# section.charge = charge
# section.charge_phone = charge_phone
# section.function = func
# section.pnums = pnums
# section.secnums = secnums
# db.session.commit()
# return jsonify(code=RET.OK, msg="修改成功")
# if cate == 3: # 组
# group = Group.query.get(_id) # 当前组
# sec_id = group.section_id # 当前组的部门id
# gro = Group.query.filter_by(name=name, section_id=sec_id).filter(Group.id != _id).first()
# if gro: # 当前部门下此组名已存在
# return jsonify(code=RET.DBERR, msg="组名不可重复")
# group.name = name
# group.charge = charge
# group.charge_phone = charge_phone
# group.function = func
# group.pnums = pnums
# group.secnums = secnums
# db.session.commit()
# return jsonify(code=RET.OK, msg="修改成功")
# return jsonify(code=RET.DATAERR, msg="cate参数错误")
# except Exception as e:
# # 操作失败,回滚数据库
# db.session.rollback()
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库操作错误")
#
#
# # 获取机构,部门或者组的人员
# @api_power.route("/orgStaff", methods=["POST"])
# @login_required
# def org_staff():
# req_dict = request.get_json()
# _id = req_dict.get("id") # 部门id
# cate = req_dict.get("cate") # 1机构,2部门,3组
#
# # 校验参数完整性
# if not all([_id, cate]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
#
# try:
# if cate == 1: # 政府机构详情
# goverment = Government.query.get(_id)
# # 人员列表
# staff = User.query.filter_by(status=1, unit=goverment.name).filter(
# User.role_id.isnot(None)).all() # 通过审核的员工列表
# staff = [{"id": i.id,
# "name": i.real_name,
# "position": i.position,
# "section": i.section} for i in staff]
# return jsonify(code=RET.OK, msg="查询成功", data=staff)
# if cate == 2: # 部门详情
# section = Section.query.get(_id)
# # 人员列表
# staff = User.query.filter_by(status=1, unit=section.goverment.name, section=section.name).filter(
# User.role_id.isnot(None)).all() # 通过审核的员工列表
# staff = [{"id": i.id,
# "name": i.real_name,
# "position": i.position,
# "section": i.section} for i in staff]
# return jsonify(code=RET.OK, msg="查询成功", data=staff)
# if cate == 3: # 组详情
# group = Group.query.get(_id)
# # 人员列表
# staff = User.query.filter_by(status=1, unit=group.section.goverment.name, section=group.section.name,
# group=group.name).filter(User.role_id.isnot(None)).all() # 通过审核的员工列表
# staff = [{"id": i.id,
# "name": i.real_name,
# "position": i.position,
# "section": i.section} for i in staff]
# return jsonify(code=RET.OK, msg="查询成功", data=staff)
# else:
# return jsonify(code=RET.OK, msg="参数错误")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库操作错误")
#
#
# # 机构部门或这组的待新增人员列表-------------------?
# @api_power.route("/listOfStaff", methods=["POST"])
# # @login_required
# def list_Staff():
# req_dict = request.get_json()
# _id = req_dict.get("id") # 当前机构id
# cate = req_dict.get("cate") # 1机构 2部门 3组
#
# # 校验参数完整性
# if not all([_id]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
# try:
# if cate == 1: # 政府
# gover = Government.query.get(_id)
# if gover:
# name = gover.name
# user = User.query.filter_by(unit=name).filter(User.role_id.isnot(None)).all()
# data = [{"id": i.id,
# "real_name": i.real_name if i.real_name else i.id} for i in user]
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# else:
# return jsonify(code=RET.DATAERR, msg="参数错误")
# if cate == 2: # 部门
# section = Section.query.get(_id)
# if section:
# gover = section.goverment
# user = User.query.filter_by(unit=gover.name).filter(User.role_id.isnot(None)).all()
# data = [{"id": i.id,
# "real_name": i.real_name if i.real_name else i.id} for i in user]
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# else:
# return jsonify(code=RET.DATAERR, msg="参数错误")
# if cate == 3: # 组
# group = Group.query.get(_id)
# if group:
# section = group.section
# gover = section.goverment
# user = User.query.filter_by(unit=gover.name).filter(User.role_id.isnot(None)).all()
# data = [{"id": i.id,
# "real_name": i.real_name if i.real_name else i.id} for i in user]
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# else:
# return jsonify(code=RET.DATAERR, msg="参数错误")
# return jsonify(code=RET.DATAERR, msg="参数错误")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库查询错误")
#
#
# # 机构部门或这组的人员 新增(人员部门调度)
# @api_power.route("/addStaffOrg", methods=["POST"])
# # @login_required
# def add_staff():
# req_dict = request.get_json()
# _id = req_dict.get("id") # 部门机构组id
# cate = req_dict.get("cate") # 1政府,2部门,3组
# uid = req_dict.get("uid") # 员工id
# level = req_dict.get("level") # 职级(角色id)
# position = req_dict.get("position") # 职务,文本框随意填
#
# # 校验参数完整性
# if not all([_id, level, position]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
# try:
# user = User.query.get(uid)
# if user:
# if cate == 1: # 政府机构
# user.section = Government.query.get(_id).name
# # 删除原有角色
# role = Role.query.get(user.role_id)
# role.users.remove(user)
# # 添加新角色
# role = Role.query.get(level)
# role.users.append(user)
#
# user.position = position
# db.session.commit()
# return jsonify(code=RET.OK, msg="添加成功")
# if cate == 2: # 部门调度
# user.section = Section.query.get(_id).name
# # 删除原有角色
# role = Role.query.get(user.role_id)
# role.users.remove(user)
# # 添加新角色
# role = Role.query.get(level)
# role.users.append(user)
#
# user.position = position
# db.session.commit()
# return jsonify(code=RET.OK, msg="添加成功")
# if cate == 3: # 组调度
# user.group = Group.query.get(_id).name
# # 删除原有角色
# role = Role.query.get(user.role_id)
# role.users.remove(user)
# # 添加新角色
# role = Role.query.get(level)
# role.users.append(user)
#
# user.position = position
# db.session.commit()
# return jsonify(code=RET.OK, msg="添加成功")
#
# return jsonify(code=RET.DATAERR, msg="参数错误")
# else:
# return jsonify(code=RET.DATAERR, msg="参数错误")
# except Exception as e:
# # 操作失败,回滚数据库
# db.session.rollback()
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库操作错误")
#
#
# # # 测试
# # @api_power.route("/cs", methods=["get"])
# # def ces():
# # gover = Government.query.get(18)
# # section = Section.query.get(37)
# # print(gover,section)
# # # section.goverment.remove(gover)
# # gover.sections.remove(section)
# # db.session.commit()
# # return "ok"
# ''''''
#
#
# # 机构部门或这组的人员 删除(人员失去组,机构项目)
# @api_power.route("/deleteStaffOrg", methods=["POST"])
# @login_required
# def delete_staff():
# req_dict = request.get_json()
# uid = req_dict.get("uid") # 员工id
# cate = req_dict.get("cate") # 1政府,2部门,3组
# _id = req_dict.get("id") # 机构部门组id
# # level = req_dict.get("level") # 职级
# # position = req_dict.get("position") # 职务
#
# # 校验参数完整性
# if not all([uid, cate, _id]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
# try:
# user = User.query.get(uid)
# if user:
# if cate == 1: # 政府机构
# role = Role.query.get(user.role_id)
# role.users.remove(user)
# user.unit = "" # 机构
# user.position = "" # 职位
# user.section = "" # 部门
# user.group = "" # 组
# user.level = "" # 级别
# user.leader = "" # 领导者
# user.password = "" # 密码
# db.session.commit()
# return jsonify(code=RET.OK, msg="删除成功")
# if cate == 2: # 部们
# role = Role.query.get(user.role_id)
# # user.role_id = ""
# role.users.remove(user)
# user.position = ""
# user.section = ""
# user.group = ""
# user.level = ""
# # user.role_id = ""
# db.session.commit()
# return jsonify(code=RET.OK, msg="删除成功")
# if cate == 3: # 组调度
# user.group = ""
# db.session.commit()
# return jsonify(code=RET.OK, msg="删除成功")
# return jsonify(code=RET.DATAERR, msg="参数错误")
# else:
# return jsonify(code=RET.DATAERR, msg="参数错误")
# except Exception as e:
# # 操作失败,回滚数据库
# db.session.rollback()
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库操作错误")
#
#
# # 获取统筹机构列表
# @api_power.route("/orgCtrl", methods=["POST"])
# @login_required
# def org_ctrl():
# req_dict = request.get_json()
# _id = req_dict.get("id") # 机构id
# cate = req_dict.get("cate") # 1政府,2部门,3组
#
# # 校验参数完整性
# if not all([_id, cate]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
# try:
# if cate == 1: # 政府机构详情
# goverment = Government.query.get(_id)
# # 统筹机构列表
# ctrl = goverment.followed
# bkpm = [{"id": j.id,
# "name": j.name,
# "charge": j.charge if j.charge else "-",
# "phone": j.charge_phone if j.charge_phone else "-"} for j in ctrl]
# return jsonify(code=RET.OK, msg="查询成功", data=bkpm)
#
# return jsonify(code=RET.OK, msg="参数错误")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库操作错误")
#
#
# # 获取待新增统筹机构列表
# @api_power.route("/getCtrl", methods=["POST"])
# @login_required
# def get_ctrl():
# req_dict = request.get_json()
# _id = req_dict.get("id")
#
# # 校验参数完整性
# if not all([_id]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
# try:
# goverment = Government.query.get(_id)
# folllowedids = {i.id for i in goverment.followed} # 已经被管制的
# folllowedids.add(_id) # 添加自己
# all_ids = {i.id for i in Government.query.filter_by().all()} # 全部机构id
# options = list(all_ids - folllowedids) # 未被当前机构统筹的机构id列表
#
# goverments = Government.query.filter(Government.id.in_(options)).all()
# data = [{"id": i.id,
# "name": i.name} for i in goverments]
#
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="添加失败")
#
#
# # 机构详情页添加统筹机构
# @api_power.route("/addBeCtrl", methods=["POST"])
# @login_required
# def add_bectrl():
# req_dict = request.get_json()
# _id = req_dict.get("id")
# ids = req_dict.get("ids")
#
# # 校验参数完整性
# if not all([_id, ids]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
# try:
# goverment = Government.query.get(_id)
# folllowedids = {i.id for i in goverment.followed}
# ids = set(ids)
# for id in (ids - folllowedids):
# gover = Government.query.get(id)
# goverment.followed.append(gover)
# 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_power.route("/deleteCtrl", methods=["POST"])
# @login_required
# def delete_bectrl():
# req_dict = request.get_json()
# _id = req_dict.get("id")
# bectrl_id = req_dict.get("bectrl_id")
#
# # 校验参数完整性
# if not all([_id, bectrl_id]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
# try:
# goverment = Government.query.get(_id)
# begoverment = Government.query.get(bectrl_id)
# goverment.followed.remove(begoverment)
# db.session.commit()
# return "ok"
''''''
# 机构部门或这组的人员 删除(人员失去组,机构项目)
@api_power.route("/deleteStaffOrg", methods=["POST"])
@login_required
def delete_staff():
req_dict = request.get_json()
uid = req_dict.get("uid") # 员工id
cate = req_dict.get("cate") # 1政府,2部门,3组
_id = req_dict.get("id") # 机构部门组id
# level = req_dict.get("level") # 职级
# position = req_dict.get("position") # 职务
# 校验参数完整性
if not all([uid, cate, _id]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
user = User.query.get(uid)
if user:
if cate == 1: # 政府机构
role = Role.query.get(user.role_id)
role.users.remove(user)
user.unit = "" # 机构
user.position = "" # 职位
user.section = "" # 部门
user.group = "" # 组
user.level = "" # 级别
user.leader = "" # 领导者
user.password = "" # 密码
db.session.commit()
return jsonify(code=RET.OK, msg="删除成功")
if cate == 2: # 部们
role = Role.query.get(user.role_id)
# user.role_id = ""
role.users.remove(user)
user.position = ""
user.section = ""
user.group = ""
user.level = ""
# user.role_id = ""
db.session.commit()
return jsonify(code=RET.OK, msg="删除成功")
if cate == 3: # 组调度
user.group = ""
db.session.commit()
return jsonify(code=RET.OK, msg="删除成功")
return jsonify(code=RET.DATAERR, msg="参数错误")
else:
return jsonify(code=RET.DATAERR, msg="参数错误")
except Exception as e:
# 操作失败,回滚数据库
db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库操作错误")
# 获取统筹机构列表
@api_power.route("/orgCtrl", methods=["POST"])
@login_required
def org_ctrl():
req_dict = request.get_json()
_id = req_dict.get("id") # 机构id
cate = req_dict.get("cate") # 1政府,2部门,3组
# 校验参数完整性
if not all([_id, cate]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
if cate == 1: # 政府机构详情
goverment = Government.query.get(_id)
# 统筹机构列表
ctrl = goverment.followed
bkpm = [{"id": j.id,
"name": j.name,
"charge": j.charge if j.charge else "-",
"phone": j.charge_phone if j.charge_phone else "-"} for j in ctrl]
return jsonify(code=RET.OK, msg="查询成功", data=bkpm)
return jsonify(code=RET.OK, msg="参数错误")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库操作错误")
# 获取待新增统筹机构列表
@api_power.route("/getCtrl", methods=["POST"])
@login_required
def get_ctrl():
req_dict = request.get_json()
_id = req_dict.get("id")
# 校验参数完整性
if not all([_id]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
goverment = Government.query.get(_id)
folllowedids = {i.id for i in goverment.followed} # 已经被管制的
folllowedids.add(_id) # 添加自己
all_ids = {i.id for i in Government.query.filter_by().all()} # 全部机构id
options = list(all_ids - folllowedids) # 未被当前机构统筹的机构id列表
goverments = Government.query.filter(Government.id.in_(options)).all()
data = [{"id": i.id,
"name": i.name} for i in goverments]
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="添加失败")
# 机构详情页添加统筹机构
@api_power.route("/addBeCtrl", methods=["POST"])
@login_required
def add_bectrl():
req_dict = request.get_json()
_id = req_dict.get("id")
ids = req_dict.get("ids")
# 校验参数完整性
if not all([_id, ids]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
goverment = Government.query.get(_id)
folllowedids = {i.id for i in goverment.followed}
ids = set(ids)
for id in (ids - folllowedids):
gover = Government.query.get(id)
goverment.followed.append(gover)
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_power.route("/deleteCtrl", methods=["POST"])
@login_required
def delete_bectrl():
req_dict = request.get_json()
_id = req_dict.get("id")
bectrl_id = req_dict.get("bectrl_id")
# 校验参数完整性
if not all([_id, bectrl_id]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
goverment = Government.query.get(_id)
begoverment = Government.query.get(bectrl_id)
goverment.followed.remove(begoverment)
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="数据库操作失败")
#
# return jsonify(code=RET.OK, msg="删除成功")
# except Exception as e:
# # 操作失败,回滚数据库
# db.session.rollback()
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库操作失败")
......@@ -7,92 +7,10 @@ from apps.utils.response_code import RET
from apps.util import login_required
# 外部访客列表
@api_power.route("/userListOfExternal", methods=["POST"])
@login_required
def user_list_external():
req_dict = request.get_json()
page = req_dict.get("page")
perpage = req_dict.get("perpage")
# key = req_dict.get("key") # 查询条件
# 校验参数完整性
if not all([page, perpage]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
user = User.query.filter_by(flag=1)
result = user.paginate(page, perpage).items
size = user.count()
df = [{"id": i.id,
"real_name": i.real_name if i.real_name else "-",
"mobile": i.mobile if i.mobile else "-",
"create_time": str(i.create_time) if i.create_time else "-",
} for i in result]
data = {"df": df, "size": size}
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 外部访客状态修改
@api_power.route("/updateStatus", methods=["POST"])
@login_required
def update_status():
req_dict = request.get_json()
_id = req_dict.get("id")
status = req_dict.get("status") # 0禁止,1在用
# 校验参数完整性
if not all([_id]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
user = User.query.get(_id)
if status == 1:
user.status = 1
else:
user.status = 0
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_power.route("/manage/fields", methods=["GET"])
def manage_field():
''''''
try:
gover = Government.query.all()
data = {"status": [{"label": "通过", "value": 1}, {"label": "在审", "value": 2}, {"label": "驳回", "value": 3}],
"goverment": [{"label": i.name, "value": i.id} for i in gover]}
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库操作错误")
# 局内用户筛选条件2, 根据机构获取部门
@api_power.route("/manage/fieldt", methods=["POST"])
def manage_fielt():
''''''
req_dict = request.get_json()
_id = req_dict.get("id") # 机构id
try:
gover = Government.query.get(_id)
section = gover.sections
data = [{"label": i.name, "value": i.id} for i in section]
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库操作错误")
# 局内用户列表
# 局内用户账号列表
@api_power.route("/userListOfInside", methods=["POST"])
# @login_required
def user_list_inside():
......@@ -131,9 +49,10 @@ def user_list_inside():
"position": i.position if i.position else "-",
"unit": i.belong_organization if i.belong_organization else "-",
"section": i.belong_department if i.belong_department else "-",
"role": "部门负责人" if i.role_id == 1 else
"局领导" if i.role_id == 2 else
"办事员工" if i.role_id == 3 else "-",
# "role": "部门负责人" if i.role_id == 1 else
# "局领导" if i.role_id == 2 else
# "办事员工" if i.role_id == 3 else "-",
"role": i.role
} for i in result]
data = {"df": df, "size": size}
return jsonify(code=RET.OK, msg="查询成功", data=data)
......@@ -142,7 +61,7 @@ def user_list_inside():
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 局内用户信息
# 局内用户---用户信息展示
@api_power.route("/userInsideInfo", methods=["POST"])
@login_required
def user_inside_info():
......@@ -155,9 +74,11 @@ def user_inside_info():
data = {"id": i.id,
"real_name": i.real_name if i.real_name else "-",
"position": i.position if i.position else "-",
"role": "部门负责人" if i.role_id == 1 else
"局领导" if i.role_id == 2 else
"办事员工" if i.role_id == 3 else "-", # 角色
# "role_id": i.role_id,
# "role": "部门负责人" if i.role_id == 1 else
# "局领导" if i.role_id == 2 else
# "办事员工" if i.role_id == 3 else "-", # 角色
"role": i.role,
"unit": i.belong_organization, # 机构
"section": i.belong_department, # 部门
"mobile": i.mobile if i.mobile else "-"
......@@ -169,7 +90,33 @@ def user_inside_info():
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 局内用户编辑
# 局内用户---用户账号状态编辑(通过,在审,驳回)
@api_power.route("/updateAccount", methods=["POST"])
@login_required
def update_account():
req_dict = request.get_json()
_id = req_dict.get("id")
status = req_dict.get("status") # 1通过,2在审,3驳回
# 校验参数完整性
if not all([_id, status]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
user = User.query.get(_id)
if not user.role and status == 1: # 没有角色,想通过
return jsonify(code=RET.DATAERR, msg="请先在编辑,为用户添加职级角色")
user.status = status
db.session.commit()
dict_zh = {1: "通过", 2: "在审", 3: "驳回"}
data = dict_zh[status]
return jsonify(code=RET.OK, msg="修改成功", info=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 局内用户---用户账号详情信息编辑
@api_power.route("/updateUser", methods=["POST"])
@login_required
def update_user():
......@@ -179,46 +126,29 @@ def update_user():
position = req_dict.get("position") # 职务
unit = req_dict.get("unit") # 机构
section = req_dict.get("section") # 部门
role_id = req_dict.get("role_id") # 角色id 必选
# role_id = req_dict.get("role_id") # 角色id 必选
role = req_dict.get("role") # 角色 超级管理员/管理员/开发人员/工作人员
mobile = req_dict.get("mobile")
leader = req_dict.get("leader") # 领导
password = req_dict.get("password")
password1 = req_dict.get("password1")
# 用户名唯一(字母开头,长度4-15)
# try:
# patten = "^[a-zA-Z][\w]*[\w]*$"
# if re.match(patten, name) and re.match(patten, name).string == name:
# user = User.query.filter_by(name=name).filter(User.id != _id).first()
# if user:
# return jsonify(code=RET.DATAEXIST, msg="用户名已存在")
# else:
# return jsonify(code=RET.DATAERR, msg="用户名格式错误")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="用户名格式错误")
# 校验参数完整性
if not all([_id, real_name, position, role_id, leader, mobile]):
if not all([_id, real_name, position, role, mobile]):
return jsonify(code=RET.PARAMERR, msg="请选择必填项")
try:
role = Role.query.get(role_id)
# role_obj = Role.query.get(role_id)
user = User.query.get(_id)
user.real_name = real_name
if position:
user.position = position
user.level = role.role_name
if unit:
user.unit = Government.query.get(unit).name
if section:
user.section = Section.query.get(section).name
user.leader = leader
if mobile:
user.mobile = mobile
# user.sex = sex
# user.age = age
# if email:
# user.email = email
user.name = real_name
if real_name:
user.real_name = real_name
if password and not password1:
return jsonify(code=RET.PARAMERR, msg="请填写确认密码!")
if password1 and not password:
......@@ -228,7 +158,7 @@ def update_user():
return jsonify(code=RET.PARAMERR, msg="密码和确认密码不一致!")
user.password = password
role.users.append(user)
# role_obj.users.append(user)
db.session.commit()
return jsonify(code=RET.OK, msg="修改成功")
except Exception as e:
......@@ -244,33 +174,29 @@ def add_user():
real_name = req_dict.get("real_name") # 真实姓名
position = req_dict.get("position") # 职务
level = req_dict.get("level") # 职级 id (角色id)
unit = req_dict.get("unit") # 机构id
section = req_dict.get("section") # 部门id
leader = req_dict.get("leader") # ?
mobile = req_dict.get("mobile")
sex = req_dict.get("sex") # 1男2女
age = req_dict.get("age")
email = req_dict.get("email")
name = req_dict.get("name")
password = req_dict.get("password")
level = req_dict.get("level") # 角色
mobile = req_dict.get("mobile") # 手机号
password = req_dict.get("password") # 密码
password1 = req_dict.get("password1") # 确认密码
# 校验参数完整性
if not all([real_name, position, unit, mobile, sex, name, password]):
if not all([real_name, position, unit, mobile, password]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
# 用户名唯一(字母开头,长度4-15)
try:
patten = "^[a-zA-Z][\w]*[\w]*$"
if re.match(patten, name) and re.match(patten, name).string == name:
user = User.query.filter_by(name=name).first()
if user:
return jsonify(code=RET.DATAEXIST, msg="用户名已存在")
else:
return jsonify(code=RET.DATAERR, msg="用户名格式错误,请填入以字母开头的数字和字母组合")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="用户名格式错误")
# try:
# patten = "^[a-zA-Z][\w]*[\w]*$"
# if re.match(patten, name) and re.match(patten, name).string == name:
# user = User.query.filter_by(name=name).first()
# if user:
# return jsonify(code=RET.DATAEXIST, msg="用户名已存在")
# else:
# return jsonify(code=RET.DATAERR, msg="用户名格式错误,请填入以字母开头的数字和字母组合")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="用户名格式错误")
# 判断手机号
try:
......@@ -284,16 +210,12 @@ def add_user():
try:
role = Role.query.get(level)
govername = Government.query.get(unit) # 获取机构name
user = User(real_name=real_name, age=age, sex=sex, mobile=mobile, unit=govername.name, position=position,
name=name, flag=2, status=1, level=role.role_name)
user = User(real_name=real_name, mobile=mobile, unit=govername.name, position=position,
flag=2, status=1, level=role.role_name)
user.password = password
if section: # 部门id
secname = Section.query.get(section).name # 获取部门名
user.section = secname
if leader: # 领导
user.leader = leader
if email: # 邮箱
user.email = email
db.session.add(user)
role.users.append(user)
db.session.commit()
......@@ -303,64 +225,163 @@ def add_user():
return jsonify(code=RET.DBERR, msg="数据库错误")
# 编辑状态
@api_power.route("/updateAccount", methods=["POST"])
"""外部访客"""
# 外部访客列表
@api_power.route("/userListOfExternal", methods=["POST"])
@login_required
def update_account():
def user_list_external():
req_dict = request.get_json()
_id = req_dict.get("id")
status = req_dict.get("status") # 1通过,2在审,3驳回
page = req_dict.get("page")
perpage = req_dict.get("perpage")
# key = req_dict.get("key") # 查询条件
# 校验参数完整性
if not all([_id, status]):
if not all([page, perpage]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
user = User.query.get(_id)
if not user.role and status == 1: # 没有角色,想通过
return jsonify(code=RET.DATAERR, msg="请先在编辑,为用户添加职级角色")
user.status = status
db.session.commit()
dict_zh = {1: "通过", 2: "在审", 3: "驳回"}
data = dict_zh[status]
return jsonify(code=RET.OK, msg="修改成功", info=data)
user = User.query.filter_by(flag=1)
result = user.paginate(page, perpage).items
size = user.count()
df = [{"id": i.id,
"real_name": i.real_name if i.real_name else "-",
"mobile": i.mobile if i.mobile else "-",
"create_time": str(i.create_time) if i.create_time else "-",
} for i in result]
data = {"df": df, "size": size}
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 删除用户(批量删除,单个删除)
@api_power.route("/deleteUser", methods=["POST"])
# 外部访客状态修改(禁用、启用)
@api_power.route("/updateStatus", methods=["POST"])
@login_required
def delete_user():
def update_status():
req_dict = request.get_json()
ids = req_dict.get("id") # list[1,2,3]
_id = req_dict.get("id")
status = req_dict.get("status") # 0禁止,1在用
# 校验参数完整性
if not all([ids]):
if not all([_id]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
for i in ids:
user = User.query.get(i)
db.session.delete(user)
user = User.query.get(_id)
if status == 1:
user.status = 1
else:
user.status = 0
db.session.commit()
return jsonify(code=RET.OK, msg="删除成功")
return jsonify(code=RET.OK, msg="修改成功")
except Exception as e:
# 操作失败,操作返回
db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="删除失败")
return jsonify(code=RET.DBERR, msg="数据库操作错误")
# 职级(角色)列表获取
@api_power.route("/getRole", methods=["GET"])
@login_required
def get_role():
try:
roles = Role.query.all()
data = [{"value": role.id,
"label": role.role_name} for role in roles]
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库操作错误")
# # 局内用户筛选条件
# @api_power.route("/manage/fields", methods=["GET"])
# def manage_field():
# ''''''
# try:
# gover = Government.query.all()
# data = {"status": [{"label": "通过", "value": 1}, {"label": "在审", "value": 2}, {"label": "驳回", "value": 3}],
# "goverment": [{"label": i.name, "value": i.id} for i in gover]}
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库操作错误")
#
#
# # 局内用户筛选条件2, 根据机构获取部门
# @api_power.route("/manage/fieldt", methods=["POST"])
# def manage_fielt():
# ''''''
# req_dict = request.get_json()
# _id = req_dict.get("id") # 机构id
# try:
# gover = Government.query.get(_id)
# section = gover.sections
# data = [{"label": i.name, "value": i.id} for i in section]
#
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库操作错误")
#
#
#
#
#
#
#
#
#
#
#
# # 删除用户(批量删除,单个删除)
# @api_power.route("/deleteUser", methods=["POST"])
# @login_required
# def delete_user():
# req_dict = request.get_json()
# ids = req_dict.get("id") # list[1,2,3]
#
# # 校验参数完整性
# if not all([ids]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
# try:
# for i in ids:
# user = User.query.get(i)
# db.session.delete(user)
# 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_power.route("/getRole", methods=["GET"])
# @login_required
# def get_role():
# try:
# roles = Role.query.all()
#
# data = [{"value": role.id,
# "label": role.role_name} for role in roles]
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库操作错误")
......@@ -17,6 +17,16 @@ class BaseModel:
comment='更新时间') # 记录的更新时间
# 招商驾驶舱开工项目产业分布数据
class IndustryDistribute(db.Model):
__tablename_ = "industry_distribute"
__table_args__ = ({'comment': '招商驾驶舱开工项目产业分布数据'}) # 添加表注释
id = db.Column(db.Integer, primary_key=True, autoincrement=True, comment='主键id')
industry_name = db.Column(db.String(20), comment='行业名称')
industry_num = db.Column(db.Integer, comment='个数')
investment_volume = db.Column(db.Float, comment='投资额(亿元)')
# 全国企业
class Enterprise(db.Model):
__tablename__ = "enterprise"
......@@ -909,43 +919,24 @@ class User(BaseModel, db.Model):
# 基本信息
id = db.Column(db.Integer, primary_key=True, autoincrement=True, comment='用户编号')
name = db.Column(db.String(32), unique=True, comment='用户名')
role_id = db.Column(db.Integer, comment='角色id ')
password_hash = db.Column(db.String(128), comment='加密的密码')
real_name = db.Column(db.String(32), comment='姓名')
age = db.Column(db.Integer, comment='年龄')
sex = db.Column(db.Integer, comment='性别,男1女2')
mobile = db.Column(db.String(11), unique=True, comment='手机号')
email = db.Column(db.String(20), comment='邮箱')
# 个人中心的信息
function = db.Column(db.Text, comment='工作职能 ---个人中心')
flag = db.Column(db.Integer, comment='普通1,政府2')
status = db.Column(db.Integer, comment='0禁止,1通过,2再审,3驳回')
# status = db.Column(db.Integer, comment='通过1,在审2,驳回3')
# bused = db.Column(db.Integer) # 账户有无组织
# 政府信息
position = db.Column(db.String(30), comment='现任职务(职务)')
belong_organization = db.Column(db.String(30), comment='现任工作机构、单位(政府机构,局)')
is_organization_manager = db.Column(db.Integer, comment='是否是机构负责人')
charge_organization = db.Column(db.String(30), comment='是机构负责人的话,所负责的机构')
belong_department = db.Column(db.String(30), comment='所在部门(部门)')
is_department_manager = db.Column(db.Integer, comment='是否是部门负责人')
# charge_department = db.Column(db.String(30)) # 是部门负责人的话,所负责的部门
position = db.Column(db.String(30), comment='职务')
belong_organization = db.Column(db.String(30), comment='单位')
belong_department = db.Column(db.String(30), comment='部门')
group = db.Column(db.String(30), comment='所在组')
level = db.Column(db.String(30), comment='职级(职级) 跟role_id对应')
leader = db.Column(db.String(32), comment='领导(直属领导)')
# 三方登陆唯一标识
# 微信
# 微信 # 三方登陆唯一标识
vxopenid = db.Column(db.String(128), unique=True, comment='微信openid')
vxunionid = db.Column(db.String(128), unique=True, comment='微信unionid')
# 角色(职级配置)
role_id = db.Column(db.Integer, db.ForeignKey("role.id"), comment='角色id')
role = db.relationship("Role", backref=db.backref("users"))
# # 钉钉
# ddopenid = db.Column(db.String(128)) # 钉钉openid
# ddunionid = db.Column(db.String(128)) # 钉钉unionid
# dddingid = db.Column(db.String(128)) # 钉钉dingid
# role_id = db.Column(db.Integer, db.ForeignKey("role.id"), comment='角色id')
# role = db.relationship("Role", backref=db.backref("users"))
# 用户关注行业(图谱)
industry = db.relationship("Industry", secondary="user_industry", backref=db.backref('bindustry'))
# 用户关注太原企业
......@@ -1374,7 +1365,7 @@ class MoneyArrive(db.Model):
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='固定资产投资项目资金到位额')
arrive_money = db.Column(db.Float, comment='固定资产投资项目资金到位额')
"""以下为202212月改版后需求"""
......@@ -1721,3 +1712,5 @@ class IndustryChain(db.Model):
industry_type = db.Column(db.Integer, comment='行业类型(0是产业集群,1是上游行业,2是中游行业,3是下游行业)')
relate_id = db.Column(db.Integer, comment='关系id(关联与哪个产业环节')
......@@ -116,12 +116,12 @@ def show_all():
# carrier_obj = CarrierBuild.query.order_by(CarrierBuild.upload_time.desc())
carrier_obj = ''
if role_id == 1:
carrier_obj = CarrierBuild.query.filter_by(CarrierBuild.upload_people_id == user_id)
if role_id == 2:
carrier_obj = CarrierBuild.query.filter_by(CarrierBuild.upload_people_belong == belong_unit)
if role_id == 3:
carrier_obj = CarrierBuild.query.filter_by(CarrierBuild.audit_status == 1)
# if role_id == 1:
# carrier_obj = CarrierBuild.query.filter_by(CarrierBuild.upload_people_id == user_id)
# if role_id == 2:
# carrier_obj = CarrierBuild.query.filter_by(CarrierBuild.upload_people_belong == belong_unit)
# if role_id == 3:
# carrier_obj = CarrierBuild.query.filter_by(CarrierBuild.audit_status == 1)
carrier_obj = carrier_obj.order_by(CarrierBuild.upload_time.desc())
carrier_obj_list = carrier_obj.paginate(page, per_page).items
print(carrier_obj_list)
......@@ -206,34 +206,34 @@ def show_all():
# 设置前端页面访问权限
@api_address.route("/FontPermission", methods=["POST"])
def font_permission():
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过期,请重新登录!")
if not all([user, user_id]):
return jsonify(code=RET.PARAMERR, msg="参数不能为空!")
try:
user = User.query.get(user_id)
result = user.role_id
print(result)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
if int(result) == 1:
return jsonify(code=RET.OK, data={"role_id": result, "msg": " 我是局级领导(可以看到载体资源库所有页面,以及所有下级人员提交的内容)。"})
if int(result) == 2:
return jsonify(code=RET.OK, data={"role_id": result, "msg": " 我是部长(可以看到载体资源库的数据填报页面,以及该部门所有办事员提交的内容。)。"})
if int(result) == 3:
return jsonify(code=RET.OK, data={"role_id": result, "msg": " 我是办事员(可以看到载体资源库的数据填报页面,只能看到我自己提交的内容。)。"})
else:
return jsonify(code=RET.OK, data={"role_id": result, "msg": "无任何权限"})
# @api_address.route("/FontPermission", methods=["POST"])
# def font_permission():
# 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过期,请重新登录!")
# if not all([user, user_id]):
# return jsonify(code=RET.PARAMERR, msg="参数不能为空!")
#
# try:
# user = User.query.get(user_id)
# result = user.role_id
# print(result)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
# if int(result) == 1:
# return jsonify(code=RET.OK, data={"role_id": result, "msg": " 我是局级领导(可以看到载体资源库所有页面,以及所有下级人员提交的内容)。"})
# if int(result) == 2:
# return jsonify(code=RET.OK, data={"role_id": result, "msg": " 我是部长(可以看到载体资源库的数据填报页面,以及该部门所有办事员提交的内容。)。"})
# if int(result) == 3:
# return jsonify(code=RET.OK, data={"role_id": result, "msg": " 我是办事员(可以看到载体资源库的数据填报页面,只能看到我自己提交的内容。)。"})
# else:
# return jsonify(code=RET.OK, data={"role_id": result, "msg": "无任何权限"})
# 下载模板
......@@ -1124,12 +1124,12 @@ def batch_audit():
current_app.logger.error(e)
return jsonify(code=RET.SESSIONERR, msg="进行{}操作时用户信息校验失败,请重新登陆后尝试!".format(action_name))
if role_id == 3: # 办事员没有审核功能
return jsonify(code=RET.THIRDERR, msg="办事员没有审核功能。")
if role_id == 2 and audit_flag == 3: # 市直部门各区县领导没有驳回权限
return jsonify(code=RET.THIRDERR, msg="市直部门各区县负责人没有驳回权限。")
if role_id == 1 and audit_flag in [1, 2, 4]: # 局领导只能驳回
return jsonify(code=RET.THIRDERR, msg="市直部门各区县领导局领导只有驳回权限。")
# if role_id == 3: # 办事员没有审核功能
# return jsonify(code=RET.THIRDERR, msg="办事员没有审核功能。")
# if role_id == 2 and audit_flag == 3: # 市直部门各区县领导没有驳回权限
# return jsonify(code=RET.THIRDERR, msg="市直部门各区县负责人没有驳回权限。")
# if role_id == 1 and audit_flag in [1, 2, 4]: # 局领导只能驳回
# return jsonify(code=RET.THIRDERR, msg="市直部门各区县领导局领导只有驳回权限。")
audit_name = ''
......
......@@ -20,6 +20,30 @@ from apps import db, constants, redis_store
from apps.util import verify_token
# 招商驾驶舱开工项目产业分布数据
@api_attract.route("/IndustryDistribute", methods=["POST"])
def industry_distribute():
req_dic = request.get_json()
flag = req_dic['flag']
try:
indu_obj_list = IndustryDistribute.query.all()
if flag == 1:
data_dic = [{
"industry_name": i.industry_name,
"industry_num": i.industry_num,
} for i in indu_obj_list]
if flag == 2:
data_dic = [{
"industry_name": i.industry_name,
"investment_volume": i.investment_volume,
} for i in indu_obj_list]
return jsonify(code=RET.OK, data=data_dic, msg='查询成功!')
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
# 数据通报
@api_attract.route("/DataNotification", methods=["GET"])
def data_notification():
......@@ -979,7 +1003,6 @@ def enterprise_detail():
return jsonify(code=RET.OK, msg="获取成功", data=data)
# # 删除缓存
# @api_attract.route("/deleteX", methods=["GET"])
# def deleteX():
......
from flask import Blueprint
api_mobile = Blueprint("api_mobile", __name__)
from . import view_atlas
from . import view_user
from . import mobile_attract
from . import mobile_360
from . import mobile_collect
from . import mobile_item
from . import mobile_choose
from . import mobile_homepage
# from flask import Blueprint
#
#
# api_mobile = Blueprint("api_mobile", __name__)
#
# from . import view_atlas
# from . import view_user
# from . import mobile_attract
# from . import mobile_360
# from . import mobile_collect
# from . import mobile_item
# from . import mobile_choose
# from . import mobile_homepage
import os
import json
from elasticsearch import Elasticsearch
from flask import request, jsonify, current_app
from apps.models import *
from apps.view_mobile import api_mobile
from apps.util import login_required, verify_token
from apps.utils.response_code import RET
def body_qualificat(s, j):
body = {
"query": {
"bool": {
"must": {"match":
{"{}": "{}".format(s, j)}
}
}
}
}
return body
def body_type(s):
body = {
"query": {
"bool": {
"must": {"match":
{"entypeid": "{}".format(s)}
}
}
}
}
return body
def create_body(page, page_size, args_query, args_date, args_term):
'''
:param page:
:param page_size:
:param args_query:
:param args_date:
:param args_term:
:return:
'''
body = {
"query": {
"bool": {
"filter": {
"range": {
"build_date": {
}
}
},
"must": [
{"multi_match": {
"query": "{}".format(args_query["query"]),
"type": "best_fields",
"fields": [
"product^1.0",
"company_name^1.0",
"industry^1.0"
],
"tie_breaker": 0.3
}
},
]
}
},
"from": page,
"size": page_size,
"sort": [],
"aggs": {},
"_source": [
# 'all_info',
'industry', 'build_date', 'register_money_nums', 'product',
'company_name', "mysql_id"
],
"highlight": {
"fields": {
"product": {"type": "plain"},
"company_name": {"type": "plain"},
"industry": {"type": "plain"}
}
}
}
if args_date:
body["query"]["bool"]["filter"]["range"]["build_date"]["gte"] = args_date["build_date"][0]
body["query"]["bool"]["filter"]["range"]["build_date"]["lte"] = args_date["build_date"][1]
for k, v in args_term.items():
body["query"]["bool"]["must"].append({"term": {"{}".format(k): "{}".format(v)}})
return body
# 360企业画像两个静态表
def openDists():
upload_path = os.path.dirname(os.path.dirname(__file__)) + "/utils/json/city.json"
with open(upload_path, encoding="utf-8") as f:
data = json.load(f)
return data
# 地域层级数据分级获取
@api_mobile.route('/mobileGetRegion', methods=['GET'])
def mobile_get_region():
try:
data = openDists()
if len(data) > 0:
return jsonify(code=200, msg="查找成功", data=data)
else:
return jsonify(code=201, msg="暂时没有数据")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="查找错误")
@api_mobile.route('/mobileField', methods=['GET'])
# import os
# import json
# from elasticsearch import Elasticsearch
# from flask import request, jsonify, current_app
# from apps.models import *
# from apps.view_mobile import api_mobile
# from apps.util import login_required, verify_token
# from apps.utils.response_code import RET
#
#
# def body_qualificat(s, j):
# body = {
# "query": {
# "bool": {
# "must": {"match":
# {"{}": "{}".format(s, j)}
# }
# }
# }
# }
# return body
#
#
# def body_type(s):
# body = {
# "query": {
# "bool": {
# "must": {"match":
# {"entypeid": "{}".format(s)}
# }
# }
# }
# }
# return body
#
#
# def create_body(page, page_size, args_query, args_date, args_term):
# '''
#
# :param page:
# :param page_size:
# :param args_query:
# :param args_date:
# :param args_term:
# :return:
# '''
#
# body = {
# "query": {
# "bool": {
# "filter": {
# "range": {
# "build_date": {
# }
# }
# },
# "must": [
# {"multi_match": {
# "query": "{}".format(args_query["query"]),
# "type": "best_fields",
# "fields": [
# "product^1.0",
# "company_name^1.0",
# "industry^1.0"
# ],
# "tie_breaker": 0.3
# }
# },
# ]
# }
# },
# "from": page,
# "size": page_size,
# "sort": [],
# "aggs": {},
# "_source": [
# # 'all_info',
# 'industry', 'build_date', 'register_money_nums', 'product',
# 'company_name', "mysql_id"
# ],
# "highlight": {
# "fields": {
# "product": {"type": "plain"},
# "company_name": {"type": "plain"},
# "industry": {"type": "plain"}
# }
# }
# }
#
# if args_date:
# body["query"]["bool"]["filter"]["range"]["build_date"]["gte"] = args_date["build_date"][0]
# body["query"]["bool"]["filter"]["range"]["build_date"]["lte"] = args_date["build_date"][1]
#
# for k, v in args_term.items():
# body["query"]["bool"]["must"].append({"term": {"{}".format(k): "{}".format(v)}})
#
# return body
#
#
# # 360企业画像两个静态表
#
# def openDists():
# upload_path = os.path.dirname(os.path.dirname(__file__)) + "/utils/json/city.json"
# with open(upload_path, encoding="utf-8") as f:
# data = json.load(f)
#
# return data
#
#
# # 地域层级数据分级获取
# @api_mobile.route('/mobileGetRegion', methods=['GET'])
# def mobile_get_region():
# try:
# data = openDists()
# if len(data) > 0:
# return jsonify(code=200, msg="查找成功", data=data)
# else:
# return jsonify(code=201, msg="暂时没有数据")
#
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="查找错误")
#
#
# @api_mobile.route('/mobileField', methods=['GET'])
# # @login_required
# def mobile_field():
# '''
# 全国企业条件选择导航获取
# :return:
# '''
# try:
# property = Property.query.filter_by(statu=1)
# typy = property.filter_by(sid=1, statu=1).all()
# qualificat = property.filter_by(sid=2, statu=1).all()
# quoted = property.filter_by(sid=3, statu=1).all()
# financ = property.filter_by(sid=4, statu=1).all()
# # options: [{ value: "选项1", label: "无数据" },{ value: "选项2", label: "3333" }],
# data = {"entype": [{"name": "请选择", "id": ""}] + [{"name": i.name, "id": i.nid} for i in typy],
# "qualificat": [{"name": "请选择", "id": ""}] + [{"name": i.name, "id": i.nid} for i in qualificat],
# "quoted": [{"name": "请选择", "id": ""}] + [{"name": i.name, "id": i.nid} for i in quoted],
# "financ": [{"name": "请选择", "id": ""}] + [{"name": i.name, "id": i.nid} for i in financ],
# "buildate": [{"name": "请选择", "id": ""}] + [{"name": "1-3年", "id": 1}, {"name": "3-5年", "id": 2},
# {"name": "5-8年", "id": 3}, {"name": "8-10年", "id": 4},
# {"name": "10-15年", "id": 5}, {"name": "15年以上", "id": 6}],
# "capital": [{"name": "请选择", "id": ""}] + [{"name": "100万以内", "id": 1}, {"name": "100万-500万", "id": 2},
# {"name": "500万-1000万", "id": 3},
# {"name": "1000万-5000万", "id": 4},
# {"name": "1000万-1亿", "id": 5}, {"name": "1亿以上", "id": 6}]
# }
#
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库查询错误")
# return jsonify(code=RET.OK, msg="获取成功", options=data)
#
#
# # 搜索接口
# @api_mobile.route("/mobileSearch", methods=["POST"])
# @login_required
def mobile_field():
'''
全国企业条件选择导航获取
:return:
'''
try:
property = Property.query.filter_by(statu=1)
typy = property.filter_by(sid=1, statu=1).all()
qualificat = property.filter_by(sid=2, statu=1).all()
quoted = property.filter_by(sid=3, statu=1).all()
financ = property.filter_by(sid=4, statu=1).all()
# options: [{ value: "选项1", label: "无数据" },{ value: "选项2", label: "3333" }],
data = {"entype": [{"name": "请选择", "id": ""}] + [{"name": i.name, "id": i.nid} for i in typy],
"qualificat": [{"name": "请选择", "id": ""}] + [{"name": i.name, "id": i.nid} for i in qualificat],
"quoted": [{"name": "请选择", "id": ""}] + [{"name": i.name, "id": i.nid} for i in quoted],
"financ": [{"name": "请选择", "id": ""}] + [{"name": i.name, "id": i.nid} for i in financ],
"buildate": [{"name": "请选择", "id": ""}] + [{"name": "1-3年", "id": 1}, {"name": "3-5年", "id": 2},
{"name": "5-8年", "id": 3}, {"name": "8-10年", "id": 4},
{"name": "10-15年", "id": 5}, {"name": "15年以上", "id": 6}],
"capital": [{"name": "请选择", "id": ""}] + [{"name": "100万以内", "id": 1}, {"name": "100万-500万", "id": 2},
{"name": "500万-1000万", "id": 3},
{"name": "1000万-5000万", "id": 4},
{"name": "1000万-1亿", "id": 5}, {"name": "1亿以上", "id": 6}]
}
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
return jsonify(code=RET.OK, msg="获取成功", options=data)
# 搜索接口
@api_mobile.route("/mobileSearch", methods=["POST"])
@login_required
def mobile_search():
req_dict = request.get_json()
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
# ##es的查询,。。。。
# user_id = 2
qualificat = req_dict.get("qualificat")
entypeid = req_dict.get("entypeid")
area = req_dict.get("area")
province = None
city = None
district = None
if area:
province = area[0]
city = area[1]
district = area[2]
capital_id = req_dict.get("capital_id")
public_id = req_dict.get("public_id")
financ_id = req_dict.get("financ_id")
yearid = req_dict.get("yearid")
print(yearid)
company = req_dict.get("company")
args_query = dict()
args_date = dict()
args_term = dict()
# #每页个数
per_page = req_dict.get("per_page")
page = req_dict.get("page")
if not req_dict.get("per_page"):
per_page = 10
per_page = int(per_page)
# 页数
if not page:
page = 1
page = int(page)
page = (page - 1) * per_page
args_query["query"] = "公司"
# 搜索框
if company:
args_query["query"] = company
try:
user = User.query.get(user_id)
b = []
if user.searchlist:
for j in user.searchlist:
b.append(j.history)
if company in b:
user.searchlist.remove(user.searchlist[b.index(company)])
if len(b) > 5:
user.searchlist.remove(user.searchlist[0])
search = SearchList(history=company)
db.session.add(search)
user.searchlist.append(search)
db.session.commit()
except Exception as e:
db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
# 公司类型
if entypeid:
args_term['entypeid'] = entypeid
# 注册资本
if capital_id:
args_term['capital_id'] = capital_id
# 上市状态
if public_id:
args_term['public_id'] = public_id
# 省
if province:
args_term['province'] = province
# 市
if city:
args_term['city'] = city
# 区
if district:
args_term['district'] = district
# 公司资质
if qualificat:
if qualificat == 1:
args_term['high_new'] = 1
if qualificat == 2:
args_term['tbe'] = 1
if qualificat == 3:
args_term['quoted_company'] = 1
if qualificat == 4:
args_term['isfive'] = 1
if qualificat == 5:
args_term['unicorn'] = 1
if qualificat == 6:
args_term['dengl'] = 1
# 成立时间
if yearid:
args_term['yearid'] = yearid
if financ_id:
args_term['financ_id'] = financ_id
body = create_body(page, per_page, args_query, args_date, args_term)
if not company:
del body["query"]["bool"]["must"][0]
try:
es = Elasticsearch([{'host': '39.100.39.50', 'port': 9200}])
data = es.search(index="ty_360", body=body)
data_list = []
# 数据的列表添加进去
for i in data["hits"]['hits']:
if company:
# 判断高亮,然后添加
data_list.append({
"company": i["highlight"]["company_name"][0] if "company_name" in i["highlight"] else i["_source"][
"company_name"],
"product": i["highlight"]["product"][0] if "product" in i["highlight"] else i["_source"]["product"],
"industry": i["highlight"]["industry"][0] if "industry" in i["highlight"] else i["_source"][
"industry"],
"money": "{}万元".format(i["_source"]["register_money_nums"]),
"createtime": i["_source"]["build_date"],
"id": i["_source"]["mysql_id"],
"choice": 2
})
else:
data_list.append({
"company": i["_source"]["company_name"],
"product": i["_source"]["product"],
"industry": i["_source"]["industry"],
"money": "{}万元".format(i["_source"]["register_money_nums"]),
"createtime": i["_source"]["build_date"],
"id": i["_source"]["mysql_id"],
"choice": 2,
})
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="es数据库错误")
data = {
"data": data_list
}
return jsonify(code=RET.OK, msg="查找成功", data=data)
# 搜索历史接口
@api_mobile.route("/mobileSearchList", methods=["GET"])
@login_required
def mobile_search_list():
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
# user_id = 2
try:
user = User.query.get(user_id)
data = {
"search": [i.history for i in user.searchlist]
}
data["search"] = data["search"][::-1]
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
# 删除搜索历史接口
@api_mobile.route("/deleteSearchlist", methods=["GET"])
@login_required
def delete_search_list():
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
# user_id = 2
try:
user = User.query.get(user_id)
for i in user.searchlist:
user.searchlist.remove(i)
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="数据库错误")
# def mobile_search():
# req_dict = request.get_json()
#
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id
# # ##es的查询,。。。。
# # user_id = 2
# qualificat = req_dict.get("qualificat")
# entypeid = req_dict.get("entypeid")
# area = req_dict.get("area")
# province = None
# city = None
# district = None
# if area:
# province = area[0]
# city = area[1]
# district = area[2]
# capital_id = req_dict.get("capital_id")
# public_id = req_dict.get("public_id")
# financ_id = req_dict.get("financ_id")
# yearid = req_dict.get("yearid")
# print(yearid)
# company = req_dict.get("company")
#
# args_query = dict()
# args_date = dict()
# args_term = dict()
#
# # #每页个数
# per_page = req_dict.get("per_page")
# page = req_dict.get("page")
# if not req_dict.get("per_page"):
# per_page = 10
# per_page = int(per_page)
# # 页数
# if not page:
# page = 1
# page = int(page)
# page = (page - 1) * per_page
# args_query["query"] = "公司"
# # 搜索框
# if company:
# args_query["query"] = company
#
# try:
# user = User.query.get(user_id)
# b = []
# if user.searchlist:
# for j in user.searchlist:
# b.append(j.history)
# if company in b:
# user.searchlist.remove(user.searchlist[b.index(company)])
# if len(b) > 5:
# user.searchlist.remove(user.searchlist[0])
# search = SearchList(history=company)
# db.session.add(search)
# user.searchlist.append(search)
# db.session.commit()
# except Exception as e:
# db.session.rollback()
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
# # 公司类型
# if entypeid:
# args_term['entypeid'] = entypeid
#
# # 注册资本
# if capital_id:
# args_term['capital_id'] = capital_id
#
# # 上市状态
# if public_id:
# args_term['public_id'] = public_id
#
# # 省
# if province:
# args_term['province'] = province
#
# # 市
# if city:
# args_term['city'] = city
#
# # 区
# if district:
# args_term['district'] = district
#
# # 公司资质
# if qualificat:
#
# if qualificat == 1:
# args_term['high_new'] = 1
#
# if qualificat == 2:
# args_term['tbe'] = 1
#
# if qualificat == 3:
# args_term['quoted_company'] = 1
#
# if qualificat == 4:
# args_term['isfive'] = 1
#
# if qualificat == 5:
# args_term['unicorn'] = 1
#
# if qualificat == 6:
# args_term['dengl'] = 1
#
# # 成立时间
# if yearid:
# args_term['yearid'] = yearid
#
# if financ_id:
# args_term['financ_id'] = financ_id
#
# body = create_body(page, per_page, args_query, args_date, args_term)
# if not company:
# del body["query"]["bool"]["must"][0]
#
# try:
# es = Elasticsearch([{'host': '39.100.39.50', 'port': 9200}])
#
# data = es.search(index="ty_360", body=body)
# data_list = []
#
# # 数据的列表添加进去
# for i in data["hits"]['hits']:
#
# if company:
# # 判断高亮,然后添加
# data_list.append({
# "company": i["highlight"]["company_name"][0] if "company_name" in i["highlight"] else i["_source"][
# "company_name"],
# "product": i["highlight"]["product"][0] if "product" in i["highlight"] else i["_source"]["product"],
# "industry": i["highlight"]["industry"][0] if "industry" in i["highlight"] else i["_source"][
# "industry"],
# "money": "{}万元".format(i["_source"]["register_money_nums"]),
# "createtime": i["_source"]["build_date"],
# "id": i["_source"]["mysql_id"],
# "choice": 2
# })
# else:
# data_list.append({
# "company": i["_source"]["company_name"],
# "product": i["_source"]["product"],
# "industry": i["_source"]["industry"],
# "money": "{}万元".format(i["_source"]["register_money_nums"]),
# "createtime": i["_source"]["build_date"],
# "id": i["_source"]["mysql_id"],
# "choice": 2,
# })
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="es数据库错误")
# data = {
# "data": data_list
# }
# return jsonify(code=RET.OK, msg="查找成功", data=data)
#
#
# # 搜索历史接口
# @api_mobile.route("/mobileSearchList", methods=["GET"])
# @login_required
# def mobile_search_list():
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id
# # user_id = 2
# try:
# user = User.query.get(user_id)
# data = {
# "search": [i.history for i in user.searchlist]
# }
# data["search"] = data["search"][::-1]
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
#
# # 删除搜索历史接口
# @api_mobile.route("/deleteSearchlist", methods=["GET"])
# @login_required
# def delete_search_list():
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id
# # user_id = 2
# try:
# user = User.query.get(user_id)
# for i in user.searchlist:
# user.searchlist.remove(i)
# 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="数据库错误")
from flask import request, jsonify, session, current_app
from sqlalchemy import func, desc, or_
from apps.models import *
from apps.view_mobile import api_mobile
from apps.utils.response_code import RET
@api_mobile.route("/attractMenu", methods=["POST"])
def attract_menu():
req_dict = request.get_json()
district = req_dict.get("district")
print(district)
if not district or district == "太原市":
district = None
if district == None:
try:
company = Company.query.filter_by(city="太原市")
data = City.query.filter_by().first()
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
else:
try:
company = Company.query.filter(or_(Company.district == district, Company.induzone == district),
Company.city == "太原市")
data = City.query.filter_by(area=district).first()
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
try:
count_all = company.count()
zczb = db.session.query(func.sum(Company.capital_nums)).filter().all()
t_c5 = company.filter_by(isfive="1").count()
ssqy = company.filter_by(quoted_company="1").count()
gmys = company.filter_by(scale="1").count()
zjtx = company.filter_by(zjtg="1").count()
gxjs = company.filter_by(high_new="1").count()
kjzx = company.filter_by(tbe="1").count()
zczb = zczb[0][0]
college = College.query.filter_by()
scientific = Scientific.query.filter_by().count()
lab = Lab.query.filter_by().count()
college_211 = college.filter_by(cateid=1).count()
college_master = college.filter_by(cateid=2).count()
college_associate = college.filter_by(cateid=3).count()
if district:
zczb = db.session.query(func.sum(Company.capital_nums)). \
filter(or_(Company.district == district, Company.induzone == district)).all()
zczb = zczb[0][0]
# print(zczb)
college = College.query.filter(or_(College.admin == district, College.developarea == district))
scientific = Scientific.query.filter(
or_(Scientific.admin == district, Scientific.developarea == district)).count()
lab = Lab.query.filter(or_(Lab.admin == district, Lab.developarea == district)).count()
college_211 = college.filter_by(cateid=1).count()
college_master = college.filter_by(cateid=2).count()
college_associate = college.filter_by(cateid=3).count()
table_data = [
{"name": "优质企业", "nums": count_all},
{"name": "注册资本", "nums": "{}亿元".format(round(zczb / 10000, 2)) if zczb else "-"},
{"name": "500强企业", "nums": t_c5},
{"name": "上市企业", "nums": ssqy},
{"name": "规模以上企业", "nums": gmys},
{"name": "山西专精特新企业数", "nums": zjtx},
{"name": "高新技术企业", "nums": gxjs},
{"name": "科技型中小企业数", "nums": kjzx},
{"name": "高等院校", "nums": college_master + college_211},
{"name": "高职专科", "nums": college_associate},
{"name": "科研机构", "nums": scientific},
{"name": "创新平台", "nums": lab}
]
city_data = [
{"nums": "{}亿元".format(round(data.GDP / 10000, 2)) if data.GDP else "-", "name": "GDP"},
{"nums": "{}亿元".format(round(data.investment / 10000, 2)) if data.investment else "-", "name": "固定资产投资"},
{"nums": "{}亿元".format(round(data.retail / 10000, 2)) if data.retail else "-", "name": "社会消费零售额"},
{"nums": "{}亿元".format(round(data.public / 10000, 2)) if data.public else "-", "name": "一般公共预算支出"}
]
data = {
"table_data": table_data,
"city_data": city_data,
}
return jsonify(code=RET.OK, msg="查找成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
# 政策和重点项目 --- 重点项目需要改名称
@api_mobile.route("/attractPropol", methods=["POST"])
def attract_propol():
req_dict = request.get_json()
district = req_dict.get("district") # 县区
project = Project.query.filter_by()
policy = InduPolicy.query.filter_by()
try:
if district and district != "太原市":
project = Project.query.filter_by(district=district)
policy = InduPolicy.query.filter_by(district=district)
data_project = [{"name": i.name, "id": i.id} for i in project.all()]
data_policy = [{"name": i.name, "id": i.id} for i in policy.all()]
data = {
"project": data_project,
"policy": data_policy,
}
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DATAERR, msg="数据库错误")
# 获取重点企业的详情,详情页
@api_mobile.route("/attractKeyProject", methods=["POST"])
def attract_keyproject():
req_dic = request.get_json()
id = req_dic.get("id")
if not id:
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
project = Project.query.get(id)
data = {
"name": project.name,
"district": project.district,
"type": project.type,
"money": project.money,
"background": project.background,
"content": project.content,
"way": project.way,
"company": project.company,
"contact": project.contact,
"email": project.email
}
return jsonify(code=RET.OK, msg="查找成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
# 工程图表两个
@api_mobile.route("/attractProject", methods=["POST"])
def attract_project():
req_dict = request.get_json()
district = req_dict.get("district")
try:
list1 = NewProject.query.filter_by(district="太原市").all()
project_industry = []
for i in list1:
ss = NewProject.query.filter_by(type=i.type).first()
project_industry.append({"name": ss.type,
"number": ss.number,
"money": ss.money})
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
data = {
"project_industry": project_industry,
}
return jsonify(code=RET.OK, msg="获取成功", data=data)
# from flask import request, jsonify, session, current_app
# from sqlalchemy import func, desc, or_
# from apps.models import *
# from apps.view_mobile import api_mobile
# from apps.utils.response_code import RET
#
#
# @api_mobile.route("/attractMenu", methods=["POST"])
# def attract_menu():
# req_dict = request.get_json()
# district = req_dict.get("district")
# print(district)
# if not district or district == "太原市":
# district = None
#
# if district == None:
#
# try:
# company = Company.query.filter_by(city="太原市")
# data = City.query.filter_by().first()
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
# else:
# try:
# company = Company.query.filter(or_(Company.district == district, Company.induzone == district),
# Company.city == "太原市")
# data = City.query.filter_by(area=district).first()
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
# try:
# count_all = company.count()
#
# zczb = db.session.query(func.sum(Company.capital_nums)).filter().all()
# t_c5 = company.filter_by(isfive="1").count()
# ssqy = company.filter_by(quoted_company="1").count()
# gmys = company.filter_by(scale="1").count()
# zjtx = company.filter_by(zjtg="1").count()
# gxjs = company.filter_by(high_new="1").count()
# kjzx = company.filter_by(tbe="1").count()
#
# zczb = zczb[0][0]
# college = College.query.filter_by()
# scientific = Scientific.query.filter_by().count()
# lab = Lab.query.filter_by().count()
# college_211 = college.filter_by(cateid=1).count()
# college_master = college.filter_by(cateid=2).count()
# college_associate = college.filter_by(cateid=3).count()
#
# if district:
# zczb = db.session.query(func.sum(Company.capital_nums)). \
# filter(or_(Company.district == district, Company.induzone == district)).all()
# zczb = zczb[0][0]
# # print(zczb)
# college = College.query.filter(or_(College.admin == district, College.developarea == district))
# scientific = Scientific.query.filter(
# or_(Scientific.admin == district, Scientific.developarea == district)).count()
# lab = Lab.query.filter(or_(Lab.admin == district, Lab.developarea == district)).count()
# college_211 = college.filter_by(cateid=1).count()
# college_master = college.filter_by(cateid=2).count()
# college_associate = college.filter_by(cateid=3).count()
#
# table_data = [
# {"name": "优质企业", "nums": count_all},
# {"name": "注册资本", "nums": "{}亿元".format(round(zczb / 10000, 2)) if zczb else "-"},
# {"name": "500强企业", "nums": t_c5},
# {"name": "上市企业", "nums": ssqy},
# {"name": "规模以上企业", "nums": gmys},
# {"name": "山西专精特新企业数", "nums": zjtx},
# {"name": "高新技术企业", "nums": gxjs},
# {"name": "科技型中小企业数", "nums": kjzx},
# {"name": "高等院校", "nums": college_master + college_211},
# {"name": "高职专科", "nums": college_associate},
# {"name": "科研机构", "nums": scientific},
# {"name": "创新平台", "nums": lab}
# ]
#
# city_data = [
# {"nums": "{}亿元".format(round(data.GDP / 10000, 2)) if data.GDP else "-", "name": "GDP"},
# {"nums": "{}亿元".format(round(data.investment / 10000, 2)) if data.investment else "-", "name": "固定资产投资"},
# {"nums": "{}亿元".format(round(data.retail / 10000, 2)) if data.retail else "-", "name": "社会消费零售额"},
# {"nums": "{}亿元".format(round(data.public / 10000, 2)) if data.public else "-", "name": "一般公共预算支出"}
# ]
#
# data = {
# "table_data": table_data,
# "city_data": city_data,
# }
#
# return jsonify(code=RET.OK, msg="查找成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
#
# # 政策和重点项目 --- 重点项目需要改名称
# @api_mobile.route("/attractPropol", methods=["POST"])
# def attract_propol():
# req_dict = request.get_json()
# district = req_dict.get("district") # 县区
# project = Project.query.filter_by()
# policy = InduPolicy.query.filter_by()
# try:
# if district and district != "太原市":
# project = Project.query.filter_by(district=district)
# policy = InduPolicy.query.filter_by(district=district)
#
# data_project = [{"name": i.name, "id": i.id} for i in project.all()]
# data_policy = [{"name": i.name, "id": i.id} for i in policy.all()]
# data = {
# "project": data_project,
# "policy": data_policy,
#
# }
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DATAERR, msg="数据库错误")
#
#
# # 获取重点企业的详情,详情页
# @api_mobile.route("/attractKeyProject", methods=["POST"])
# def attract_keyproject():
# req_dic = request.get_json()
# id = req_dic.get("id")
# if not id:
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
#
# try:
# project = Project.query.get(id)
# data = {
# "name": project.name,
# "district": project.district,
# "type": project.type,
# "money": project.money,
# "background": project.background,
# "content": project.content,
# "way": project.way,
# "company": project.company,
# "contact": project.contact,
# "email": project.email
# }
# return jsonify(code=RET.OK, msg="查找成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
#
# # 工程图表两个
# @api_mobile.route("/attractProject", methods=["POST"])
# def attract_project():
# req_dict = request.get_json()
# district = req_dict.get("district")
# try:
# list1 = NewProject.query.filter_by(district="太原市").all()
# project_industry = []
# for i in list1:
# ss = NewProject.query.filter_by(type=i.type).first()
# project_industry.append({"name": ss.type,
# "number": ss.number,
# "money": ss.money})
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
# data = {
# "project_industry": project_industry,
# }
# return jsonify(code=RET.OK, msg="获取成功", data=data)
from flask import current_app, request, jsonify
from apps.models import *
from apps.utils.response_code import RET
from apps.view_mobile import api_mobile
import pymysql
def judge_number(s):
if "." in str(s):
d = s.split(".")
if len(d) == 2:
for i in d:
if i.isdigit():
pass
else:
return False
return True
return False
else:
return str(s).isdigit()
# 选址评估,选择建议
@api_mobile.route("/chooseAdvice", methods=["POST"])
def choose_advice():
req_dict = request.get_json()
company = req_dict.get("company")
industry = req_dict.get("industry")
revenue = req_dict.get("revenue")
tax = req_dict.get("tax")
product = req_dict.get("product")
budget = req_dict.get('budget')
address = req_dict.get("address")
preference = req_dict.get("preference")
if not all([company, industry, revenue, tax, product, budget, preference]):
return jsonify(code=RET.DATAERR, msg="数据不全")
for i in range(0, 3):
if not judge_number([revenue, tax, budget][i]):
return jsonify(code=RET.DATAERR, msg=["营收应该为数字", "税收应该为数字", "预算应该为数字"][i])
list_zone = []
if address and address != "太原市":
list_zone.append("(region='{}'or development_zone = '{}')".format(address, address))
list_zone.append(" (f_type is Null or f_type = {}) ".format(industry))
list_zone.append("IFNULL(induzone.tax,0)<={}".format(tax))
list_zone.append("IFNULL(induzone.invest_power,0)<={}".format(budget))
list_zone = " and ".join(list_zone)
sum_list = []
if preference[5] != "false": # 地区经济发展 ---GDP的打分
sum_list.append("IFNULL(induzone.gdp_point,0)")
if preference[1] != "false": # 产业聚集度 --- 产业的打分
# sum_list.append("IFNULL(company_industry_point,0)")
sum_list.append("IFNULL(company_industry_point.point,0)")
if preference[0] != "false": # 征服扶持力度 --- 政策数的打分
sum_list.append("IFNULL(induzone.policy_point,0)")
if preference[3] != "false": # 生活配套 -------水电打分
sum_list.append("IFNULL(induzone.warter_point,0)")
# if preference[2] : # 交通 -----交通打分
# sum_list.append("IFNULL(induzone.electricity_point,0)")
if preference[4] != "false": # 园区配套服务 ----园区的学校,商业街,宾馆打分
sum_list.append("IFNULL(induzone.mall_point,0)")
sum_list.append("IFNULL(induzone.hotel_point,0)")
sum_list.append("IFNULL(induzone.school_point,0)")
# 拼接where请求
if list_zone:
list_zone = "where " + list_zone
# 拼接排序请求
sum_list = " + ".join(sum_list)
if sum_list:
sum_list = " order by " + sum_list + " desc"
# sql语句
sql = "select * from induzone " \
"LEFT OUTER JOIN company_industry_point on induzone.name = company_industry_point.district " \
+ list_zone + sum_list
try:
conn = pymysql.connect(host='39.100.39.50',
user='root',
password='Root@2020',
db='indutyty',
charset='utf8')
cursor = conn.cursor()
# print(sql)
data_num = cursor.execute(sql)
data_list = cursor.fetchall()
# print(sql)
if data_num > 3:
data_list = data_list[0:3]
data = [{"id": i[0],
"name": i[1],
"charge": i[9] if i[9] else "-",
"phone": i[10] if i[10] else "-",
"jwd": {"lng": i[13], "lat": i[14]}} for i in data_list]
# 没有查询结果的查找
if not data_list:
data = [{"name": "对不起,没有找到合适的园区!"}]
cursor.close()
conn.close()
return jsonify(code=RET.OK, msg="选址成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
# 地图的处理
@api_mobile.route("/chooseMap", methods=["POST"])
def choose_map():
req_dict = request.get_json()
district = req_dict.get("district")
try:
if not district:
# 获取所有的园区值
district_list = Induzone.query.filter_by().all()
data = [{"name": j.name, "jwd": {"lat": j.lat, "lng": j.lng}} for j in district_list]
return jsonify(code=RET.OK, msg="查找成功", data=data)
district_list = Induzone.query.filter_by(region=district)
data = [{"name": i.name, "jwd": {"lat": i.lat, "lng": i.lng}} for i in district_list]
return jsonify(code=RET.OK, msg="查找成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
# 获取下拉列表
@api_mobile.route("/chooseDownList", methods=["GET"])
def choose_downlist():
try:
industry = Industry.query.filter_by(statu=1).all()
data = [{
"name": i.name,
"id": i.nid,
} for i in industry]
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
return jsonify(code=RET.OK, msg="查找成功", data=data)
# from flask import current_app, request, jsonify
# from apps.models import *
# from apps.utils.response_code import RET
# from apps.view_mobile import api_mobile
# import pymysql
#
#
# def judge_number(s):
# if "." in str(s):
# d = s.split(".")
# if len(d) == 2:
# for i in d:
# if i.isdigit():
# pass
# else:
# return False
# return True
# return False
# else:
# return str(s).isdigit()
#
#
# # 选址评估,选择建议
# @api_mobile.route("/chooseAdvice", methods=["POST"])
# def choose_advice():
# req_dict = request.get_json()
#
# company = req_dict.get("company")
# industry = req_dict.get("industry")
# revenue = req_dict.get("revenue")
# tax = req_dict.get("tax")
# product = req_dict.get("product")
# budget = req_dict.get('budget')
# address = req_dict.get("address")
# preference = req_dict.get("preference")
# if not all([company, industry, revenue, tax, product, budget, preference]):
# return jsonify(code=RET.DATAERR, msg="数据不全")
# for i in range(0, 3):
# if not judge_number([revenue, tax, budget][i]):
# return jsonify(code=RET.DATAERR, msg=["营收应该为数字", "税收应该为数字", "预算应该为数字"][i])
# list_zone = []
# if address and address != "太原市":
# list_zone.append("(region='{}'or development_zone = '{}')".format(address, address))
#
# list_zone.append(" (f_type is Null or f_type = {}) ".format(industry))
# list_zone.append("IFNULL(induzone.tax,0)<={}".format(tax))
# list_zone.append("IFNULL(induzone.invest_power,0)<={}".format(budget))
# list_zone = " and ".join(list_zone)
#
# sum_list = []
# if preference[5] != "false": # 地区经济发展 ---GDP的打分
# sum_list.append("IFNULL(induzone.gdp_point,0)")
#
# if preference[1] != "false": # 产业聚集度 --- 产业的打分
# # sum_list.append("IFNULL(company_industry_point,0)")
# sum_list.append("IFNULL(company_industry_point.point,0)")
#
# if preference[0] != "false": # 征服扶持力度 --- 政策数的打分
# sum_list.append("IFNULL(induzone.policy_point,0)")
#
# if preference[3] != "false": # 生活配套 -------水电打分
# sum_list.append("IFNULL(induzone.warter_point,0)")
#
# # if preference[2] : # 交通 -----交通打分
# # sum_list.append("IFNULL(induzone.electricity_point,0)")
#
# if preference[4] != "false": # 园区配套服务 ----园区的学校,商业街,宾馆打分
# sum_list.append("IFNULL(induzone.mall_point,0)")
# sum_list.append("IFNULL(induzone.hotel_point,0)")
# sum_list.append("IFNULL(induzone.school_point,0)")
#
# # 拼接where请求
# if list_zone:
# list_zone = "where " + list_zone
#
# # 拼接排序请求
# sum_list = " + ".join(sum_list)
# if sum_list:
# sum_list = " order by " + sum_list + " desc"
# # sql语句
# sql = "select * from induzone " \
# "LEFT OUTER JOIN company_industry_point on induzone.name = company_industry_point.district " \
# + list_zone + sum_list
# try:
# conn = pymysql.connect(host='39.100.39.50',
# user='root',
# password='Root@2020',
# db='indutyty',
# charset='utf8')
#
# cursor = conn.cursor()
# # print(sql)
# data_num = cursor.execute(sql)
# data_list = cursor.fetchall()
#
# # print(sql)
# if data_num > 3:
# data_list = data_list[0:3]
#
# data = [{"id": i[0],
# "name": i[1],
# "charge": i[9] if i[9] else "-",
# "phone": i[10] if i[10] else "-",
# "jwd": {"lng": i[13], "lat": i[14]}} for i in data_list]
# # 没有查询结果的查找
# if not data_list:
# data = [{"name": "对不起,没有找到合适的园区!"}]
# cursor.close()
# conn.close()
# return jsonify(code=RET.OK, msg="选址成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
#
# # 地图的处理
# @api_mobile.route("/chooseMap", methods=["POST"])
# def choose_map():
# req_dict = request.get_json()
# district = req_dict.get("district")
#
# try:
# if not district:
# # 获取所有的园区值
# district_list = Induzone.query.filter_by().all()
# data = [{"name": j.name, "jwd": {"lat": j.lat, "lng": j.lng}} for j in district_list]
# return jsonify(code=RET.OK, msg="查找成功", data=data)
# district_list = Induzone.query.filter_by(region=district)
# data = [{"name": i.name, "jwd": {"lat": i.lat, "lng": i.lng}} for i in district_list]
# return jsonify(code=RET.OK, msg="查找成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
#
# # 获取下拉列表
# @api_mobile.route("/chooseDownList", methods=["GET"])
# def choose_downlist():
# try:
# industry = Industry.query.filter_by(statu=1).all()
# data = [{
# "name": i.name,
# "id": i.nid,
# } for i in industry]
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
# return jsonify(code=RET.OK, msg="查找成功", data=data)
import re
import random
import threading
from flask import jsonify, request, current_app
from flask_mail import Mail, Message
from apps import redis_store, creat_app
from apps.view_mobile import api_mobile
from apps.models import *
from apps.utils.response_code import RET
from apps.util import login_required,verify_token
from apps.utils.send_phone_info import send_code_new
@api_mobile.route("/mobilceCollect",methods = ["POST"])
#@login_required
def mobile_collect_com():
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id
user_id = 3
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")
if not page:
page = 1
if not per_page:
per_page = 10
if 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()
company.append({
"id": i.id,
"company_name": i.company_name,
"create_time": create_time.create_time.strftime('%Y-%m-%d'),
"build_date": i.build_date.strftime("%Y-%m-%d") if i.build_date else "-",
"legal":i.legal if i.legal else "-",
"money":"{}万元".format(i.capital_nums) if i.capital_nums 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'),
"build_date": i.build_date.strftime("%Y-%m-%d") if i.build_date else "-",
"legal":i.legal if i.legal else "-",
"money":"{}万元".format(i.capital_nums) if i.capital_nums 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)
maxnum = len(user.industry)
industry = []
industry_list = user.industry[(page - 1) * per_page:page * per_page]
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
try:
for i in industry_list:
# 查询关注时间
indu = UserIndustry.query.filter_by(industry_id=i.id, user_id=user_id).first()
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
})
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
data = {
"ob_list": industry,
"maxnum": maxnum
}
return jsonify(code=200, msg="查找成功", data=data)
#取消收藏
@api_mobile.route("/mobileDelete", methods=["POST"])
@login_required
def mobile_delete():
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
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 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 = "数据库错误")
\ No newline at end of file
# import re
# import random
# import threading
# from flask import jsonify, request, current_app
# from flask_mail import Mail, Message
# from apps import redis_store, creat_app
# from apps.view_mobile import api_mobile
# from apps.models import *
# from apps.utils.response_code import RET
# from apps.util import login_required,verify_token
# from apps.utils.send_phone_info import send_code_new
#
# @api_mobile.route("/mobilceCollect",methods = ["POST"])
# #@login_required
# def mobile_collect_com():
#
# # token = request.headers["token"]
# # user = verify_token(token)
# # user_id = user.id
# user_id = 3
# 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")
# if not page:
# page = 1
#
# if not per_page:
# per_page = 10
#
# if 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()
# company.append({
# "id": i.id,
# "company_name": i.company_name,
# "create_time": create_time.create_time.strftime('%Y-%m-%d'),
# "build_date": i.build_date.strftime("%Y-%m-%d") if i.build_date else "-",
# "legal":i.legal if i.legal else "-",
# "money":"{}万元".format(i.capital_nums) if i.capital_nums 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'),
# "build_date": i.build_date.strftime("%Y-%m-%d") if i.build_date else "-",
# "legal":i.legal if i.legal else "-",
# "money":"{}万元".format(i.capital_nums) if i.capital_nums 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)
# maxnum = len(user.industry)
# industry = []
# industry_list = user.industry[(page - 1) * per_page:page * per_page]
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
# try:
# for i in industry_list:
# # 查询关注时间
# indu = UserIndustry.query.filter_by(industry_id=i.id, user_id=user_id).first()
# 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
# })
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
# data = {
# "ob_list": industry,
# "maxnum": maxnum
# }
# return jsonify(code=200, msg="查找成功", data=data)
#
#
#
# #取消收藏
# @api_mobile.route("/mobileDelete", methods=["POST"])
# @login_required
# def mobile_delete():
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id
#
# 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 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 = "数据库错误")
\ No newline at end of file
import os
import json
from elasticsearch import Elasticsearch
from flask import request, jsonify, current_app
from apps.models import *
from apps.view_mobile import api_mobile
from apps.util import login_required, verify_token
from apps.utils.response_code import RET
def create_body(page, page_size, args_query, args_date, args_term):
'''
:param page:
:param page_size:
:param args_query:
:param args_date:
:param args_term:
:return:
'''
body = {
"query": {
"bool": {
"filter": {
"range": {
"build_date": {
}
}
},
"must": [
{"multi_match": {
"query": "{}".format(args_query["query"]),
"type": "best_fields",
"fields": [
"product^1.0",
"company_name^1.0",
"industry^1.0"
],
"tie_breaker": 0.3
}
},
]
}
},
"from": page,
"size": page_size,
"sort": [],
"aggs": {},
"_source": [
#'all_info',
'industry', 'build_date', 'register_money_nums', 'product',
'company_name',"mysql_id"
],
"highlight": {
"fields": {
"product": {"type": "plain"},
"company_name": {"type": "plain"},
"industry": {"type": "plain"}
}
}
}
if args_date:
body["query"]["bool"]["filter"]["range"]["build_date"]["gte"] = args_date["build_date"][0]
body["query"]["bool"]["filter"]["range"]["build_date"]["lte"] = args_date["build_date"][1]
for k, v in args_term.items():
body["query"]["bool"]["must"].append({"term": {"{}".format(k): "{}".format(v)}})
return body
#搜索接口
@api_mobile.route("/mobileSearchTy", methods=["POST"])
@login_required
def mobile_search_ty():
req_dict = request.get_json()
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
company = req_dict.get("company")
if not company:
return jsonify(code = RET.PARAMERR,msg = "数据库错误")
args_query = dict()
args_date = dict()
args_term = dict()
# #每页个数
per_page = req_dict.get("per_page")
page = req_dict.get("page")
if not req_dict.get("per_page"):
per_page = 10
per_page = int(per_page)
# 页数
if not page:
page = 1
page = int(page)
args_query["query"] = company
try:
user = User.query.get(user_id)
b = []
if user.searchlist:
for j in user.searchlist:
b.append(j.history)
if company in b:
user.searchlist.remove(user.searchlist[b.index(company)])
if len(b) > 5:
user.searchlist.remove(user.searchlist[0])
search = SearchList(history=company)
db.session.add(search)
user.searchlist.append(search)
db.session.commit()
except Exception as e:
db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
body = create_body(page, per_page, args_query, args_date, args_term)
try:
es = Elasticsearch([{'host': '39.100.39.50', 'port': 9200}])
data = es.search(index="ty_com", body=body)
data_list = []
#数据的列表添加进去
for i in data["hits"]['hits']:
if company:
# 判断高亮,然后添加
data_list.append({
"company": i["highlight"]["company_name"][0] if "company_name" in i["highlight"] else i["_source"]["company_name"],
"product": i["highlight"]["product"][0] if "product" in i["highlight"] else i["_source"]["product"],
"industry": i["highlight"]["industry"][0] if "industry" in i["highlight"] else i["_source"]["industry"],
"money": "{}万元".format( i["_source"]["register_money_nums"]),
"createtime": i["_source"]["build_date"],
"id": i["_source"]["mysql_id"],
"choice": 1
})
else:
data_list.append({
"company": i["_source"]["company_name"],
"product": i["_source"]["product"],
"industry": i["_source"]["industry"],
"money": "{}万元".format(i["_source"]["register_money_nums"]),
"createtime": i["_source"]["build_date"],
"id": i["_source"]["mysql_id"],
"choice":1,
})
except Exception as e:
current_app.logger.error(e)
return jsonify(code = RET.DBERR,msg= "es数据库错误")
data = {
"data": data_list
}
return jsonify(code=RET.OK, msg="查找成功", data=data)
# import os
# import json
# from elasticsearch import Elasticsearch
# from flask import request, jsonify, current_app
# from apps.models import *
# from apps.view_mobile import api_mobile
# from apps.util import login_required, verify_token
# from apps.utils.response_code import RET
#
# def create_body(page, page_size, args_query, args_date, args_term):
# '''
#
# :param page:
# :param page_size:
# :param args_query:
# :param args_date:
# :param args_term:
# :return:
# '''
#
# body = {
# "query": {
# "bool": {
# "filter": {
# "range": {
# "build_date": {
# }
# }
# },
# "must": [
# {"multi_match": {
# "query": "{}".format(args_query["query"]),
# "type": "best_fields",
# "fields": [
# "product^1.0",
# "company_name^1.0",
# "industry^1.0"
# ],
# "tie_breaker": 0.3
# }
# },
# ]
# }
# },
# "from": page,
# "size": page_size,
# "sort": [],
# "aggs": {},
# "_source": [
# #'all_info',
# 'industry', 'build_date', 'register_money_nums', 'product',
# 'company_name',"mysql_id"
# ],
# "highlight": {
# "fields": {
# "product": {"type": "plain"},
# "company_name": {"type": "plain"},
# "industry": {"type": "plain"}
# }
# }
# }
#
# if args_date:
# body["query"]["bool"]["filter"]["range"]["build_date"]["gte"] = args_date["build_date"][0]
# body["query"]["bool"]["filter"]["range"]["build_date"]["lte"] = args_date["build_date"][1]
#
# for k, v in args_term.items():
# body["query"]["bool"]["must"].append({"term": {"{}".format(k): "{}".format(v)}})
#
# return body
#
#
#
# #搜索接口
# @api_mobile.route("/mobileSearchTy", methods=["POST"])
# @login_required
# def mobile_search_ty():
# req_dict = request.get_json()
#
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id
#
# company = req_dict.get("company")
# if not company:
# return jsonify(code = RET.PARAMERR,msg = "数据库错误")
# args_query = dict()
# args_date = dict()
# args_term = dict()
#
# # #每页个数
# per_page = req_dict.get("per_page")
# page = req_dict.get("page")
# if not req_dict.get("per_page"):
# per_page = 10
# per_page = int(per_page)
# # 页数
# if not page:
# page = 1
# page = int(page)
# args_query["query"] = company
#
# try:
# user = User.query.get(user_id)
# b = []
# if user.searchlist:
# for j in user.searchlist:
# b.append(j.history)
# if company in b:
# user.searchlist.remove(user.searchlist[b.index(company)])
# if len(b) > 5:
# user.searchlist.remove(user.searchlist[0])
# search = SearchList(history=company)
# db.session.add(search)
# user.searchlist.append(search)
# db.session.commit()
# except Exception as e:
# db.session.rollback()
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
# body = create_body(page, per_page, args_query, args_date, args_term)
#
# try:
# es = Elasticsearch([{'host': '39.100.39.50', 'port': 9200}])
# data = es.search(index="ty_com", body=body)
# data_list = []
#
# #数据的列表添加进去
# for i in data["hits"]['hits']:
#
# if company:
# # 判断高亮,然后添加
# data_list.append({
# "company": i["highlight"]["company_name"][0] if "company_name" in i["highlight"] else i["_source"]["company_name"],
# "product": i["highlight"]["product"][0] if "product" in i["highlight"] else i["_source"]["product"],
# "industry": i["highlight"]["industry"][0] if "industry" in i["highlight"] else i["_source"]["industry"],
# "money": "{}万元".format( i["_source"]["register_money_nums"]),
# "createtime": i["_source"]["build_date"],
# "id": i["_source"]["mysql_id"],
# "choice": 1
# })
# else:
# data_list.append({
# "company": i["_source"]["company_name"],
# "product": i["_source"]["product"],
# "industry": i["_source"]["industry"],
# "money": "{}万元".format(i["_source"]["register_money_nums"]),
# "createtime": i["_source"]["build_date"],
# "id": i["_source"]["mysql_id"],
# "choice":1,
# })
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code = RET.DBERR,msg= "es数据库错误")
# data = {
# "data": data_list
# }
# return jsonify(code=RET.OK, msg="查找成功", data=data)
#
#
#
import os
import time
import datetime
import re
import pandas as pd
from flask import jsonify, request, current_app
from sqlalchemy import or_, and_, desc
from apps.models import *
from apps.util import login_required,verify_token
from apps.view_mobile import api_mobile
from apps.utils.response_code import RET
from dateutil.relativedelta import relativedelta
def get_year_month(year,month):
year = int(year)
month = int(month)
if month == 12:
year += 1
month = 1
else:
year = year
month += 1
return year,month
def get_ininvest_id(x):
x = int(x)
if x < 0:
return 0
if x <= 1:
return 1
if x <= 10:
return 2
if x <= 50:
return 3
if x < 100:
return 4
return 5
# 招商资源管理
# 新增项目详情页的下拉列表
@api_mobile.route("/mobileInList", methods=["GET"])
# import os
# import time
# import datetime
# import re
# import pandas as pd
# from flask import jsonify, request, current_app
# from sqlalchemy import or_, and_, desc
# from apps.models import *
# from apps.util import login_required,verify_token
# from apps.view_mobile import api_mobile
# from apps.utils.response_code import RET
# from dateutil.relativedelta import relativedelta
#
# def get_year_month(year,month):
# year = int(year)
# month = int(month)
# if month == 12:
# year += 1
# month = 1
# else:
# year = year
# month += 1
# return year,month
#
# def get_ininvest_id(x):
# x = int(x)
# if x < 0:
# return 0
# if x <= 1:
# return 1
# if x <= 10:
# return 2
# if x <= 50:
# return 3
# if x < 100:
# return 4
# return 5
#
#
# # 招商资源管理
# # 新增项目详情页的下拉列表
# @api_mobile.route("/mobileInList", methods=["GET"])
# # @login_required
# def mobile_in_list():
#
# # token = request.headers["token"]
# # user = verify_token(token)
# # user_id = user.id
# user_id = 3
# try:
# user = User.query.get(user_id)
# role = user.flag
# if role != 2:
# return jsonify(code = RET.ROLEERR,msg = "无权限查看此内容")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
# try:
# attract = Attract.query.filter_by(statu=1)
# industry_list = attract.filter_by(sid=1).all() # 行业表
# stage_list = attract.filter_by(sid=2).all() # 项目阶段表
# invest = [{"name":"请选择","id":""},{"name":"1亿元以下","id":1},{"name":"1-10亿元","id":2},
# {"name":"10-50亿元","id":3},{"name":"50-100亿元","id":4},
# {"name":"100亿元以上","id":5}]
# unit = user.unit # 操作人的机构
# government = Government.query.filter_by(name = unit).first()
# section_list = government.sections
# industry = [{"name": i.name, "industry_id": i.nid} for i in industry_list]
# industry = [{"name":"请选择","industry_id":""}] + industry
# stage = [{"name": i.name, "stage_id": i.nid} for i in stage_list]
# stage = [{"name":"请选择","stage_id":""}]+stage
# section = [{"name": i.name, "section_id": i.id} for i in section_list]
# section = [{"name":"请选择","section_id":""}] + section
# data = {
# "industry": industry,
# "stage": stage,
# "invest":invest,
# "section":section
# }
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
# # 招商资源管理页面的详情页
# @api_mobile.route("/mobileInItem", methods=["POST"])
# # @login_required
# def mobile_in_item():
#
# # token = request.headers["token"]
# # user = verify_token(token)
# # user_id = user.id
# user_id = 3
# try:
# user = User.query.get(user_id)
# unit = user.unit # 用户所在的部门
# role = user.flag
# if role != 2:
# return jsonify(code=RET.ROLEERR, msg="无权限查看此内容")
# role = user.role.role
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
# req_dic = request.get_json()
# page = req_dic.get("page") # 页数
# perpage = req_dic.get("perpage") # 每页个数
# stage_id = req_dic.get("stage_id") # 项目进展
# indu_id = req_dic.get("indu_id") # 行业
# invest_id = req_dic.get("invest_id") # 投资
# section = req_dic.get("section") # 部门
# search = req_dic.get("search") # 搜索栏搜索的值
# #order = req_dic.get("order") # 按照投资额的顺序 #1为顺序,2为倒序
# if search:
# try:
# user = User.query.get(user_id)
# b = []
# print(user.searchitem)
# if user.searchitem:
# for j in user.searchitem:
# b.append(j.history)
# if search in b:
# user.searchitem.remove(user.searchitem[b.index(search)])
# if len(b) > 5:
# user.searchitem.remove(user.searchitem[0])
# sear = SearchItem(history=search)
# db.session.add(sear)
# user.searchitem.append(sear)
# db.session.commit()
# except Exception as e:
# db.session.rollback()
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg='数据库错误')
# # 获取当前账号的权限制
# try:
# item = Item.query.filter_by()
# if role[0] == "1":
# item = item.filter_by(unit=unit)
#
# # 权限查找
# if role[0] == "2": # 部级
# item = item.filter_by(section=user.section)
#
# if role[0] == "3": # 个人
# item = item.filter(or_(Item.share.like("%--" + str(user_id) + "--%"), Item.user_id == user_id))
#
# if not page:
# page = 1
#
# if not perpage:
# perpage = 10
#
# if stage_id:
# item = item.filter_by(stage_id=stage_id)
#
# if indu_id:
# item = item.filter_by(indu_id=indu_id)
#
# if invest_id:
# item = item.filter_by(invest_id=invest_id)
#
# if section:
# if section != "请选择":
# item = item.filter_by(section=section)
#
# if search:
# item = item.filter(or_(Item.company_name.like("%" + search + "%")
# , Item.name.like("%" + search + "%")))
#
# # if order == 2:
# # item = item.order_by(desc("invest"))
# # else:
# # item = item.order_by("invest")
# item = item.order_by(desc("id"))
#
# maxnum = len(item.all())
# item = item.paginate(page, perpage).items
#
# data_list = []
# #status_list = ["", "未上报", "已上报", "已驳回", "已通过"]
# for i in item:
# # status = i.status
# # if not i.status:
# # status = 0
# data_list.append(
# {
# "id": i.id,
# "company_name": i.company_name,
# "name": i.name,
# #"product": i.product,
# #"industry": i.industry,
# #"invest": i.invest,
# #"section": i.section,
# "stage": i.stage,
# "unit":i.unit,
# "link": i.link,
# #"status": status_list[int(status)]
# }
# )
# data = {"data_list": data_list, "maxnum": maxnum}
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
#
# # 招商资源管理
# # 新增项目详情页的下拉列表
# @api_mobile.route("/mobileUpList", methods=["GET"])
# # @login_required
# def mobile_up_list():
#
# # token = request.headers["token"]
# # user = verify_token(token)
# # user_id = user.id
# user_id = 3
# try:
# user = User.query.get(user_id)
# role = user.flag
# if role != 2:
# return jsonify(code=RET.ROLEERR, msg="无权限查看此内容")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
# try:
# attract = Attract.query.filter_by(statu=1)
# industry_list = attract.filter_by(sid=1).all()
# stage_list = attract.filter_by(sid=2).all() # 项目阶段
# unit = Government.query.filter_by().all()
# industry = [{"name": i.name, "indu_id": i.nid} for i in industry_list] # 项目行业
# industry = [{"name": "请选择", "indu_id": ""}] + industry
# stage = [{"name": i.name, "stage_id": i.nid} for i in stage_list] # 项目阶段
# stage = [{"name": "请选择", "stage_id": ""}] + stage
# unit = [{"name": i.name, "unit_id": i.id} for i in unit] # 报送单位
# unit = [{"name": "请选择", "unit_id": ""}] + unit
# invest = [{"invest": "请选择", "invest_id": ""}, {"invest": "1亿元以下", "invest_id": 1},
# {"invest": "1-10亿", "invest_id": 2},
# {"invest": "10-50亿", "invest_id": 3}, {"invest": "50-100亿", "invest_id": 4},
# {"invest": "100亿以上", "invest_id": 5}] # 投资额
# data = {
# "industry": industry,
# "stage": stage,
# "unit": unit,
# "invest": invest
# }
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
#
# @api_mobile.route("/mobileUpItem", methods=["POST"])
# @login_required
def mobile_in_list():
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id
user_id = 3
try:
user = User.query.get(user_id)
role = user.flag
if role != 2:
return jsonify(code = RET.ROLEERR,msg = "无权限查看此内容")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
try:
attract = Attract.query.filter_by(statu=1)
industry_list = attract.filter_by(sid=1).all() # 行业表
stage_list = attract.filter_by(sid=2).all() # 项目阶段表
invest = [{"name":"请选择","id":""},{"name":"1亿元以下","id":1},{"name":"1-10亿元","id":2},
{"name":"10-50亿元","id":3},{"name":"50-100亿元","id":4},
{"name":"100亿元以上","id":5}]
unit = user.unit # 操作人的机构
government = Government.query.filter_by(name = unit).first()
section_list = government.sections
industry = [{"name": i.name, "industry_id": i.nid} for i in industry_list]
industry = [{"name":"请选择","industry_id":""}] + industry
stage = [{"name": i.name, "stage_id": i.nid} for i in stage_list]
stage = [{"name":"请选择","stage_id":""}]+stage
section = [{"name": i.name, "section_id": i.id} for i in section_list]
section = [{"name":"请选择","section_id":""}] + section
data = {
"industry": industry,
"stage": stage,
"invest":invest,
"section":section
}
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
# 招商资源管理页面的详情页
@api_mobile.route("/mobileInItem", methods=["POST"])
# def mobile_up_item():
#
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id
# try:
# user = User.query.get(user_id)
# role = user.flag
# if role != 2:
# return jsonify(code=RET.ROLEERR, msg="无权限查看此内容")
# unit = user.unit
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
# #user_id = 3
# req_dic = request.get_json()
#
# indu_id = req_dic.get("indu_id") # 行业,
# invest_id = req_dic.get("invest_id") # 投资额ID
# evolve_id = req_dic.get("stage_id") # 项目进度
# unit_name = req_dic.get("unit") # 报送单位
# way_id = req_dic.get("way_id") # 查看方式
# search = req_dic.get("search") # 搜索框
# order = str(req_dic.get("order")) # 顺序 1-正序,2-倒序
# page = req_dic.get("page") # 页数
# perpage = req_dic.get("perpage") # 每页个数
# if search:
# try:
# user = User.query.get(user_id)
# b = []
# if user.searchitem:
# for j in user.searchitem:
# b.append(j.history)
# if search in b:
# user.searchitem.remove(user.searchitem[b.index(search)])
# if len(b) > 5:
# user.searchitem.remove(user.searchitem[0])
# sear = SearchItem(history=search)
# db.session.add(sear)
# user.searchitem.append(sear)
# db.session.commit()
# except Exception as e:
# db.session.rollback()
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg='数据库错误')
#
# try:
# item = Item.query.filter_by(unit_up=unit)
#
# if not page:
# page = 1
#
# if not perpage:
# perpage = 10
#
# if indu_id:
# item = item.filter_by(indu_id=indu_id)
#
# if invest_id:
# item = item.filter_by(invest_id=invest_id)
#
# if evolve_id:
# item = item.filter_by(stage_id=evolve_id)
#
# if unit_name:
# if unit_name != "请选择":
# item = item.filter_by(unit=unit_name)
#
# # 进行中项目
# if way_id == 1:
# # 数据可能需要改
# item = item.filter(and_(Item.stage_id != 5, Item.stage_id != 10))
# # 投促局调度的项目
# if way_id == 2:
# item = item.filter_by(belong=1)
# # 搜索,模糊查询
# if search:
# item = item.filter(or_(Item.company_name.like('%' + search + "%"), Item.name.like('%' + search + "%")))
# # 排序
# item = item.order_by(desc(Item.id))
# if order:
# if order == "2":
# item = item.order_by(desc(Item.invest))
# else:
# item = item.order_by(Item.invest)
#
# maxnum = len(item.all())
# item = item.paginate(page, perpage).items
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code = RET.DBERR,msg = "数据库错误")
# # for j in government_list:
# # new_item = item.filter_by(unit_up = j.name).order_by(desc(Item.id)).all()
# #status_list = ["", "未上报", "已上报", "已驳回", "已通过"]
# data_list = []
# for i in item:
# # status = i.status
# # if not i.status:
# # status = 0
# data_list.append({
# "item_id":i.id,
# "name": i.name,
# "company": i.company_name,
# #"product": i.product,
# #"industry": i.industry,
# #"invest": i.invest,
# "stage": i.stage,
# "unit": i.unit,
# "link": i.link,
# #"status":status_list[int(status)]
# })
# data = {"data_list": data_list, "maxnum": maxnum}
# return jsonify(code=RET.OK, msg="查找成功", data=data)
#
#
# @api_mobile.route("/mobiledetailsItem", methods=["POST"])
# @login_required
def mobile_in_item():
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id
user_id = 3
try:
user = User.query.get(user_id)
unit = user.unit # 用户所在的部门
role = user.flag
if role != 2:
return jsonify(code=RET.ROLEERR, msg="无权限查看此内容")
role = user.role.role
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
req_dic = request.get_json()
page = req_dic.get("page") # 页数
perpage = req_dic.get("perpage") # 每页个数
stage_id = req_dic.get("stage_id") # 项目进展
indu_id = req_dic.get("indu_id") # 行业
invest_id = req_dic.get("invest_id") # 投资
section = req_dic.get("section") # 部门
search = req_dic.get("search") # 搜索栏搜索的值
#order = req_dic.get("order") # 按照投资额的顺序 #1为顺序,2为倒序
if search:
try:
user = User.query.get(user_id)
b = []
print(user.searchitem)
if user.searchitem:
for j in user.searchitem:
b.append(j.history)
if search in b:
user.searchitem.remove(user.searchitem[b.index(search)])
if len(b) > 5:
user.searchitem.remove(user.searchitem[0])
sear = SearchItem(history=search)
db.session.add(sear)
user.searchitem.append(sear)
db.session.commit()
except Exception as e:
db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg='数据库错误')
# 获取当前账号的权限制
try:
item = Item.query.filter_by()
if role[0] == "1":
item = item.filter_by(unit=unit)
# 权限查找
if role[0] == "2": # 部级
item = item.filter_by(section=user.section)
if role[0] == "3": # 个人
item = item.filter(or_(Item.share.like("%--" + str(user_id) + "--%"), Item.user_id == user_id))
if not page:
page = 1
if not perpage:
perpage = 10
if stage_id:
item = item.filter_by(stage_id=stage_id)
if indu_id:
item = item.filter_by(indu_id=indu_id)
if invest_id:
item = item.filter_by(invest_id=invest_id)
if section:
if section != "请选择":
item = item.filter_by(section=section)
if search:
item = item.filter(or_(Item.company_name.like("%" + search + "%")
, Item.name.like("%" + search + "%")))
# if order == 2:
# item = item.order_by(desc("invest"))
# else:
# item = item.order_by("invest")
item = item.order_by(desc("id"))
maxnum = len(item.all())
item = item.paginate(page, perpage).items
data_list = []
#status_list = ["", "未上报", "已上报", "已驳回", "已通过"]
for i in item:
# status = i.status
# if not i.status:
# status = 0
data_list.append(
{
"id": i.id,
"company_name": i.company_name,
"name": i.name,
#"product": i.product,
#"industry": i.industry,
#"invest": i.invest,
#"section": i.section,
"stage": i.stage,
"unit":i.unit,
"link": i.link,
#"status": status_list[int(status)]
}
)
data = {"data_list": data_list, "maxnum": maxnum}
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
# 招商资源管理
# 新增项目详情页的下拉列表
@api_mobile.route("/mobileUpList", methods=["GET"])
# def mobile_details_item():
#
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id
# # user_id = 3
# try:
# user = User.query.get(user_id)
# role = user.flag
# if role != 2:
# return jsonify(code=RET.ROLEERR, msg="无权限查看此内容")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
# req_dic = request.get_json()
# item_id = req_dic.get("item_id")
#
# if not item_id:
# return jsonify(code=RET.DATAERR, msg="缺少必要的参数")
#
# try:
# item = Item.query.get(item_id)
# if not item:
# return jsonify(code=RET.DATAERR, msg="不存在这样的项目")
#
# data = {
# "build_date": item.build_date.strftime('%Y-%m-%d'),
# "company_name": item.company_name,
# "admin": item.admin,
# "mobile": item.mobile,
# "email": item.email,
# "name": item.name,
# "store": item.store.strftime('%Y-%m-%d'),
# "product": item.product,
# "industry": item.industry,
# "invest": item.invest,
# "area": item.area,
# "value": item.value,
# "tax": item.tax,
# "unit":item.unit,
# "link": item.link,
# "link_mobile": item.link_mobile,
# "email": item.email,
# # "level": item.level,
# # "stage": item.stage,
# "main_introduce": item.main_introduce if item.main_introduce else "-",
# "invest_introduce": item.invest_introduce if item.invest_introduce else "-",
# "build_introduce": item.build_introduce if item.build_introduce else "-",
# "encomy": item.encomy if item.encomy else "-",
# "policy": item.policy if item.policy else "-",
# "question": item.question if item.question else "-",
# }
# return jsonify(code=RET.OK, msg="查找成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
# #搜索历史接口
# @api_mobile.route("/mobileSearchItem",methods = ["GET"])
# @login_required
def mobile_up_list():
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id
user_id = 3
try:
user = User.query.get(user_id)
role = user.flag
if role != 2:
return jsonify(code=RET.ROLEERR, msg="无权限查看此内容")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
try:
attract = Attract.query.filter_by(statu=1)
industry_list = attract.filter_by(sid=1).all()
stage_list = attract.filter_by(sid=2).all() # 项目阶段
unit = Government.query.filter_by().all()
industry = [{"name": i.name, "indu_id": i.nid} for i in industry_list] # 项目行业
industry = [{"name": "请选择", "indu_id": ""}] + industry
stage = [{"name": i.name, "stage_id": i.nid} for i in stage_list] # 项目阶段
stage = [{"name": "请选择", "stage_id": ""}] + stage
unit = [{"name": i.name, "unit_id": i.id} for i in unit] # 报送单位
unit = [{"name": "请选择", "unit_id": ""}] + unit
invest = [{"invest": "请选择", "invest_id": ""}, {"invest": "1亿元以下", "invest_id": 1},
{"invest": "1-10亿", "invest_id": 2},
{"invest": "10-50亿", "invest_id": 3}, {"invest": "50-100亿", "invest_id": 4},
{"invest": "100亿以上", "invest_id": 5}] # 投资额
data = {
"industry": industry,
"stage": stage,
"unit": unit,
"invest": invest
}
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
@api_mobile.route("/mobileUpItem", methods=["POST"])
@login_required
def mobile_up_item():
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
try:
user = User.query.get(user_id)
role = user.flag
if role != 2:
return jsonify(code=RET.ROLEERR, msg="无权限查看此内容")
unit = user.unit
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
#user_id = 3
req_dic = request.get_json()
indu_id = req_dic.get("indu_id") # 行业,
invest_id = req_dic.get("invest_id") # 投资额ID
evolve_id = req_dic.get("stage_id") # 项目进度
unit_name = req_dic.get("unit") # 报送单位
way_id = req_dic.get("way_id") # 查看方式
search = req_dic.get("search") # 搜索框
order = str(req_dic.get("order")) # 顺序 1-正序,2-倒序
page = req_dic.get("page") # 页数
perpage = req_dic.get("perpage") # 每页个数
if search:
try:
user = User.query.get(user_id)
b = []
if user.searchitem:
for j in user.searchitem:
b.append(j.history)
if search in b:
user.searchitem.remove(user.searchitem[b.index(search)])
if len(b) > 5:
user.searchitem.remove(user.searchitem[0])
sear = SearchItem(history=search)
db.session.add(sear)
user.searchitem.append(sear)
db.session.commit()
except Exception as e:
db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg='数据库错误')
try:
item = Item.query.filter_by(unit_up=unit)
if not page:
page = 1
if not perpage:
perpage = 10
if indu_id:
item = item.filter_by(indu_id=indu_id)
if invest_id:
item = item.filter_by(invest_id=invest_id)
if evolve_id:
item = item.filter_by(stage_id=evolve_id)
if unit_name:
if unit_name != "请选择":
item = item.filter_by(unit=unit_name)
# 进行中项目
if way_id == 1:
# 数据可能需要改
item = item.filter(and_(Item.stage_id != 5, Item.stage_id != 10))
# 投促局调度的项目
if way_id == 2:
item = item.filter_by(belong=1)
# 搜索,模糊查询
if search:
item = item.filter(or_(Item.company_name.like('%' + search + "%"), Item.name.like('%' + search + "%")))
# 排序
item = item.order_by(desc(Item.id))
if order:
if order == "2":
item = item.order_by(desc(Item.invest))
else:
item = item.order_by(Item.invest)
maxnum = len(item.all())
item = item.paginate(page, perpage).items
except Exception as e:
current_app.logger.error(e)
return jsonify(code = RET.DBERR,msg = "数据库错误")
# for j in government_list:
# new_item = item.filter_by(unit_up = j.name).order_by(desc(Item.id)).all()
#status_list = ["", "未上报", "已上报", "已驳回", "已通过"]
data_list = []
for i in item:
# status = i.status
# if not i.status:
# status = 0
data_list.append({
"item_id":i.id,
"name": i.name,
"company": i.company_name,
#"product": i.product,
#"industry": i.industry,
#"invest": i.invest,
"stage": i.stage,
"unit": i.unit,
"link": i.link,
#"status":status_list[int(status)]
})
data = {"data_list": data_list, "maxnum": maxnum}
return jsonify(code=RET.OK, msg="查找成功", data=data)
@api_mobile.route("/mobiledetailsItem", methods=["POST"])
@login_required
def mobile_details_item():
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
# user_id = 3
try:
user = User.query.get(user_id)
role = user.flag
if role != 2:
return jsonify(code=RET.ROLEERR, msg="无权限查看此内容")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
req_dic = request.get_json()
item_id = req_dic.get("item_id")
if not item_id:
return jsonify(code=RET.DATAERR, msg="缺少必要的参数")
try:
item = Item.query.get(item_id)
if not item:
return jsonify(code=RET.DATAERR, msg="不存在这样的项目")
data = {
"build_date": item.build_date.strftime('%Y-%m-%d'),
"company_name": item.company_name,
"admin": item.admin,
"mobile": item.mobile,
"email": item.email,
"name": item.name,
"store": item.store.strftime('%Y-%m-%d'),
"product": item.product,
"industry": item.industry,
"invest": item.invest,
"area": item.area,
"value": item.value,
"tax": item.tax,
"unit":item.unit,
"link": item.link,
"link_mobile": item.link_mobile,
"email": item.email,
# "level": item.level,
# "stage": item.stage,
"main_introduce": item.main_introduce if item.main_introduce else "-",
"invest_introduce": item.invest_introduce if item.invest_introduce else "-",
"build_introduce": item.build_introduce if item.build_introduce else "-",
"encomy": item.encomy if item.encomy else "-",
"policy": item.policy if item.policy else "-",
"question": item.question if item.question else "-",
}
return jsonify(code=RET.OK, msg="查找成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
#搜索历史接口
@api_mobile.route("/mobileSearchItem",methods = ["GET"])
@login_required
def mobile_search_item():
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
try:
user = User.query.get(user_id)
data = {
"search":[i.history for i in user.searchitem]
}
data["search"] = data["search"][::-1]
return jsonify(code = RET.OK,msg = "查询成功",data = data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
#搜索历史接口
@api_mobile.route("/deleteSearchItem",methods = ["GET"])
@login_required
def delete_search_item():
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
try:
user = User.query.get(user_id)
for i in user.searchitem:
user.searchitem.remove(i)
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_mobile.route("/getSectionPeople", methods=["GET"])
# def mobile_search_item():
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id
# try:
# user = User.query.get(user_id)
# data = {
# "search":[i.history for i in user.searchitem]
# }
# data["search"] = data["search"][::-1]
# return jsonify(code = RET.OK,msg = "查询成功",data = data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
# #搜索历史接口
# @api_mobile.route("/deleteSearchItem",methods = ["GET"])
# @login_required
def get_section_people():
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id
user_id = 3
try:
user = User.query.get(user_id)
unit = user.unit
government = Government.query.filter_by(name = unit).first()
data = []
for i in government.sections:
person = [{"name":"请选择","id":""}]
section = User.query.filter(and_(User.unit == government.name,
User.section == i.name,User.id != user_id)).all()
for j in section:
person.append({"name": j.name, "id": j.id})
data.append({"person": person, "name": i.name, "section_id": i.id})
data = [{"section_id":"","name":"请选择","person":[{"name":"请选择","id":""}]}] + data
return jsonify(code=RET.OK, msg="查找成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
#机构统筹的机构
@api_mobile.route("/UnitUnit",methods = ["GET"])
# def delete_search_item():
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id
# try:
# user = User.query.get(user_id)
# for i in user.searchitem:
# user.searchitem.remove(i)
# 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_mobile.route("/getSectionPeople", methods=["GET"])
# # @login_required
# def get_section_people():
#
# # token = request.headers["token"]
# # user = verify_token(token)
# # user_id = user.id
# user_id = 3
# try:
# user = User.query.get(user_id)
# unit = user.unit
# government = Government.query.filter_by(name = unit).first()
# data = []
#
# for i in government.sections:
#
# person = [{"name":"请选择","id":""}]
# section = User.query.filter(and_(User.unit == government.name,
# User.section == i.name,User.id != user_id)).all()
#
# for j in section:
# person.append({"name": j.name, "id": j.id})
# data.append({"person": person, "name": i.name, "section_id": i.id})
# data = [{"section_id":"","name":"请选择","person":[{"name":"请选择","id":""}]}] + data
# return jsonify(code=RET.OK, msg="查找成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
#
# #机构统筹的机构
# @api_mobile.route("/UnitUnit",methods = ["GET"])
# # @login_required
# def unit_unit():
# # token = request.headers["token"]
# # user = verify_token(token)
# # user_id = user.id
# user_id = 3
# try:
# user = User.query.get(user_id)
# unit_name = user.unit
# unit = Government.query.filter_by(name = unit_name).first()
# data = [{"name":i.name,"unit_id":i.id}for i in unit.followed]
# data = [{"name":"请选择","unit_id":""}] + data
# return jsonify(code = RET.OK,msg = "查找成功",data = data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code = RET.DBERR,msg = "数据库错误")
#
# # 招商进度管理统计图查看(机构内部)
# @api_mobile.route("/stageInTable", methods=["POST"])
# # @login_required
# def stage_in_table():
#
# # token = request.headers["token"]
# # user = verify_token(token)
# # user_id = user.id
# user_id = 3
# try:
# user = User.query.get(user_id)
# role = user.flag
# if role != 2:
# return jsonify(code=RET.ROLEERR, msg="无权限查看此内容")
# unit = user.unit
# _section = user.section
# role = user.role.role
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code = RET.DBERR,msg = "数据库错误")
#
# req_dic = request.get_json()
# year_begin = req_dic.get("year_begin")
# month_begin = req_dic.get("month_begin")
# year_end = req_dic.get("year_end")
# month_end = req_dic.get("month_end")
# stage_id = req_dic.get("stage_id")
# indu_id = req_dic.get("indu_id")
# section = req_dic.get("section")
# user_id = req_dic.get("user_id")
#
# if not all([year_begin, month_begin, year_end, month_end]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
# year_begin = year_begin[:-1]
# month_begin = month_begin[:-1]
# (year_end, month_end) = get_year_month(year_end[:-1], month_end[:-1])
#
# date_begin = time.strptime("{}-{}-01".format(year_begin,month_begin), '%Y-%m-%d')
# date_end = time.strptime("{}-{}-01".format(year_end,month_end), '%Y-%m-%d') # - relativedelta(months=-1)
# try:
# if role[0] == "1":
# item = Item.query.filter(and_(Item.unit == unit, Item.store >= date_begin, Item.store < date_end))
# if role[0] == "2":
# item = Item.query.filter(and_(Item.unit == unit,Item.section == _section, Item.store >= date_begin, Item.store < date_end))
# if role[0] == "3":
# item = Item.query.filter(and_(Item.user_id == user_id, Item.store >= date_begin, Item.store < date_end))
# item_user = User.query.filter_by(unit = unit)
# item_evolve = Attract.query.filter_by(statu = 1,sid = 2)
# item_industry = Attract.query.filter_by(statu = 1,sid = 1)
# if stage_id:
# item = item.filter_by(stage_id=stage_id)
# item_evolve = Attract.query.filter_by(nid = stage_id)
# if indu_id:
# item = item.filter_by(industry=indu_id)
# item_industry = item_industry.filter_by(nid = indu_id)
# if section:
# if section != "请选择":
# item = item.filter_by(section=section)
# item_user = item_user.filter_by(section = section)
# if user_id:
# item = item.filter_by(user_id=user_id)
# item_user = item_user.filter_by(section=section,id = user_id)
# item_evolve = set(item_evolve.with_entities(Attract.nid).all())
# item_evolve = list(item_evolve)
# item_evolve.sort()
# stage = [{
# "name": Attract.query.filter_by(nid=i[0],sid = 2).first().name,"value" :item.filter_by(stage_id=i[0]).count()
# } for i in item_evolve]
#
# item_user = set(item_user.with_entities(User.id).all())
# user = [{
# "name":User.query.get(i[0]).real_name,"value":item.filter_by(user_id=i[0]).count(),
# } for i in item_user]
#
# item_industry = set(item_industry.with_entities(Attract.nid).all())
# industry = [{
# "name" :Attract.query.filter_by(nid=i[0], sid=1).first().name,"value": item.filter_by(indu_id=i[0]).count()
# } for i in item_industry]
# data = {
# "stage": stage,
# "user": user,
# "industry": industry
# }
# return jsonify(code=RET.OK, msg="查找成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
#
# # 招商进度管理统计图查看(机构统筹机构)
# @api_mobile.route("/stageOutTable", methods=["POST"])
# @login_required
def unit_unit():
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id
user_id = 3
try:
user = User.query.get(user_id)
unit_name = user.unit
unit = Government.query.filter_by(name = unit_name).first()
data = [{"name":i.name,"unit_id":i.id}for i in unit.followed]
data = [{"name":"请选择","unit_id":""}] + data
return jsonify(code = RET.OK,msg = "查找成功",data = data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code = RET.DBERR,msg = "数据库错误")
# 招商进度管理统计图查看(机构内部)
@api_mobile.route("/stageInTable", methods=["POST"])
# @login_required
def stage_in_table():
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id
user_id = 3
try:
user = User.query.get(user_id)
role = user.flag
if role != 2:
return jsonify(code=RET.ROLEERR, msg="无权限查看此内容")
unit = user.unit
_section = user.section
role = user.role.role
except Exception as e:
current_app.logger.error(e)
return jsonify(code = RET.DBERR,msg = "数据库错误")
req_dic = request.get_json()
year_begin = req_dic.get("year_begin")
month_begin = req_dic.get("month_begin")
year_end = req_dic.get("year_end")
month_end = req_dic.get("month_end")
stage_id = req_dic.get("stage_id")
indu_id = req_dic.get("indu_id")
section = req_dic.get("section")
user_id = req_dic.get("user_id")
if not all([year_begin, month_begin, year_end, month_end]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
year_begin = year_begin[:-1]
month_begin = month_begin[:-1]
(year_end, month_end) = get_year_month(year_end[:-1], month_end[:-1])
date_begin = time.strptime("{}-{}-01".format(year_begin,month_begin), '%Y-%m-%d')
date_end = time.strptime("{}-{}-01".format(year_end,month_end), '%Y-%m-%d') # - relativedelta(months=-1)
try:
if role[0] == "1":
item = Item.query.filter(and_(Item.unit == unit, Item.store >= date_begin, Item.store < date_end))
if role[0] == "2":
item = Item.query.filter(and_(Item.unit == unit,Item.section == _section, Item.store >= date_begin, Item.store < date_end))
if role[0] == "3":
item = Item.query.filter(and_(Item.user_id == user_id, Item.store >= date_begin, Item.store < date_end))
item_user = User.query.filter_by(unit = unit)
item_evolve = Attract.query.filter_by(statu = 1,sid = 2)
item_industry = Attract.query.filter_by(statu = 1,sid = 1)
if stage_id:
item = item.filter_by(stage_id=stage_id)
item_evolve = Attract.query.filter_by(nid = stage_id)
if indu_id:
item = item.filter_by(industry=indu_id)
item_industry = item_industry.filter_by(nid = indu_id)
if section:
if section != "请选择":
item = item.filter_by(section=section)
item_user = item_user.filter_by(section = section)
if user_id:
item = item.filter_by(user_id=user_id)
item_user = item_user.filter_by(section=section,id = user_id)
item_evolve = set(item_evolve.with_entities(Attract.nid).all())
item_evolve = list(item_evolve)
item_evolve.sort()
stage = [{
"name": Attract.query.filter_by(nid=i[0],sid = 2).first().name,"value" :item.filter_by(stage_id=i[0]).count()
} for i in item_evolve]
item_user = set(item_user.with_entities(User.id).all())
user = [{
"name":User.query.get(i[0]).real_name,"value":item.filter_by(user_id=i[0]).count(),
} for i in item_user]
item_industry = set(item_industry.with_entities(Attract.nid).all())
industry = [{
"name" :Attract.query.filter_by(nid=i[0], sid=1).first().name,"value": item.filter_by(indu_id=i[0]).count()
} for i in item_industry]
data = {
"stage": stage,
"user": user,
"industry": industry
}
return jsonify(code=RET.OK, msg="查找成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
# 招商进度管理统计图查看(机构统筹机构)
@api_mobile.route("/stageOutTable", methods=["POST"])
@login_required
def stage_out_table():
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
try:
user = User.query.get(user_id)
unit = user.unit
role = user.flag
if role != 2:
return jsonify(code=RET.ROLEERR, msg="无权限查看此内容")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
req_dic = request.get_json()
year_begin = req_dic.get("year_begin")
month_begin = req_dic.get("month_begin")
year_end = req_dic.get("year_end")
month_end = req_dic.get("month_end")
unit_name = req_dic.get("unit_name")
stage_id = req_dic.get("stage_id")
indu_id = req_dic.get("indu_id")
if not all([year_begin, month_begin, year_end, month_end]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
year_begin = year_begin[:-1]
month_begin = month_begin[:-1]
(year_end, month_end) = get_year_month(year_end[:-1], month_end[:-1])
date_begin = time.strptime("{}-{}-01".format(year_begin, month_begin), '%Y-%m-%d')
date_end = time.strptime("{}-{}-01".format(year_end, month_end), '%Y-%m-%d') # - relativedelta(months=-1)
try:
item = Item.query.filter(and_(Item.store >= date_begin, Item.store < date_end,Item.unit_up == unit))
government = Government.query.filter_by(name=unit).first()
foller_name = [i.name for i in government.followed]
item = item.filter(Item.unit.in_(foller_name))
item_user = item.filter(Item.unit.in_(foller_name))
item_evolve = Attract.query.filter_by(statu=1, sid=2)
item_industry = Attract.query.filter_by(statu=1, sid=1)
if stage_id:
item = item.filter_by(stage_id=stage_id)
item_evolve = Attract.query.filter_by(nid=stage_id)
if indu_id:
item = item.filter_by(industry=indu_id)
item_industry = item_industry.filter_by(nid=indu_id)
if unit_name:
if unit_name != "请选择":
item = item.filter_by(unit=unit_name)
item_user = item_user.filter_by(unit=unit_name)
item_evolve = set(item_evolve.filter_by(statu = 1,sid = 2).with_entities(Attract.nid).all())
item_evolve = list(item_evolve)
item_evolve.sort()
stage = [{
"name":Attract.query.filter_by(nid=i[0],sid = 2).first().name,"value":item.filter_by(stage_id=i[0]).count()
} for i in item_evolve]
item_user = set(item_user.with_entities(Item.unit).all())
unit = [{
"name":i[0],"value": item.filter_by(unit=i[0]).count()
} for i in item_user]
item_industry = set(item_industry.with_entities(Attract.nid).all())
industry = [{
"name":Attract.query.filter_by(nid=i[0], sid=1).first().name,"value": item.filter_by(indu_id=i[0]).count()
} for i in item_industry]
data = {
"stage": stage,
"unit": unit,
"industry": industry
}
return jsonify(code=RET.OK, msg="查找成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
# def stage_out_table():
#
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id
#
# try:
# user = User.query.get(user_id)
# unit = user.unit
# role = user.flag
# if role != 2:
# return jsonify(code=RET.ROLEERR, msg="无权限查看此内容")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
# req_dic = request.get_json()
# year_begin = req_dic.get("year_begin")
# month_begin = req_dic.get("month_begin")
# year_end = req_dic.get("year_end")
# month_end = req_dic.get("month_end")
# unit_name = req_dic.get("unit_name")
# stage_id = req_dic.get("stage_id")
# indu_id = req_dic.get("indu_id")
#
#
# if not all([year_begin, month_begin, year_end, month_end]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
# year_begin = year_begin[:-1]
# month_begin = month_begin[:-1]
# (year_end, month_end) = get_year_month(year_end[:-1], month_end[:-1])
#
# date_begin = time.strptime("{}-{}-01".format(year_begin, month_begin), '%Y-%m-%d')
# date_end = time.strptime("{}-{}-01".format(year_end, month_end), '%Y-%m-%d') # - relativedelta(months=-1)
# try:
# item = Item.query.filter(and_(Item.store >= date_begin, Item.store < date_end,Item.unit_up == unit))
# government = Government.query.filter_by(name=unit).first()
# foller_name = [i.name for i in government.followed]
# item = item.filter(Item.unit.in_(foller_name))
# item_user = item.filter(Item.unit.in_(foller_name))
# item_evolve = Attract.query.filter_by(statu=1, sid=2)
# item_industry = Attract.query.filter_by(statu=1, sid=1)
#
# if stage_id:
# item = item.filter_by(stage_id=stage_id)
# item_evolve = Attract.query.filter_by(nid=stage_id)
#
# if indu_id:
# item = item.filter_by(industry=indu_id)
# item_industry = item_industry.filter_by(nid=indu_id)
#
# if unit_name:
# if unit_name != "请选择":
# item = item.filter_by(unit=unit_name)
# item_user = item_user.filter_by(unit=unit_name)
#
# item_evolve = set(item_evolve.filter_by(statu = 1,sid = 2).with_entities(Attract.nid).all())
# item_evolve = list(item_evolve)
# item_evolve.sort()
#
# stage = [{
# "name":Attract.query.filter_by(nid=i[0],sid = 2).first().name,"value":item.filter_by(stage_id=i[0]).count()
# } for i in item_evolve]
#
# item_user = set(item_user.with_entities(Item.unit).all())
# unit = [{
# "name":i[0],"value": item.filter_by(unit=i[0]).count()
# } for i in item_user]
#
# item_industry = set(item_industry.with_entities(Attract.nid).all())
# industry = [{
# "name":Attract.query.filter_by(nid=i[0], sid=1).first().name,"value": item.filter_by(indu_id=i[0]).count()
# } for i in item_industry]
# data = {
# "stage": stage,
# "unit": unit,
# "industry": industry
# }
# return jsonify(code=RET.OK, msg="查找成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
from flask import current_app, request, jsonify
from apps.view_mobile import api_mobile
from sqlalchemy import extract, or_, and_
from sqlalchemy.sql import func
from apps.models import *
from apps.util import login_required, verify_token
from apps.utils.response_code import RET
from datetime import datetime, timedelta
import datetime
# 太原市企业列表
@api_mobile.route('/tycompany', methods=['POST'])
@login_required
def enterprise():
'''太原市企业列表'''
# 获取用户id
token = request.headers["token"]
user = verify_token(token)
user_id = user.id # 用户id
# user_id = 5 # 用户id
req_dict = request.get_json()
inid = req_dict.get("inid") # 行业id
cate = req_dict.get("cate") # 行业等级,(高端设备等五个为"1",子行业为"2")
page = req_dict.get("page") # 分页页码
perpage = req_dict.get("perpage") # 分页大小
entype = req_dict.get("entype") # 企业类型id
qualificat = req_dict.get("qualificat") # 企业资质id
capital = req_dict.get("capital") # 注册资本id
quoted = req_dict.get("quoted") # 上市板块
district = req_dict.get("district") # 太原市下区县
yearid = req_dict.get("yearid") # 成立时间年限id
roundid = req_dict.get("roundid") # 融资轮次id(天使/种子,1)(PreA/A+,2)(PreB/B+,3)(C轮以上,4)(收并购,5)(战略投资,6)(其他,7)
# 校验参数完整性
if not all([page, perpage]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
if cate == "1":
company = Company.query.filter_by(f_type=inid, city="太原市")
else:
company = Company.query.filter_by(c_type=inid, city="太原市")
# 企业类型
if entype:
company = company.filter_by(entypeid=entype)
# 企业资质
if qualificat:
if qualificat == 1:
company = company.filter_by(high_new=1)
if qualificat == 2:
company = company.filter_by(tbe=1)
if qualificat == 3:
company = company.filter_by(quoted_company=1)
if qualificat == 4:
company = company.filter_by(sxonhun=1)
if qualificat == 5:
company = company.filter_by(isfive=1)
if qualificat == 6:
company = company.filter_by(unicorn=1)
if qualificat == 7:
company = company.filter_by(dengl=1)
if qualificat == 8:
company = company.filter_by(zjtg=1)
if qualificat == 9:
company = company.filter_by(scale=1)
if qualificat == 10:
company = company.filter_by(serve=1)
# 注册资本
if capital:
company = company.filter_by(capital_id=capital)
# 上市板块
if quoted:
company = company.filter_by(public_id=quoted)
# 区域选择
if district:
company = company.filter_by(district=district)
# 成立时间id
if yearid:
company = company.filter_by(yearid=yearid)
# 融资轮次
if roundid:
company = company.filter_by(roundid=roundid)
size = company.count()
companys = company.order_by(Company.hots.desc()).paginate(page, perpage).items # 企业热度倒序
user = User.query.get(user_id) # 获取关注列表
if user:
company_ids = [coms.id for coms in user.company]
else:
company_ids = []
df = [{"id": com.id,
"company_name": com.company_name,
"legal": com.legal if com.legal else "",
"capital": com.capital if com.capital else "",
"build_date": str(com.build_date)[:10] if com.build_date else "",
"collect": "1" if com.id in company_ids else "2", # 关注状态码1关注,2未关注
"choice": "1" # 1太原企业,2全国企业
} for com in companys]
data = {"size": size, "df": df}
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="参数错误")
return jsonify(code=RET.OK, msg="获取成功", data=data)
# 全国企业列表
@api_mobile.route('/view_map/enterprise', methods=['POST'])
# from flask import current_app, request, jsonify
# from apps.view_mobile import api_mobile
# from sqlalchemy import extract, or_, and_
# from sqlalchemy.sql import func
# from apps.models import *
# from apps.util import login_required, verify_token
# from apps.utils.response_code import RET
# from datetime import datetime, timedelta
# import datetime
#
#
# # 太原市企业列表
# @api_mobile.route('/tycompany', methods=['POST'])
# @login_required
def att_enterprise():
'''
太原市企业列表
:return:
'''
req_dict = request.get_json()
inid = req_dict.get("inid") # 行业id
page = req_dict.get("page") # 分页页码
perpage = req_dict.get("perpage") # 分页大小
entype = req_dict.get("entype") # 企业类型id
qualificat = req_dict.get("qualificat") # 企业资质id
capital = req_dict.get("capital") # 注册资本id
quoted = req_dict.get("quoted") # 上市板块
area = req_dict.get("area") # ["省","市","区"]
province = area[0]
city = area[1]
district = area[2]
yearid = req_dict.get("yearid") # 成立时间年限id
roundid = req_dict.get("roundid") # 融资轮次id(天使/种子,1)(PreA/A+,2)(PreB/B+,3)(C轮以上,4)(收并购,5)(战略投资,6)(其他,7)
# 校验参数完整性
if not all([page, perpage]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
if inid: # 子行业分类
enterprise = Enterprise.query.filter_by(c_type=inid)
else:
enterprise = Enterprise.query.filter_by()
# 企业类型
if entype:
enterprise = enterprise.filter_by(entypeid=entype)
# 企业资质
if qualificat:
if qualificat == 1:
enterprise = enterprise.filter_by(high_new=1)
if qualificat == 2:
enterprise = enterprise.filter_by(tbe=1)
if qualificat == 3:
enterprise = enterprise.filter_by(quoted_company=1)
if qualificat == 4:
enterprise = enterprise.filter_by(isfive=1)
if qualificat == 5:
enterprise = enterprise.filter_by(unicorn=1)
if qualificat == 6:
enterprise = enterprise.filter_by(dengl=1)
# 注册资本
if capital:
enterprise = enterprise.filter_by(capital_id=capital)
# 上市板块
if quoted:
enterprise = enterprise.filter_by(public_id=quoted)
# 区域选择
if province:
enterprise = enterprise.filter_by(province=province)
if city:
enterprise = enterprise.filter_by(city=city)
if district:
enterprise = enterprise.filter_by(district=district)
# 成立时间id
if yearid:
enterprise = enterprise.filter_by(yearid=yearid)
# 融资轮次
if roundid:
enterprise = enterprise.filter_by(roundid=roundid)
size = enterprise.count()
enterprise = enterprise.order_by(Enterprise.hots.desc()).paginate(page, perpage).items # 企业热度倒序
df = [{"id": com.id,
"company_name": com.company_name, # 企业名称
"status": com.status if com.status else "", # 企业状态
"legal": com.legal if com.legal else "", # 法人
"capital": com.capital if com.capital else "", # 注册资本
"build_date": str(com.build_date)[:10] if com.build_date else "", # 时间
"telephone": str(com.telephone) if com.telephone else "", # 电话
"address": str(com.address) if com.address else "", # 地址
"lng":com.lng if com.lng else "",
"lat":com.lat if com.lat else "",
# "collect": "1" if com.id in company_ids else "2", # 关注状态码1关注,2未关注
"choice": "2" # 1太原企业,2全国企业
} for com in enterprise]
data = {"size": size, "df": df}
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
return jsonify(code=RET.OK, msg="获取成功", data=data)
# ty+全国企业信息详情
@api_mobile.route('/companyDetail', methods=['POST'])
@login_required
def company_detail():
'''
企业信息详情
:return:
'''
# 获取用户id
token = request.headers["token"]
user = verify_token(token)
user_id = user.id # 用户id
# user_id = 5
req_dict = request.get_json()
_id = req_dict.get("id") # 企业id
choice = req_dict.get("choice") # 企业选择
# 校验参数完整性
if not all([_id, choice]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
if choice == "1":
company = Company.query.get(_id)
user = User.query.get(user_id) # 获取关注列表
if user:
company_ids = [coms.id for coms in user.company]
else:
company_ids = []
if company:
province = company.province if company.province else ""
city = company.city if company.city else ""
if city == province:
city = ''
district = company.district if company.district else ""
data = {"id": company.id,
"company_name": company.company_name,
"legal": company.legal if company.legal else "", # 法人
"status": company.status if company.status else "", # 状态
"build_date": str(company.build_date)[:10] if company.build_date else "", # 成立日期
"capital": company.capital if company.capital else "", # 注册资本
"telephone": company.telephone if company.telephone else "", # 电话
"address": company.address if company.address else "", # 地址
"location": province + city + district,
"email": company.email if company.email else "-", # 邮箱
# "web_site": company.web_site if company.web_site else "-", # 网址
"company_info": company.company_info if company.company_info else "", # 简介
"social_code": company.social_code if company.social_code else "", # 社会统一信用代码
"tax_code": company.tax_code if company.tax_code else "", # 纳税人识别号
"register_code": company.register_code if company.register_code else "", # 注册号
"company_code": company.company_code if company.company_code else "", # 组织机构代码
"bao": company.bao_num if company.bao_num else 0, # 组织机构代码
"entype": company.entype if company.entype else "", # 企业类型
"industry": company.company_industry if company.company_industry else "", # 所属行业
"scope": company.business_scope if company.business_scope else "", # 经营范围
"taking": company.takingn if company.takingn else "", # 营收
"jwd": {"lng": company.lng if company.lng else "-",
"lat": company.lat if company.lat else "-"},
# "high_new": "高新技术企业" if company.high_new else "-",
"collect": "1" if company.id in company_ids else "2", # 关注状态码1关注,2未关注
"choice": "1" # 1太原企业,2全国企业
}
else:
return jsonify(code=RET.NODATA, msg="查无数据")
return jsonify(code=RET.OK, msg="获取成功", data=data)
else:
enterprise = Enterprise.query.get(_id)
user = User.query.get(user_id) # 获取关注列表
if user:
company_ids = [coms.id for coms in user.enterprise]
else:
company_ids = []
if enterprise:
data = {"id": enterprise.id,
"company_name": enterprise.company_name,
"legal": enterprise.legal if enterprise.legal else "", # 法人
"status": enterprise.status if enterprise.status else "", # 状态
"build_date": str(enterprise.build_date)[:10] if enterprise.build_date else "", # 成立日期
"capital": enterprise.capital if enterprise.capital else "", # 注册资本
"telephone": enterprise.telephone if enterprise.telephone else "", # 电话
"address": enterprise.address if enterprise.address else "", # 地址
"email": enterprise.email if enterprise.email else "-", # 邮箱
# "web_site": company.web_site if company.web_site else "-", # 网址
"company_info": enterprise.company_info if enterprise.company_info else "", # 简介
"social_code": enterprise.social_code if enterprise.social_code else "", # 社会统一信用代码
"tax_code": enterprise.tax_code if enterprise.tax_code else "", # 纳税人识别号
"register_code": enterprise.register_code if enterprise.register_code else "", # 注册号
"company_code": enterprise.company_code if enterprise.company_code else "", # 组织机构代码
"bao": enterprise.bao_num if enterprise.bao_num else 0, # 组织机构代码
"entype": enterprise.entype if enterprise.entype else "", # 企业类型
"industry": enterprise.company_industry if enterprise.company_industry else "", # 所属行业
"scope": enterprise.business_scope if enterprise.business_scope else "", # 经营范围
"taking": enterprise.takingn if enterprise.takingn else "", # 营收
"jwd": {"lng": enterprise.lng if enterprise.lng else "-",
"lat": enterprise.lat if enterprise.lat else "-"},
# "high_new": "高新技术企业" if company.high_new else "-",
"collect": "1" if enterprise.id in company_ids else "2", # 关注状态码1关注,2未关注
"choice": "2" # 1太原企业,2全国企业
}
else:
return jsonify(code=RET.NODATA, msg="查无数据")
return jsonify(code=RET.OK, msg="获取成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 太原市创新资源机构列表(高等院校和告高职转告合并,高职专高作为第二分类,合并两个表)
@api_mobile.route('/innovate/orgs', methods=['POST'])
# def enterprise():
# '''太原市企业列表'''
# # 获取用户id
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id # 用户id
# # user_id = 5 # 用户id
#
# req_dict = request.get_json()
# inid = req_dict.get("inid") # 行业id
# cate = req_dict.get("cate") # 行业等级,(高端设备等五个为"1",子行业为"2")
# page = req_dict.get("page") # 分页页码
# perpage = req_dict.get("perpage") # 分页大小
#
# entype = req_dict.get("entype") # 企业类型id
# qualificat = req_dict.get("qualificat") # 企业资质id
# capital = req_dict.get("capital") # 注册资本id
# quoted = req_dict.get("quoted") # 上市板块
# district = req_dict.get("district") # 太原市下区县
# yearid = req_dict.get("yearid") # 成立时间年限id
# roundid = req_dict.get("roundid") # 融资轮次id(天使/种子,1)(PreA/A+,2)(PreB/B+,3)(C轮以上,4)(收并购,5)(战略投资,6)(其他,7)
#
# # 校验参数完整性
# if not all([page, perpage]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
#
# try:
# if cate == "1":
# company = Company.query.filter_by(f_type=inid, city="太原市")
# else:
# company = Company.query.filter_by(c_type=inid, city="太原市")
# # 企业类型
# if entype:
# company = company.filter_by(entypeid=entype)
# # 企业资质
# if qualificat:
# if qualificat == 1:
# company = company.filter_by(high_new=1)
# if qualificat == 2:
# company = company.filter_by(tbe=1)
# if qualificat == 3:
# company = company.filter_by(quoted_company=1)
# if qualificat == 4:
# company = company.filter_by(sxonhun=1)
# if qualificat == 5:
# company = company.filter_by(isfive=1)
# if qualificat == 6:
# company = company.filter_by(unicorn=1)
# if qualificat == 7:
# company = company.filter_by(dengl=1)
# if qualificat == 8:
# company = company.filter_by(zjtg=1)
# if qualificat == 9:
# company = company.filter_by(scale=1)
# if qualificat == 10:
# company = company.filter_by(serve=1)
# # 注册资本
# if capital:
# company = company.filter_by(capital_id=capital)
# # 上市板块
# if quoted:
# company = company.filter_by(public_id=quoted)
# # 区域选择
# if district:
# company = company.filter_by(district=district)
# # 成立时间id
# if yearid:
# company = company.filter_by(yearid=yearid)
# # 融资轮次
# if roundid:
# company = company.filter_by(roundid=roundid)
#
# size = company.count()
# companys = company.order_by(Company.hots.desc()).paginate(page, perpage).items # 企业热度倒序
#
# user = User.query.get(user_id) # 获取关注列表
# if user:
# company_ids = [coms.id for coms in user.company]
# else:
# company_ids = []
#
# df = [{"id": com.id,
# "company_name": com.company_name,
# "legal": com.legal if com.legal else "",
# "capital": com.capital if com.capital else "",
# "build_date": str(com.build_date)[:10] if com.build_date else "",
# "collect": "1" if com.id in company_ids else "2", # 关注状态码1关注,2未关注
# "choice": "1" # 1太原企业,2全国企业
# } for com in companys]
# data = {"size": size, "df": df}
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="参数错误")
#
# return jsonify(code=RET.OK, msg="获取成功", data=data)
#
#
# # 全国企业列表
# @api_mobile.route('/view_map/enterprise', methods=['POST'])
# # @login_required
# def att_enterprise():
# '''
# 太原市企业列表
# :return:
# '''
# req_dict = request.get_json()
# inid = req_dict.get("inid") # 行业id
# page = req_dict.get("page") # 分页页码
# perpage = req_dict.get("perpage") # 分页大小
#
# entype = req_dict.get("entype") # 企业类型id
# qualificat = req_dict.get("qualificat") # 企业资质id
# capital = req_dict.get("capital") # 注册资本id
# quoted = req_dict.get("quoted") # 上市板块
# area = req_dict.get("area") # ["省","市","区"]
# province = area[0]
# city = area[1]
# district = area[2]
# yearid = req_dict.get("yearid") # 成立时间年限id
# roundid = req_dict.get("roundid") # 融资轮次id(天使/种子,1)(PreA/A+,2)(PreB/B+,3)(C轮以上,4)(收并购,5)(战略投资,6)(其他,7)
#
# # 校验参数完整性
# if not all([page, perpage]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
#
# try:
# if inid: # 子行业分类
# enterprise = Enterprise.query.filter_by(c_type=inid)
# else:
# enterprise = Enterprise.query.filter_by()
# # 企业类型
# if entype:
# enterprise = enterprise.filter_by(entypeid=entype)
# # 企业资质
# if qualificat:
# if qualificat == 1:
# enterprise = enterprise.filter_by(high_new=1)
# if qualificat == 2:
# enterprise = enterprise.filter_by(tbe=1)
# if qualificat == 3:
# enterprise = enterprise.filter_by(quoted_company=1)
# if qualificat == 4:
# enterprise = enterprise.filter_by(isfive=1)
# if qualificat == 5:
# enterprise = enterprise.filter_by(unicorn=1)
# if qualificat == 6:
# enterprise = enterprise.filter_by(dengl=1)
#
# # 注册资本
# if capital:
# enterprise = enterprise.filter_by(capital_id=capital)
# # 上市板块
# if quoted:
# enterprise = enterprise.filter_by(public_id=quoted)
# # 区域选择
# if province:
# enterprise = enterprise.filter_by(province=province)
# if city:
# enterprise = enterprise.filter_by(city=city)
# if district:
# enterprise = enterprise.filter_by(district=district)
# # 成立时间id
# if yearid:
# enterprise = enterprise.filter_by(yearid=yearid)
# # 融资轮次
# if roundid:
# enterprise = enterprise.filter_by(roundid=roundid)
#
# size = enterprise.count()
# enterprise = enterprise.order_by(Enterprise.hots.desc()).paginate(page, perpage).items # 企业热度倒序
#
# df = [{"id": com.id,
# "company_name": com.company_name, # 企业名称
# "status": com.status if com.status else "", # 企业状态
# "legal": com.legal if com.legal else "", # 法人
# "capital": com.capital if com.capital else "", # 注册资本
# "build_date": str(com.build_date)[:10] if com.build_date else "", # 时间
# "telephone": str(com.telephone) if com.telephone else "", # 电话
# "address": str(com.address) if com.address else "", # 地址
# "lng":com.lng if com.lng else "",
# "lat":com.lat if com.lat else "",
# # "collect": "1" if com.id in company_ids else "2", # 关注状态码1关注,2未关注
# "choice": "2" # 1太原企业,2全国企业
# } for com in enterprise]
#
# data = {"size": size, "df": df}
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库查询错误")
#
# return jsonify(code=RET.OK, msg="获取成功", data=data)
#
#
# # ty+全国企业信息详情
# @api_mobile.route('/companyDetail', methods=['POST'])
# @login_required
def orgs():
'''创新资源机构列表'''
req_dict = request.get_json()
inid = req_dict.get("inid") # 行业id
cate = req_dict.get("cate") # 行业等级,(高端设备等五个为"1",子行业为"2")
cateone = req_dict.get("cateone") # 机构类型id. 高等院校1,科研机构2,创新平台3,产业服务平台4
catetwo = req_dict.get("catetwo") # 机构类型2 id
page = req_dict.get("page") # 分页页码
perpage = req_dict.get("perpage") # 分页大小
# 校验参数完整性
if not all([cateone, page, perpage]):
return jsonify(code=RET.PARAMERR, msg="创新资源机构一类参数不完整")
if (inid and not cate) or (cate and not inid):
return jsonify(code=RET.PARAMERR, msg="行业参数不完整")
# if cate and not inid:
# return jsonify(code=RET.PARAMERR, msg="行业参数不完整")
if cateone == 1: # 高等院校
try:
if inid:
name = Industry.query.filter_by(nid=inid).first().oname
if cate == "1":
college = College.query.filter(College.navigator.like("%{}%".format(name)))
else:
college = College.query.filter(College.navigat.like("%{}%".format(name)))
else:
college = College.query.filter_by()
if catetwo:
college = college.filter_by(cateid=catetwo)
size = college.count()
college = college.paginate(page, perpage).items
data = {"df": [{"id": i.id,
"name": i.name,
"nature": i.nature if i.nature else "-", # 办学性质
"build_date": i.buildate if i.buildate else "-", # 时间
"clas": i.clas if i.clas else "-", # 类别
"cateone": cateone} for i in college],
"size": size}
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DATAERR, msg="参数错误")
elif cateone == 2: # 科研机构
if inid:
name = Industry.query.filter_by(nid=inid).first().oname
if cate == "1":
scientific = Scientific.query.filter(Scientific.navigator.like("%{}%".format(name)))
else:
scientific = Scientific.query.filter(Scientific.navigat.like("%{}%".format(name)))
else:
scientific = Scientific.query.filter_by()
size = scientific.count()
scientific = scientific.paginate(page, perpage).items
data = {"df": [{"id": i.id,
"name": i.name,
"telephone": str(i.telephone) if i.telephone else "-", # 电话
"address": i.address if i.address else "-", # 地址
"cateone": cateone} for i in scientific],
"size": size}
return jsonify(code=RET.OK, msg="查询成功", data=data)
elif cateone == 3: # 创新平台3
if inid:
name = Industry.query.filter_by(nid=inid).first().oname
if cate == "1":
lab = Lab.query.filter(Lab.navigator.like("%{}%".format(name)))
else:
lab = Lab.query.filter(Lab.navigat.like("%{}%".format(name)))
else:
lab = Lab.query.filter_by()
if catetwo:
lab = lab.filter_by(cateid=catetwo)
size = lab.count()
lab = lab.paginate(page, perpage).items
data = {"df": [{"id": i.id,
"name": i.name,
# "cate": i.cate,
"address": i.address if i.address else "-", # 地址
"cateone": cateone} for i in lab],
"size": size}
return jsonify(code=RET.OK, msg="查询成功", data=data)
elif cateone == 4: # 产业服务平台
if inid:
name = Industry.query.filter_by(nid=inid).first().oname
if cate == "1":
platform = Platform.query.filter(Platform.navigator.like("%{}%".format(name)))
else:
platform = Platform.query.filter(Platform.navigat.like("%{}%".format(name)))
else:
platform = Platform.query.filter_by()
if catetwo:
platform = platform.filter_by(cateid=catetwo)
size = platform.count()
platform = platform.paginate(page, perpage).items
data = {"df": [{"id": i.id,
"name": i.name,
# "cate": cateone,
"address": i.address if i.address else "-", # 地址
"cateone": cateone} for i in platform],
"size": size}
return jsonify(code=RET.OK, msg="查询成功", data=data)
else:
return jsonify(code=RET.PARAMERR, msg="参数错误")
# 太原园区列表
@api_mobile.route('/carrier/garden', methods=['POST'])
# def company_detail():
# '''
# 企业信息详情
# :return:
# '''
# # 获取用户id
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id # 用户id
# # user_id = 5
#
# req_dict = request.get_json()
# _id = req_dict.get("id") # 企业id
# choice = req_dict.get("choice") # 企业选择
#
# # 校验参数完整性
# if not all([_id, choice]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
#
# try:
# if choice == "1":
# company = Company.query.get(_id)
# user = User.query.get(user_id) # 获取关注列表
# if user:
# company_ids = [coms.id for coms in user.company]
# else:
# company_ids = []
# if company:
# province = company.province if company.province else ""
# city = company.city if company.city else ""
# if city == province:
# city = ''
# district = company.district if company.district else ""
# data = {"id": company.id,
# "company_name": company.company_name,
# "legal": company.legal if company.legal else "", # 法人
# "status": company.status if company.status else "", # 状态
# "build_date": str(company.build_date)[:10] if company.build_date else "", # 成立日期
# "capital": company.capital if company.capital else "", # 注册资本
# "telephone": company.telephone if company.telephone else "", # 电话
# "address": company.address if company.address else "", # 地址
# "location": province + city + district,
#
# "email": company.email if company.email else "-", # 邮箱
# # "web_site": company.web_site if company.web_site else "-", # 网址
# "company_info": company.company_info if company.company_info else "", # 简介
# "social_code": company.social_code if company.social_code else "", # 社会统一信用代码
# "tax_code": company.tax_code if company.tax_code else "", # 纳税人识别号
# "register_code": company.register_code if company.register_code else "", # 注册号
# "company_code": company.company_code if company.company_code else "", # 组织机构代码
# "bao": company.bao_num if company.bao_num else 0, # 组织机构代码
# "entype": company.entype if company.entype else "", # 企业类型
# "industry": company.company_industry if company.company_industry else "", # 所属行业
# "scope": company.business_scope if company.business_scope else "", # 经营范围
# "taking": company.takingn if company.takingn else "", # 营收
# "jwd": {"lng": company.lng if company.lng else "-",
# "lat": company.lat if company.lat else "-"},
# # "high_new": "高新技术企业" if company.high_new else "-",
# "collect": "1" if company.id in company_ids else "2", # 关注状态码1关注,2未关注
# "choice": "1" # 1太原企业,2全国企业
# }
# else:
# return jsonify(code=RET.NODATA, msg="查无数据")
# return jsonify(code=RET.OK, msg="获取成功", data=data)
# else:
# enterprise = Enterprise.query.get(_id)
# user = User.query.get(user_id) # 获取关注列表
# if user:
# company_ids = [coms.id for coms in user.enterprise]
# else:
# company_ids = []
# if enterprise:
# data = {"id": enterprise.id,
# "company_name": enterprise.company_name,
# "legal": enterprise.legal if enterprise.legal else "", # 法人
# "status": enterprise.status if enterprise.status else "", # 状态
# "build_date": str(enterprise.build_date)[:10] if enterprise.build_date else "", # 成立日期
# "capital": enterprise.capital if enterprise.capital else "", # 注册资本
# "telephone": enterprise.telephone if enterprise.telephone else "", # 电话
# "address": enterprise.address if enterprise.address else "", # 地址
# "email": enterprise.email if enterprise.email else "-", # 邮箱
# # "web_site": company.web_site if company.web_site else "-", # 网址
# "company_info": enterprise.company_info if enterprise.company_info else "", # 简介
# "social_code": enterprise.social_code if enterprise.social_code else "", # 社会统一信用代码
# "tax_code": enterprise.tax_code if enterprise.tax_code else "", # 纳税人识别号
# "register_code": enterprise.register_code if enterprise.register_code else "", # 注册号
# "company_code": enterprise.company_code if enterprise.company_code else "", # 组织机构代码
# "bao": enterprise.bao_num if enterprise.bao_num else 0, # 组织机构代码
# "entype": enterprise.entype if enterprise.entype else "", # 企业类型
# "industry": enterprise.company_industry if enterprise.company_industry else "", # 所属行业
# "scope": enterprise.business_scope if enterprise.business_scope else "", # 经营范围
# "taking": enterprise.takingn if enterprise.takingn else "", # 营收
# "jwd": {"lng": enterprise.lng if enterprise.lng else "-",
# "lat": enterprise.lat if enterprise.lat else "-"},
# # "high_new": "高新技术企业" if company.high_new else "-",
# "collect": "1" if enterprise.id in company_ids else "2", # 关注状态码1关注,2未关注
# "choice": "2" # 1太原企业,2全国企业
# }
# else:
# return jsonify(code=RET.NODATA, msg="查无数据")
# return jsonify(code=RET.OK, msg="获取成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库查询错误")
#
#
# # 太原市创新资源机构列表(高等院校和告高职转告合并,高职专高作为第二分类,合并两个表)
# @api_mobile.route('/innovate/orgs', methods=['POST'])
# # @login_required
# def orgs():
# '''创新资源机构列表'''
# req_dict = request.get_json()
# inid = req_dict.get("inid") # 行业id
# cate = req_dict.get("cate") # 行业等级,(高端设备等五个为"1",子行业为"2")
#
# cateone = req_dict.get("cateone") # 机构类型id. 高等院校1,科研机构2,创新平台3,产业服务平台4
# catetwo = req_dict.get("catetwo") # 机构类型2 id
#
# page = req_dict.get("page") # 分页页码
# perpage = req_dict.get("perpage") # 分页大小
#
# # 校验参数完整性
# if not all([cateone, page, perpage]):
# return jsonify(code=RET.PARAMERR, msg="创新资源机构一类参数不完整")
#
# if (inid and not cate) or (cate and not inid):
# return jsonify(code=RET.PARAMERR, msg="行业参数不完整")
# # if cate and not inid:
# # return jsonify(code=RET.PARAMERR, msg="行业参数不完整")
#
# if cateone == 1: # 高等院校
# try:
# if inid:
# name = Industry.query.filter_by(nid=inid).first().oname
# if cate == "1":
# college = College.query.filter(College.navigator.like("%{}%".format(name)))
# else:
# college = College.query.filter(College.navigat.like("%{}%".format(name)))
# else:
# college = College.query.filter_by()
# if catetwo:
# college = college.filter_by(cateid=catetwo)
#
# size = college.count()
# college = college.paginate(page, perpage).items
#
# data = {"df": [{"id": i.id,
# "name": i.name,
# "nature": i.nature if i.nature else "-", # 办学性质
# "build_date": i.buildate if i.buildate else "-", # 时间
# "clas": i.clas if i.clas else "-", # 类别
# "cateone": cateone} for i in college],
# "size": size}
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DATAERR, msg="参数错误")
# elif cateone == 2: # 科研机构
# if inid:
# name = Industry.query.filter_by(nid=inid).first().oname
# if cate == "1":
# scientific = Scientific.query.filter(Scientific.navigator.like("%{}%".format(name)))
# else:
# scientific = Scientific.query.filter(Scientific.navigat.like("%{}%".format(name)))
# else:
# scientific = Scientific.query.filter_by()
# size = scientific.count()
# scientific = scientific.paginate(page, perpage).items
# data = {"df": [{"id": i.id,
# "name": i.name,
# "telephone": str(i.telephone) if i.telephone else "-", # 电话
# "address": i.address if i.address else "-", # 地址
# "cateone": cateone} for i in scientific],
# "size": size}
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# elif cateone == 3: # 创新平台3
# if inid:
# name = Industry.query.filter_by(nid=inid).first().oname
# if cate == "1":
# lab = Lab.query.filter(Lab.navigator.like("%{}%".format(name)))
# else:
# lab = Lab.query.filter(Lab.navigat.like("%{}%".format(name)))
# else:
# lab = Lab.query.filter_by()
# if catetwo:
# lab = lab.filter_by(cateid=catetwo)
#
# size = lab.count()
# lab = lab.paginate(page, perpage).items
# data = {"df": [{"id": i.id,
# "name": i.name,
# # "cate": i.cate,
# "address": i.address if i.address else "-", # 地址
# "cateone": cateone} for i in lab],
# "size": size}
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# elif cateone == 4: # 产业服务平台
# if inid:
# name = Industry.query.filter_by(nid=inid).first().oname
# if cate == "1":
# platform = Platform.query.filter(Platform.navigator.like("%{}%".format(name)))
# else:
# platform = Platform.query.filter(Platform.navigat.like("%{}%".format(name)))
# else:
# platform = Platform.query.filter_by()
# if catetwo:
# platform = platform.filter_by(cateid=catetwo)
#
# size = platform.count()
# platform = platform.paginate(page, perpage).items
# data = {"df": [{"id": i.id,
# "name": i.name,
# # "cate": cateone,
# "address": i.address if i.address else "-", # 地址
# "cateone": cateone} for i in platform],
# "size": size}
# return jsonify(code=RET.OK, msg="查询成功", data=data)
#
# else:
# return jsonify(code=RET.PARAMERR, msg="参数错误")
#
#
# # 太原园区列表
# @api_mobile.route('/carrier/garden', methods=['POST'])
# # @login_required
# def garden():
# '''创新资源机构列表'''
# req_dict = request.get_json()
# inid = req_dict.get("inid") # 行业id
# cate = req_dict.get("cate") # 行业等级,(高端设备等五个为"1",子行业为"2")
#
# page = req_dict.get("page") # 分页页码
# perpage = req_dict.get("perpage") # 分页大小
#
# keyword = req_dict.get("keyword") # 搜索园区姓名
# level = req_dict.get("level") # 园区级别
#
# # 校验参数完整性
# if not all([page, perpage]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
#
# try:
# if inid:
# name = Industry.query.filter_by(nid=inid).first().oname # 获取导航对应的真名
# if cate == "1":
# induzone = Induzone.query.filter(Induzone.navigator.like("%{}%".format(name)))
# else:
# induzone = Induzone.query.filter(Induzone.navigat.like("%{}%".format(name)))
# else:
# induzone = Induzone.query.filter_by()
# if keyword:
# induzone = induzone.filter(Induzone.name.like("%{}%".format(keyword))) # 查询词
# if level:
# induzone = induzone.filter_by(level=level) # 园区级别筛选
#
# size = induzone.count() # 分页总数
# induzone = induzone.paginate(page, perpage).items
#
# data = {"garden": [{"id": i.id,
# "name": i.name,
# "level": i.level if i.level else "-", # 级别
# # "cate": i.cate, # 园区类型
# "area": i.area if i.area else "-", # 面基
# "cluster": i.cluster if i.cluster else "" # 集群
# } for i in induzone],
# "size": size}
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库查询错误")
#
# return jsonify(code=RET.OK, msg="查询成功", data=data)
#
#
# # 雷达监测页企业数量趋势统计
# @api_mobile.route('/view_radar/tendency', methods=['POST'])
# @login_required
def garden():
'''创新资源机构列表'''
req_dict = request.get_json()
inid = req_dict.get("inid") # 行业id
cate = req_dict.get("cate") # 行业等级,(高端设备等五个为"1",子行业为"2")
page = req_dict.get("page") # 分页页码
perpage = req_dict.get("perpage") # 分页大小
keyword = req_dict.get("keyword") # 搜索园区姓名
level = req_dict.get("level") # 园区级别
# 校验参数完整性
if not all([page, perpage]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
if inid:
name = Industry.query.filter_by(nid=inid).first().oname # 获取导航对应的真名
if cate == "1":
induzone = Induzone.query.filter(Induzone.navigator.like("%{}%".format(name)))
else:
induzone = Induzone.query.filter(Induzone.navigat.like("%{}%".format(name)))
else:
induzone = Induzone.query.filter_by()
if keyword:
induzone = induzone.filter(Induzone.name.like("%{}%".format(keyword))) # 查询词
if level:
induzone = induzone.filter_by(level=level) # 园区级别筛选
size = induzone.count() # 分页总数
induzone = induzone.paginate(page, perpage).items
data = {"garden": [{"id": i.id,
"name": i.name,
"level": i.level if i.level else "-", # 级别
# "cate": i.cate, # 园区类型
"area": i.area if i.area else "-", # 面基
"cluster": i.cluster if i.cluster else "" # 集群
} for i in induzone],
"size": size}
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
return jsonify(code=RET.OK, msg="查询成功", data=data)
# 雷达监测页企业数量趋势统计
@api_mobile.route('/view_radar/tendency', methods=['POST'])
@login_required
def tendency():
'''雷达监测页企业数量统计'''
req_dict = request.get_json()
inid = req_dict.get("inid") # 行业id
area = req_dict.get("area") # [省,市,区]
province = area[0]
city = area[1]
district = area[2]
product = req_dict.get("product") # 企业产品
sone = req_dict.get("sone") # 选择1,1企业个数,2注册资本
stwo = req_dict.get("stwo") # 选择2, 1年度,2季度,3月度
sthr = req_dict.get("sthr") # 选择3, 1新增量,2累积量
# 校验参数完整性
if not all([area, sone, stwo, sthr]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
if inid:
enterprise = Enterprise.query.filter_by(c_type=inid)
else:
enterprise = Enterprise.query.filter_by()
if province:
enterprise = enterprise.filter_by(province=province)
if city:
enterprise = enterprise.filter_by(city=city)
if district:
enterprise = enterprise.filter_by(district=district)
if product:
# 有可能会变成模糊查询
enterprise = enterprise.filter(Enterprise.product_all.like("%{}%".format(product)))
# company = company.filter_by(product_all=product)
yearn = datetime.datetime.now().year + 1 # 现在年份
scope = [i for i in range(1980, yearn, 5)] # 年份范围
months = [(1, 3), (4, 6), (7, 9), (10, 12)] # 季度
data = list()
if sthr == 1: # 新增量
if stwo == 1: # 年度,1980-2020
for year in scope:
result = enterprise.filter(extract("year", Enterprise.build_date) == year)
if sone == 1: # 企业个数
nums = result.count()
# data[year] = nums
data.append({"lable": year, "value": nums})
else: # 注册资本
cnums = result.with_entities(func.sum(Enterprise.capital_nums)).scalar()
# data[year] = round(cnums, 2) if cnums else 0
data.append({"lable": year, "value": round(cnums, 2) if cnums else 0})
elif stwo == 2: # 2020年季度
for jd in range(len(months)):
result = enterprise.filter(and_(extract("year", Enterprise.build_date) == (yearn - 1),
extract("month", Enterprise.build_date).between(months[jd][0],
months[jd][1])))
if sone == 1: # 企业个数
nums = result.count()
# data[(jd + 1)] = nums
data.append({"lable": (jd + 1), "value": nums})
else: # 注册资本
cnums = result.with_entities(func.sum(Enterprise.capital_nums)).scalar()
# data[(jd + 1)] = round(cnums, 2) if cnums else 0
data.append({"lable": (jd + 1), "value": round(cnums, 2) if cnums else 0})
elif stwo == 3: # 2020年月度
for m in range(1, 13):
result = enterprise.filter(and_(extract("year", Enterprise.build_date) == (yearn - 1),
extract("month", Enterprise.build_date) == m))
if sone == 1: # 企业个数
nums = result.count()
# data[m] = nums
data.append({"lable": m, "value": nums})
else: # 注册资本
cnums = result.with_entities(func.sum(Enterprise.capital_nums)).scalar()
# data[m] = round(cnums, 2) if cnums else 0
data.append({"lable": m, "value": round(cnums, 2) if cnums else 0})
elif sthr == 2: # 累积量
if stwo == 1: # 年度,1980-2020
for year in scope:
result = enterprise.filter(extract("year", Enterprise.build_date) <= year)
if sone == 1: # 企业个数
nums = result.count()
# data[year] = nums
data.append({"lable": year, "value": nums})
else: # 注册资本
cnums = result.with_entities(func.sum(Enterprise.capital_nums)).scalar()
# data[year] = round(cnums, 2) if cnums else 0
data.append({"lable": year, "value": round(cnums, 2) if cnums else 0})
elif stwo == 2: # 2020年季度
for jd in range(len(months)):
result = enterprise.filter(and_(extract("year", Enterprise.build_date) == (yearn - 1),
extract("month", Enterprise.build_date) <= months[jd][1]))
if sone == 1: # 企业个数
nums = result.count()
# data[(jd + 1)] = nums
data.append({"lable": (jd + 1), "value": nums})
else: # 注册资本
cnums = result.with_entities(func.sum(Enterprise.capital_nums)).scalar()
# data[(jd + 1)] = round(cnums, 2) if cnums else 0
data.append({"lable": (jd + 1), "value": round(cnums, 2) if cnums else 0})
elif stwo == 3: # 2020年月度
for m in range(1, 13):
result = enterprise.filter(and_(extract("year", Enterprise.build_date) == (yearn - 1),
extract("month", Enterprise.build_date) <= m))
if sone == 1: # 企业个数
nums = result.count()
# data[m] = nums
data.append({"lable": m, "value": nums})
else: # 注册资本
cnums = result.with_entities(func.sum(Enterprise.capital_nums)).scalar()
data.append({"lable": m, "value": round(cnums, 2) if cnums else 0})
# data[m] = round(cnums, 2) if cnums else 0
else:
return jsonify(code=RET.DATAERR, msg="参数错误")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
return jsonify(code=RET.OK, msg="获取成功", data=data)
# def tendency():
# '''雷达监测页企业数量统计'''
# req_dict = request.get_json()
# inid = req_dict.get("inid") # 行业id
# area = req_dict.get("area") # [省,市,区]
# province = area[0]
# city = area[1]
# district = area[2]
# product = req_dict.get("product") # 企业产品
# sone = req_dict.get("sone") # 选择1,1企业个数,2注册资本
# stwo = req_dict.get("stwo") # 选择2, 1年度,2季度,3月度
# sthr = req_dict.get("sthr") # 选择3, 1新增量,2累积量
#
# # 校验参数完整性
# if not all([area, sone, stwo, sthr]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
#
# try:
# if inid:
# enterprise = Enterprise.query.filter_by(c_type=inid)
# else:
# enterprise = Enterprise.query.filter_by()
#
# if province:
# enterprise = enterprise.filter_by(province=province)
# if city:
# enterprise = enterprise.filter_by(city=city)
# if district:
# enterprise = enterprise.filter_by(district=district)
# if product:
# # 有可能会变成模糊查询
# enterprise = enterprise.filter(Enterprise.product_all.like("%{}%".format(product)))
# # company = company.filter_by(product_all=product)
#
# yearn = datetime.datetime.now().year + 1 # 现在年份
# scope = [i for i in range(1980, yearn, 5)] # 年份范围
# months = [(1, 3), (4, 6), (7, 9), (10, 12)] # 季度
# data = list()
# if sthr == 1: # 新增量
# if stwo == 1: # 年度,1980-2020
# for year in scope:
# result = enterprise.filter(extract("year", Enterprise.build_date) == year)
# if sone == 1: # 企业个数
# nums = result.count()
# # data[year] = nums
# data.append({"lable": year, "value": nums})
# else: # 注册资本
# cnums = result.with_entities(func.sum(Enterprise.capital_nums)).scalar()
# # data[year] = round(cnums, 2) if cnums else 0
# data.append({"lable": year, "value": round(cnums, 2) if cnums else 0})
# elif stwo == 2: # 2020年季度
# for jd in range(len(months)):
# result = enterprise.filter(and_(extract("year", Enterprise.build_date) == (yearn - 1),
# extract("month", Enterprise.build_date).between(months[jd][0],
# months[jd][1])))
# if sone == 1: # 企业个数
# nums = result.count()
# # data[(jd + 1)] = nums
# data.append({"lable": (jd + 1), "value": nums})
# else: # 注册资本
# cnums = result.with_entities(func.sum(Enterprise.capital_nums)).scalar()
# # data[(jd + 1)] = round(cnums, 2) if cnums else 0
# data.append({"lable": (jd + 1), "value": round(cnums, 2) if cnums else 0})
# elif stwo == 3: # 2020年月度
# for m in range(1, 13):
# result = enterprise.filter(and_(extract("year", Enterprise.build_date) == (yearn - 1),
# extract("month", Enterprise.build_date) == m))
# if sone == 1: # 企业个数
# nums = result.count()
# # data[m] = nums
# data.append({"lable": m, "value": nums})
# else: # 注册资本
# cnums = result.with_entities(func.sum(Enterprise.capital_nums)).scalar()
# # data[m] = round(cnums, 2) if cnums else 0
# data.append({"lable": m, "value": round(cnums, 2) if cnums else 0})
# elif sthr == 2: # 累积量
# if stwo == 1: # 年度,1980-2020
# for year in scope:
# result = enterprise.filter(extract("year", Enterprise.build_date) <= year)
# if sone == 1: # 企业个数
# nums = result.count()
# # data[year] = nums
# data.append({"lable": year, "value": nums})
# else: # 注册资本
# cnums = result.with_entities(func.sum(Enterprise.capital_nums)).scalar()
# # data[year] = round(cnums, 2) if cnums else 0
# data.append({"lable": year, "value": round(cnums, 2) if cnums else 0})
# elif stwo == 2: # 2020年季度
# for jd in range(len(months)):
# result = enterprise.filter(and_(extract("year", Enterprise.build_date) == (yearn - 1),
# extract("month", Enterprise.build_date) <= months[jd][1]))
# if sone == 1: # 企业个数
# nums = result.count()
# # data[(jd + 1)] = nums
# data.append({"lable": (jd + 1), "value": nums})
# else: # 注册资本
# cnums = result.with_entities(func.sum(Enterprise.capital_nums)).scalar()
# # data[(jd + 1)] = round(cnums, 2) if cnums else 0
# data.append({"lable": (jd + 1), "value": round(cnums, 2) if cnums else 0})
# elif stwo == 3: # 2020年月度
# for m in range(1, 13):
# result = enterprise.filter(and_(extract("year", Enterprise.build_date) == (yearn - 1),
# extract("month", Enterprise.build_date) <= m))
# if sone == 1: # 企业个数
# nums = result.count()
# # data[m] = nums
# data.append({"lable": m, "value": nums})
# else: # 注册资本
# cnums = result.with_entities(func.sum(Enterprise.capital_nums)).scalar()
# data.append({"lable": m, "value": round(cnums, 2) if cnums else 0})
# # data[m] = round(cnums, 2) if cnums else 0
# else:
# return jsonify(code=RET.DATAERR, msg="参数错误")
#
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库查询错误")
#
# return jsonify(code=RET.OK, msg="获取成功", data=data)
from flask import current_app, request, jsonify
from apps.view_mobile import api_mobile
from sqlalchemy import extract, or_, and_
from sqlalchemy.sql import func
from apps.models import *
from apps.util import login_required, verify_token
from apps.utils.response_code import RET
from datetime import datetime, timedelta
import re
from apps import db, constants, redis_store
# 手机端个人中心信息获取
@api_mobile.route('/userInfo', methods=['GET'])
@login_required
def user_info():
# 获取用户id
token = request.headers["token"]
user = verify_token(token)
user_id = user.id # 用户id
# user_id = 5 # 用户id
try:
user = User.query.get(user_id)
if user:
data = {"id": user.id,
"name": user.name if user.name else "-", # 用户名
"mobile": user.mobile, # 手机号
"unit": user.unit if user.unit else "", # 机构
"section": user.section if user.section else "", # 部门
"position": user.position if user.position else "", # 职务
"sex": user.sex if user.sex else "", # 性别,1男2女
"email": user.email if user.email else "" # 邮箱
}
return jsonify(code=RET.OK, msg="查询成功", data=data)
return jsonify(code=RET.SESSIONERR, msg="无法获取信息")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="参数错误")
# 手机端个人中心用户名修改
@api_mobile.route('/editName', methods=['POST'])
# from flask import current_app, request, jsonify
# from apps.view_mobile import api_mobile
# from sqlalchemy import extract, or_, and_
# from sqlalchemy.sql import func
# from apps.models import *
# from apps.util import login_required, verify_token
# from apps.utils.response_code import RET
# from datetime import datetime, timedelta
# import re
# from apps import db, constants, redis_store
#
#
# # 手机端个人中心信息获取
# @api_mobile.route('/userInfo', methods=['GET'])
# @login_required
def edit_name():
# 获取用户id
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id # 用户id
# user_id = 5 # 用户id
req_dict = request.get_json()
uname = req_dict.get("uname") # 用户名
user_id = req_dict.get("id") # 用户id
# 校验参数完整性
if not all([uname]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
# 用户名唯一(字母开头,长度4-15)
try:
patten = "^[a-zA-Z][\w]*[\w]*$"
if re.match(patten, uname) and re.match(patten, uname).string == uname:
user = User.query.filter_by(name=uname).filter(User.id != user_id).first()
if user:
return jsonify(code=RET.DATAEXIST, msg="用户名已存在")
else:
return jsonify(code=RET.DATAERR, msg="用户名格式错误,字母开头")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="用户名格式错误")
try:
user = User.query.get(user_id)
user.name = uname
db.session.commit()
return jsonify(code=RET.OK, msg="修改成功")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="参数错误")
# 修改手机号
@api_mobile.route("/editPhone", methods=["POST"])
# @login_required
def edit_phone():
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id
# user_id = 5
req_dict = request.get_json()
user_id = req_dict.get("user_id")
mobile = req_dict.get("mobile")
sms_code = req_dict.get("sms_code")
# 校验参数完整性
if not all([mobile, mobile]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
# 校验手机号格式
if not re.match(r'^1[3456789]\d{9}$', mobile):
return jsonify(code=RET.PARAMERR, 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.DBERR, msg="redis数据库异常")
# 判断用户填写短信验证码是否一致
if real_sms_code != sms_code:
# if "123456" != 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:
user = User.query.filter_by(mobile=mobile).first()
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="获取用户信息失败")
if user:
return jsonify(code=RET.DATAEXIST, msg="手机号已被注册")
# 修改手机号
try:
user = User.query.get(user_id)
user.mobile = mobile
db.session.commit()
return jsonify(code=RET.OK, msg="修改成功")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
# 手机端个人中心性别修改
@api_mobile.route('/editSex', methods=['POST'])
# @login_required
def edit_sex():
# 获取用户id
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id # 用户id
# user_id = 5 # 用户id
req_dict = request.get_json()
user_id = req_dict.get("id") # 用户id
sex = req_dict.get("sex") # 男1女2
# 校验参数完整性
if not all([sex]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
user = User.query.get(user_id)
user.sex = sex
db.session.commit()
return jsonify(code=RET.OK, msg="修改成功")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="参数错误")
# def user_info():
# # 获取用户id
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id # 用户id
# # user_id = 5 # 用户id
#
# try:
# user = User.query.get(user_id)
# if user:
# data = {"id": user.id,
# "name": user.name if user.name else "-", # 用户名
# "mobile": user.mobile, # 手机号
# "unit": user.unit if user.unit else "", # 机构
# "section": user.section if user.section else "", # 部门
# "position": user.position if user.position else "", # 职务
# "sex": user.sex if user.sex else "", # 性别,1男2女
# "email": user.email if user.email else "" # 邮箱
# }
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# return jsonify(code=RET.SESSIONERR, msg="无法获取信息")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="参数错误")
#
#
# # 手机端个人中心用户名修改
# @api_mobile.route('/editName', methods=['POST'])
# # @login_required
# def edit_name():
# # 获取用户id
# # token = request.headers["token"]
# # user = verify_token(token)
# # user_id = user.id # 用户id
# # user_id = 5 # 用户id
# req_dict = request.get_json()
# uname = req_dict.get("uname") # 用户名
# user_id = req_dict.get("id") # 用户id
# # 校验参数完整性
# if not all([uname]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
#
# # 用户名唯一(字母开头,长度4-15)
# try:
# patten = "^[a-zA-Z][\w]*[\w]*$"
# if re.match(patten, uname) and re.match(patten, uname).string == uname:
# user = User.query.filter_by(name=uname).filter(User.id != user_id).first()
# if user:
# return jsonify(code=RET.DATAEXIST, msg="用户名已存在")
# else:
# return jsonify(code=RET.DATAERR, msg="用户名格式错误,字母开头")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="用户名格式错误")
#
# try:
# user = User.query.get(user_id)
# user.name = uname
# db.session.commit()
#
# return jsonify(code=RET.OK, msg="修改成功")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="参数错误")
#
#
# # 修改手机号
# @api_mobile.route("/editPhone", methods=["POST"])
# # @login_required
# def edit_phone():
# # token = request.headers["token"]
# # user = verify_token(token)
# # user_id = user.id
# # user_id = 5
#
# req_dict = request.get_json()
# user_id = req_dict.get("user_id")
# mobile = req_dict.get("mobile")
# sms_code = req_dict.get("sms_code")
# # 校验参数完整性
# if not all([mobile, mobile]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
#
# # 校验手机号格式
# if not re.match(r'^1[3456789]\d{9}$', mobile):
# return jsonify(code=RET.PARAMERR, 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.DBERR, msg="redis数据库异常")
#
# # 判断用户填写短信验证码是否一致
# if real_sms_code != sms_code:
# # if "123456" != 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:
# user = User.query.filter_by(mobile=mobile).first()
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="获取用户信息失败")
#
# if user:
# return jsonify(code=RET.DATAEXIST, msg="手机号已被注册")
#
# # 修改手机号
# try:
# user = User.query.get(user_id)
# user.mobile = mobile
# db.session.commit()
# return jsonify(code=RET.OK, msg="修改成功")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
#
#
# # 手机端个人中心性别修改
# @api_mobile.route('/editSex', methods=['POST'])
# # @login_required
# def edit_sex():
# # 获取用户id
# # token = request.headers["token"]
# # user = verify_token(token)
# # user_id = user.id # 用户id
# # user_id = 5 # 用户id
# req_dict = request.get_json()
# user_id = req_dict.get("id") # 用户id
# sex = req_dict.get("sex") # 男1女2
# # 校验参数完整性
# if not all([sex]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
#
# try:
# user = User.query.get(user_id)
# user.sex = sex
# db.session.commit()
# return jsonify(code=RET.OK, msg="修改成功")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="参数错误")
......@@ -597,8 +597,8 @@ def detail():
data = {
"flag": user.flag,
"real_name": user_info.real_name, # 名字
"age": user_info.age, # 年龄
"sex": user_info.sex, # 性别
# "age": user_info.age, # 年龄
# "sex": user_info.sex, # 性别
"mobile": user_info.mobile, # 手机号
# "username": user_info.name, # 用户名
# "email": user_info.email, # 邮箱
......@@ -792,8 +792,8 @@ def fix_user_info():
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")
# age = req_dict.get("age")
# sex = req_dict.get("sex")
# name = req_dict.get("name")
position = req_dict.get("position")
......@@ -812,11 +812,11 @@ def fix_user_info():
if belong_department:
user_information.belong_department = belong_department
# 年龄
if age:
user_information.age = age
# 性别 1 - 男 2 - 女
if sex:
user_information.sex = sex
# if age:
# user_information.age = age
# # 性别 1 - 男 2 - 女
# if sex:
# user_information.sex = sex
# 职务
if position:
user_information.position = position
......
......@@ -46,105 +46,105 @@ def user_code():
# 异步邮箱发送信息
def send_async_email(mail, app, msg):
with app.app_context():
mail.send(msg)
# def send_async_email(mail, app, msg):
# with app.app_context():
# mail.send(msg)
# 给邮箱发验证码
@api_user.route("/email_code", methods=["POST"])
def send_email_code():
'''
向邮箱送验证码
:return:
'''
# 获取请求参数,转化字典
req_dict = request.get_json()
email = req_dict.get('email') # 邮箱号
# 校验参数完整性
if not all([email]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
# 校验邮箱格式
if not re.match("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$", email):
return jsonify(code=RET.PARAMERR, msg="邮箱格式错误")
# print(email)
# app = creat_app('product')
app = creat_app('develop')
mail = Mail(app)
sms_code = "%06d" % random.randint(0, 999999)
msg = Message("中研认知产业链在线,欢迎您!", recipients=[email])
msg.body = "【中研认知产业链在线】您的验证码为:{},您正在进行邮箱绑定,如非本人操作,请忽略本邮件!".format(sms_code)
thread = threading.Thread(target=send_async_email, args=(mail, app, msg))
thread.start()
try:
redis_store.setex("sms_code_%s" % email, constants.SMS_CODE_REDIS_EXPIRES, sms_code)
# 保存发送给这个邮箱号的记录,防止用户在60s内再次出发发送短信的操作
redis_store.setex("send_sms_code_%s" % email, constants.SEND_SMS_CODE_INTERVAL, 60)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="保存验证码异常")
print(redis_store.get('sms_code_{}'.format(email)))
return jsonify(code=RET.OK, msg="发送成功")
@api_user.route("/changeEmail", methods=["POST"])
@login_required
def change_email():
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
req_dic = request.get_json()
email = req_dic.get("email")
email_code = req_dic.get("email_code")
try:
user_information = User.query.get(user_id)
if not all([email, email_code]):
return jsonify(code=RET.PARAMERR, msg="参数不全")
if email:
user_information.email = email
if not email_code:
return jsonify(code=RET.NODATA, msg="验证码不能为空")
if not re.match("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$",
user_information.email):
return jsonify(code=RET.PARAMERR, msg="邮箱格式错误")
# 获取邮箱验证码
try:
real_sms_code = redis_store.get('sms_code_{}'.format(user_information.email)).decode()
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="redis数据库异常")
# @api_user.route("/email_code", methods=["POST"])
# def send_email_code():
# '''
# 向邮箱送验证码
# :return:
# '''
# # 获取请求参数,转化字典
# req_dict = request.get_json()
# email = req_dict.get('email') # 邮箱号
#
# # 校验参数完整性
# if not all([email]):
# return jsonify(code=RET.PARAMERR, msg="参数不完整")
#
# # 校验邮箱格式
# if not re.match("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$", email):
# return jsonify(code=RET.PARAMERR, msg="邮箱格式错误")
#
# # print(email)
# # app = creat_app('product')
# app = creat_app('develop')
# mail = Mail(app)
# sms_code = "%06d" % random.randint(0, 999999)
#
# msg = Message("中研认知产业链在线,欢迎您!", recipients=[email])
# msg.body = "【中研认知产业链在线】您的验证码为:{},您正在进行邮箱绑定,如非本人操作,请忽略本邮件!".format(sms_code)
# thread = threading.Thread(target=send_async_email, args=(mail, app, msg))
# thread.start()
#
# try:
# redis_store.setex("sms_code_%s" % email, constants.SMS_CODE_REDIS_EXPIRES, sms_code)
# # 保存发送给这个邮箱号的记录,防止用户在60s内再次出发发送短信的操作
# redis_store.setex("send_sms_code_%s" % email, constants.SEND_SMS_CODE_INTERVAL, 60)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="保存验证码异常")
# print(redis_store.get('sms_code_{}'.format(email)))
# return jsonify(code=RET.OK, msg="发送成功")
# 判断邮箱验证码是否失效
if not redis_store:
return jsonify(code=RET.NODATA, msg="短信验证码失效")
# 删除redis中的邮箱验证码,防止重复校验
try:
redis_store.delete("sms_code_{}".format(user_information.email))
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="redis数据库异常")
# 判断用户填写短信验证码是否一致
if real_sms_code != email_code:
return jsonify(code=RET.DATAERR, msg="邮箱验证码错误")
db.session.commit()
return jsonify(code=RET.OK, msg="更改成功")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
# @api_user.route("/changeEmail", methods=["POST"])
# @login_required
# def change_email():
# token = request.headers["token"]
# user = verify_token(token)
# user_id = user.id
#
# req_dic = request.get_json()
# email = req_dic.get("email")
# email_code = req_dic.get("email_code")
# try:
# user_information = User.query.get(user_id)
#
# if not all([email, email_code]):
# return jsonify(code=RET.PARAMERR, msg="参数不全")
# if email:
# user_information.email = email
#
# if not email_code:
# return jsonify(code=RET.NODATA, msg="验证码不能为空")
#
# if not re.match("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$",
# user_information.email):
# return jsonify(code=RET.PARAMERR, msg="邮箱格式错误")
#
# # 获取邮箱验证码
# try:
# real_sms_code = redis_store.get('sms_code_{}'.format(user_information.email)).decode()
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="redis数据库异常")
#
# # 判断邮箱验证码是否失效
# if not redis_store:
# return jsonify(code=RET.NODATA, msg="短信验证码失效")
#
# # 删除redis中的邮箱验证码,防止重复校验
# try:
# redis_store.delete("sms_code_{}".format(user_information.email))
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="redis数据库异常")
# # 判断用户填写短信验证码是否一致
# if real_sms_code != email_code:
# return jsonify(code=RET.DATAERR, msg="邮箱验证码错误")
# db.session.commit()
# return jsonify(code=RET.OK, msg="更改成功")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库错误")
# @api_user.route("/detail", methods=["GET"])
......
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