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:
......
......@@ -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
......@@ -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