用户管理完善

duizhaopin
apan 3 years ago
parent 3d88fbddb1
commit 698a8beca1

@ -70,7 +70,16 @@ class Utils(object):
# @classmethod
def to_dict(cls):
return {c.name: getattr(cls, c.name, None) for c in cls.__table__.columns}
# if not tp:
# return {c.name: getattr(cls, c.name, None) for c in cls.__table__.columns}
# else:
# # data_list = []
# # for i in cls:
# # data_list.append(
# # {c.name: getattr(i, c.name, None)
# # for c in i.__table__.columns}
# # )
# return [{c.name: getattr(i, c.name, None) for c in i.__table__.columns} for i in cls]
#生成统一格式接口数据
def resultData(status, message, data=""):
return json.dumps({"status": status, "message": message, "data": data}, ensure_ascii=False)

@ -19,22 +19,21 @@ from flask import Blueprint
home_router = Blueprint('home', __name__, url_prefix="/home")
# 获取页面主概览数据 --- 查询条件缺少柜体id客户id
@home_router.route('/home_number', methods=["GET", "POST"])
@token_auth.login_required
def get_record_type_drug_record_json():
customer_id = request.values.get('customer_id')
client_id = request.values.get('client_id')
# 获取药剂记录今日入库 领用 归还Json数据
typ_dic = BllMedicamentRecord().getTodayDrugRecordCount(
customerId=customer_id, clientId=client_id)
data = {
"putin_count": typ_dic.get(1),
"use_count": typ_dic.get(2),
"return_count": typ_dic.get(3),
"not_return_count": typ_dic[2] - typ_dic[3]
}
return jsonify(Utils.true_return(data=data))
# # 获取页面主概览数据 --- 查询条件缺少柜体id客户id
# @home_router.route('/home_number', methods=["GET", "POST"])
# @token_auth.login_required
# def get_record_type_drug_record_json():
# customer_id = request.values.get('customer_id')
# client_id = request.values.get('client_id')
# # 获取药剂记录今日入库 领用 归还Json数据
# typ_dic = BllMedicamentRecord().getTodayDrugRecordCount()
# data = {
# "putin_count": typ_dic.get(1),
# "use_count": typ_dic.get(2),
# "return_count": typ_dic.get(3),
# "not_return_count": typ_dic[2] - typ_dic[3]
# }
# return jsonify(Utils.true_return(data=data))
# 主概览 当日入库-领用-归还,预警列表, 信息总览

@ -4,17 +4,21 @@
@Date:2022/08/01 17:04:40
'''
import sys
sys.path.append('.')
from db_logic.user import BllUser
from models.power_models import EntityModuleRelation
sys.path.append('.')
from sqlalchemy import or_
from db_logic.module import BllModule
from db_logic.role import BllRole
from Common.auth import token_auth
from flask import Blueprint, jsonify, request, g
from db_logic.module_relation import BllModuleRelation
from models.user_models import EntityRole
from Common.Utils import Utils
power_router = Blueprint('power', __name__)
@ -27,10 +31,102 @@ def get_user_power_list():
module_list = BllModuleRelation().get_user_module_list(user_id=user_info.user_id, role_id=user_info.role_id)
module_list = Utils.msyql_table_model(module_list)
return jsonify(Utils.true_return(data=module_list))
# if len(module_list) > 6:
# for module in module_list:
# if module["module_code"] == "DataReport":
# if module_list.index(module) in [1,2,4]:
# module_list.pop(module_list.index(module))
# module_list.insert(5, module)
# data = module_list
# 获取角色列表
@power_router.route("/get_list", methods=["GET", "POST"])
@token_auth.login_required
def get_power_list():
# 根据角色表进行关联查询,
# 思路角色表角色id->模块权限表object_id-> 终端权限表()
# | |
# role_id=object_id module_id=module_id
data_list = BllModuleRelation().get_role_module()
return jsonify(Utils.true_return(data=Utils.msyql_table_model(data_list)))
# 获取模块列表
@power_router.route("/get_module_list", methods=["GET", "POST"])
@token_auth.login_required
def get_module_list():
data_list = BllModule().get_module_list()
return jsonify(Utils.true_return(data=Utils.msyql_table_model(data_list)))
# 添加角色
@power_router.route("/add_update_role", methods=["GET", "POST"])
@token_auth.login_required
def add_role():
role_id = request.values.get("role_id")
role_code = request.values.get("role_code")
role_name = request.values.get("role_name")
sys_module_list = request.values.get("sys_module_list")
client_module_list = request.values.get("client_module_list")
description = request.values.get("description")
# 获取角色代码或者角色名的角色信息
obj = BllRole().findEntity(
or_(EntityRole.role_code == role_code, EntityRole.role_name == role_name))
# 判断是创建角色
if not role_id:
# 判断信息重复
if obj:
return jsonify(Utils.false_return(msg="角色代码或角色名重复,创建失败"))
else:
# 创建角色
role_max_obj = BllRole().execute("select max(sort_index) as sort_index from rms_role").fetchone()
role_id=Utils.UUID()
role_obj = EntityRole(
role_id=role_id,
role_code=role_code,
role_name=role_name,
role_level=1,
description=description,
sort_index=int(role_max_obj.sort_index or '0') + 1
)
BllRole().insert(role_obj)
else:
# 修改角色信息
role_obj = BllRole().findEntity(role_id)
# 判断修改的信息是否重复
if not obj or role_obj.role_id == role_id:
role_obj.role_code=role_code,
role_obj.role_name=role_name,
role_obj.description=description,
BllRole().update(role_obj)
else:
return jsonify(Utils.false_return(msg="角色代码或角色名重复,修改失败"))
# 删除原有的权限,每次重新创建
BllModuleRelation().delete(EntityModuleRelation.object_id==role_id)
inster_module_list = []
if sys_module_list:
sys_module_list = eval(sys_module_list)
for module_id in sys_module_list:
inster_module_list.append(
EntityModuleRelation(
object_type=1,
object_id=role_id,
module_id=module_id,
module_type=2,
create_date=Utils.get_str_datetime()
)
)
if client_module_list:
client_module_list = eval(client_module_list)
for module_id in client_module_list:
inster_module_list.append(
EntityModuleRelation(
object_type=1,
object_id=role_id,
module_id=module_id,
module_type=1,
create_date=Utils.get_str_datetime()
)
)
BllModuleRelation().insert_many(inster_module_list)
return jsonify(Utils.true_return())
# 删除角色
@power_router.route("/del_role", methods=["GET", "POST"])
@token_auth.login_required
def remove_role():
role_id = request.values.get("role_id")
BllRole().delete(EntityRole.role_id==role_id)
BllModuleRelation().delete(EntityModuleRelation.object_id==role_id)
return jsonify(Utils.true_return(msg="删除成功"))

@ -5,9 +5,10 @@
'''
from flask import jsonify, request, Blueprint, g
from Common.auth import token_auth
from Common.Utils import Utils
from Common.Utils import PageParam, Utils
from db_logic.user import BllUser
from models.user_models import EntityUser
user_router = Blueprint('user', __name__)
@ -40,8 +41,81 @@ def user_update_password():
return jsonify(Utils.false_return(msg=msg_token))
@user_router.route("/get_user_power", methods=["GET"])
# 获取用户列表
@user_router.route("/get_user_list", methods=["GET", "POST"])
@token_auth.login_required
def get_user_power():
print(g.current_user.user_id)
return jsonify(Utils.true_return())
def get_user_info_list():
user_code = request.values.get("user_code")
real_name = request.values.get("real_name")
role_name = request.values.get("role_name")
is_enabled = request.values.get("is_enabled")
page = int(request.values.get("page", 1))
page_size = int(request.values.get("page_size", 10))
page_param = PageParam(page, page_size)
data_list = BllUser().get_seach_user_list(
user_code=user_code,
real_name=real_name,
role_name=role_name,
is_enabled=is_enabled,
page_param=page_param
)
return jsonify(Utils.true_return(data={"total_count":page_param.totalRecords, "data_list": Utils.msyql_table_model(data_list)}))
# 新增用户
@user_router.route("/add", methods=["GET", "POST"])
@token_auth.login_required
def add_user_info():
try:
obj = EntityUser(
real_name=request.values.get("real_name"),
mobile=request.values.get("mobile"),
sex=request.values.get("sex"),
email=request.values.get("email"),
user_code=request.values.get("user_code"),
qq=request.values.get("qq"),
role_id=request.values.get("role_id"),
is_enabled=request.values.get("is_enabled")
)
BllUser().insert(obj)
# BllUser().update()
return jsonify(Utils.true_return(msg="添加成功"))
except Exception as error:
return jsonify(Utils.except_return(msg=error))
# 修改用户
@user_router.route("/update", methods=["GET", "POST"])
@token_auth.login_required
def update_user_info():
user_id = request.values.get("user_id")
try:
obj = BllUser().findEntity(user_id)
if not obj:
return jsonify(Utils.false_return(msg="用户id有误"))
else:
obj.real_name = request.values.get("real_name")
obj.mobile = request.values.get("mobile")
obj.sex = request.values.get("sex")
obj.email = request.values.get("email")
obj.user_code = request.values.get("user_code")
obj.qq = request.values.get("qq")
obj.role_id = request.values.get("role_id")
obj.role_name = request.values.get("role_name")
obj.is_enabled = request.values.get("is_enabled")
obj.update_last_visit_date()
BllUser().update(obj)
return jsonify(Utils.true_return(msg="修改成功"))
except Exception as error:
return jsonify(Utils.except_return(msg=error))
# 删除用户
@user_router.route("/del", methods=["GET", "POST"])
@token_auth.login_required
def del_user():
user_id = request.values.get("user_id")
BllUser().delete(EntityUser.user_id==user_id)
return jsonify(Utils.true_return(msg="删除成功"))

@ -14,23 +14,14 @@ class BllModule(Repository):
def __init__(self, entityType=EntityModule):
return super().__init__(entityType)
"""
module_id = Column(String(50), primary_key=True, comment="模块ID")
module_type = Column(String(50), comment="模块类型")
module_code = Column(String(50), comment="")
module_name = Column(String(50), comment="模块名称")
icon = Column(String(50), comment="图片")
url_address = Column(String(50), comment="图片地址")
sort_index = Column(Integer, comment="排序下标")
module_weight = Column(Integer, comment="模块权重")
parent_id = Column(String(50), comment="父id")
is_enabled = Column(Integer, comment="是否启用")
description = Column(String(50), comment="备注")
create_date = Column(String(50), comment="创建时间")
create_user_id = Column(String(50), comment="创建用户id")
create_user_name = Column(String(50), comment="创建用户名")
is_add = Column(Integer, comment="")
"""
def get_module_list(self):
sql_all = """
select module_id, module_type, module_name, sort_index, description from rms_module where is_enabled=1
"""
return self.execute(sql_all).fetchall()
# return self.findList().all()
def inster_info_list(self):
obj_list = []
from demo import data_list
@ -53,8 +44,11 @@ class BllModule(Repository):
obj_list.append(obj)
self.insert_many(obj_list)
if __name__ == '__main__':
from Common.Utils import Utils
aaa = BllModule().inster_info_list()
# aaa_list = Utils.msyql_table_model(aaa)
print(aaa)
# if __name__ == '__main__':
# from Common.Utils import Utils
# aaa = BllModule().get_module_list()
# print([i for i in aaa])
# aaa_list = Utils.to_dict(aaa, 1)
# for i in aaa_list:
# print(i)
# print(aaa)

@ -33,6 +33,21 @@ class BllModuleRelation(Repository):
"""
return self.execute(sql_all).fetchall()
def get_role_module(self):
sql_all = """
select
a.role_name,
a.role_code,
a.description,
group_concat(c.module_name) module_name
from rms_role as a
LEFT JOIN rms_module_relation as b
on b.object_id=a.role_id
LEFT JOIN rms_module as c
on c.module_id=b.module_id
"""
return self.execute(sql_all).fetchall()
def add_inster_user_moduele(self):
role_id = "a699ff99-117b-11ed-a086-f47b094925e5"
obj_list = []

@ -4,6 +4,8 @@
@Date:2022/07/18 16:44:57
'''
import sys
import sqlalchemy
sys.path.append(".")
import jwt
import base64
@ -68,19 +70,49 @@ class BllUser(Repository):
# return User.query.get(payload.get('user_id'))
return self.findEntity(payload.get('user_id'))
# 用户管理
def get_seach_user_list(self, user_code, real_name, role_name, is_enabled, page_param):
filter_base = ""
if user_code:
filter_base += f" user_code like %'{user_code}'%"
if real_name:
if filter_base:
filter_base += " and "
filter_base += f" real_name like %'{real_name}'% "
if role_name:
if filter_base:
filter_base += " and "
filter_base += f" role_name like %'{role_name}'%"
if is_enabled:
if filter_base:
filter_base += " and "
filter_base += f" is_enabled={is_enabled}"
if filter_base:
filter_base = f" where {filter_base}"
sql_all = f"""
select * from rms_user {filter_base} order by create_date desc
"""
try:
count_number = len(self.execute(sql_all).fetchall())
except Exception:
count_number = 0
page_param.totalRecords = count_number
sql_page = Utils.sql_paging_assemble(sql_all, page_param)
return self.execute(sql_page).fetchall()
#根据条码获取用户
def getUserByBarCode(self, barCode):
return self.findEntity(EntityUser.BarCode == barCode)
# #根据条码获取用户
# def getUserByBarCode(self, barCode):
# return self.findEntity(EntityUser.BarCode == barCode)
#获取用户列表
def getUserList(self, customerId, pageParam, keyWord=''):
keyWord = '%' + keyWord + '%'
orm_query = self.findList().filter(EntityUser.CustomerId == customerId
).filter(or_(EntityUser.UserCode.like(keyWord), EntityUser.RealName.like(keyWord))).order_by(desc(EntityUser.CreateDate))
return self.queryPage(orm_query, pageParam)
# #获取用户列表
# def getUserList(self, customerId, pageParam, keyWord=''):
# keyWord = '%' + keyWord + '%'
# orm_query = self.findList().filter(EntityUser.CustomerId == customerId
# ).filter(or_(EntityUser.UserCode.like(keyWord), EntityUser.RealName.like(keyWord))).order_by(desc(EntityUser.CreateDate))
# return self.queryPage(orm_query, pageParam)
#获取用户详情信息
def getUserInfo(self, userId):
return self.findEntity(userId)
# #获取用户详情信息
# def getUserInfo(self, userId):
# return self.findEntity(userId)

Loading…
Cancel
Save