Merge branch 'v0.21' into 'master'
用户列表 See merge request root/tfse_admin!20
This commit is contained in:
commit
f427a7b540
|
@ -0,0 +1,18 @@
|
|||
import functools
|
||||
|
||||
|
||||
def error_info(func):
|
||||
"""
|
||||
校验token
|
||||
return:
|
||||
type:str
|
||||
desc: token被解析后的值
|
||||
"""
|
||||
@functools.wraps(func)
|
||||
def internal(*args, **kwargs):
|
||||
try:
|
||||
func()
|
||||
except Exception:
|
||||
return {"info": "参数异常了?"}, 500
|
||||
return func(*args, **kwargs)
|
||||
return internal
|
|
@ -5,7 +5,6 @@ from itsdangerous import Serializer
|
|||
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer, SignatureExpired, BadSignature
|
||||
|
||||
from DBHelper.MongoHelper import MongoHelper
|
||||
from user.user_db import FIND_DATA
|
||||
|
||||
TOKEN_KEY = "P0eHym@&CbaLzWkq"
|
||||
TOKEN_EXPIRE = 60*60*8
|
||||
|
|
|
@ -9,7 +9,111 @@ from werkzeug.security import generate_password_hash, check_password_hash
|
|||
from DBHelper.MongoHelper import MongoHelper
|
||||
from user.user_auth import create_token
|
||||
from user.user_utils import check_mail_fmt, check_pwd_fmt, decrypt_data
|
||||
from user.user_db import INSERT_DATA, FIND_DATA, UPSERT_DATA, DELETE_DATA, FIND_DATA_PAGE, UPDATE_INFO
|
||||
from user.user_db import DELETE_DATA, UPDATE_INFO
|
||||
|
||||
|
||||
def list_user_impl(param1, param2, param3, param4):
|
||||
"""
|
||||
查询用户列表
|
||||
param1:
|
||||
type: dict
|
||||
desc: 用户搜索条件 支持模糊查询条件
|
||||
demo: {"姓名": "xxx", "邮箱": "xxx"}
|
||||
param2:
|
||||
type: dict
|
||||
desc: 排序条件 asc正序 desc倒序
|
||||
demo: {"姓名": asc}
|
||||
param3:
|
||||
type: int
|
||||
desc: 每页数据数量
|
||||
param4:
|
||||
type: int
|
||||
desc: 当前页数
|
||||
"""
|
||||
# 查询体构造方法
|
||||
def make_search_body(param):
|
||||
body = dict()
|
||||
search_keys = list(param.keys())
|
||||
|
||||
if "uid" in search_keys:
|
||||
body['UID'] = {"UID": param['uid']}
|
||||
|
||||
if "姓名" in search_keys:
|
||||
body['name'] = {"$regex": param['姓名']}
|
||||
|
||||
if "邮箱" in search_keys:
|
||||
body['email'] = {"$regex": param['邮箱']}
|
||||
|
||||
if "状态" in search_keys:
|
||||
if param['状态'] == "正常":
|
||||
body['status'] = "normal"
|
||||
elif param['状态'] == "停用":
|
||||
body['status'] = "disable"
|
||||
else:
|
||||
pass
|
||||
|
||||
if "角色" in search_keys:
|
||||
roles = list()
|
||||
role_map = {"管理员": "admin", "分析师": "analysts", "开发者": "developer", "运营人员": "operator", "访客": "guest"}
|
||||
for role in list(set(param['角色'])):
|
||||
roles.append(role_map[role])
|
||||
body['role'] = {"$in": roles}
|
||||
|
||||
return body
|
||||
|
||||
# 顺序条件构造方法
|
||||
def make_sort_body(param):
|
||||
if param != {}:
|
||||
columns_map = {"姓名": "name", "邮箱": "email", "状态": "status", "角色": "role", "创建时间": "create_time"}
|
||||
asc_or_desc = 1 if list(param.values())[0] == "asc" else -1
|
||||
sort_column = columns_map[list(param.keys())[0]]
|
||||
body = {sort_column: asc_or_desc}
|
||||
else:
|
||||
body = {"create_time": -1}
|
||||
|
||||
return body
|
||||
|
||||
# 连接数据库
|
||||
db = MongoHelper("tfse_v0.21")
|
||||
|
||||
search_body = make_search_body(param1)
|
||||
sort = make_sort_body(param2)
|
||||
page_size = int(param3)
|
||||
page_no = int(param4)
|
||||
|
||||
total = db.find_all_data_with_count(
|
||||
"管理端",
|
||||
"用户",
|
||||
search_body
|
||||
)
|
||||
|
||||
records = db.find_data_by_page_with_sort(
|
||||
"管理端",
|
||||
"用户",
|
||||
search_body,
|
||||
["UID", "email", "name", "status", "role", "create_time"],
|
||||
sort,
|
||||
page_size,
|
||||
page_no
|
||||
)
|
||||
|
||||
if records:
|
||||
for record in records:
|
||||
record['uid'] = record.pop('UID')
|
||||
record['邮箱'] = record.pop('email')
|
||||
record['姓名'] = record.pop('name')
|
||||
record['状态'] = record.pop('status')
|
||||
record['角色'] = record.pop('role')
|
||||
record['创建时间'] = record.pop('create_time')
|
||||
else:
|
||||
records = []
|
||||
|
||||
result = {
|
||||
"records": records,
|
||||
"total": total
|
||||
}
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def create_user_impl(email, name, pwd, role):
|
||||
|
@ -275,72 +379,6 @@ def send_vcode_to_user_impl(email):
|
|||
return __main__()
|
||||
|
||||
|
||||
def list_user_impl(criteria, skip, limit):
|
||||
"""
|
||||
查询用户列表
|
||||
Parameters:
|
||||
criteria str 查询条件
|
||||
Returns:
|
||||
查询成功 list 用户列表
|
||||
"""
|
||||
def uid_query():
|
||||
"""
|
||||
uid查询
|
||||
"""
|
||||
result = FIND_DATA_PAGE("用户", "用户信息", {"UID": criteria}, skip, limit)
|
||||
return result
|
||||
|
||||
def email_query():
|
||||
"""
|
||||
email查询
|
||||
"""
|
||||
result = FIND_DATA_PAGE("用户", "用户信息", {"email": criteria}, skip, limit)
|
||||
return result
|
||||
|
||||
def name_query():
|
||||
"""
|
||||
name查询
|
||||
"""
|
||||
result = FIND_DATA_PAGE("用户", "用户信息", {"name": criteria}, skip, limit)
|
||||
return result
|
||||
|
||||
def status_query():
|
||||
"""
|
||||
status查询
|
||||
"""
|
||||
result = FIND_DATA_PAGE("用户", "用户信息", {"status": criteria}, skip, limit)
|
||||
return result
|
||||
|
||||
def role_query():
|
||||
"""
|
||||
role查询
|
||||
"""
|
||||
result = FIND_DATA_PAGE("用户", "用户信息", {"role": criteria}, skip, limit)
|
||||
return result
|
||||
|
||||
def empty_query():
|
||||
"""
|
||||
空值查询
|
||||
"""
|
||||
result = FIND_DATA_PAGE("用户", "用户信息", {}, skip, limit)
|
||||
return result
|
||||
|
||||
if criteria:
|
||||
record = uid_query()
|
||||
if len(record['data']) == 0:
|
||||
record = email_query()
|
||||
if len(record['data']) == 0:
|
||||
record = name_query()
|
||||
if len(record['data']) == 0:
|
||||
record = status_query()
|
||||
if len(record['data']) == 0:
|
||||
record = role_query()
|
||||
else:
|
||||
record = empty_query()
|
||||
|
||||
return record
|
||||
|
||||
|
||||
def disable_user_impl(uid):
|
||||
"""
|
||||
禁用用户
|
||||
|
|
|
@ -26,6 +26,14 @@ class UserManage(User):
|
|||
"""
|
||||
用户管理
|
||||
"""
|
||||
|
||||
@staticmethod
|
||||
def list_user(search, sort, page_size, page_no):
|
||||
"""
|
||||
用户信息列表
|
||||
"""
|
||||
return list_user_impl(search, sort, page_size, page_no)
|
||||
|
||||
def send_vcode_to_user(self):
|
||||
"""
|
||||
发送验证码
|
||||
|
@ -44,12 +52,6 @@ class UserManage(User):
|
|||
"""
|
||||
return create_user_impl(self.email, self.name, self.pwd, self.role)
|
||||
|
||||
def list_user(self):
|
||||
"""
|
||||
用户信息列表
|
||||
"""
|
||||
# TODO
|
||||
|
||||
def disable_user(self):
|
||||
"""
|
||||
禁用用户
|
||||
|
@ -79,9 +81,6 @@ class UserOperation(User):
|
|||
self.token = None
|
||||
self.block = None
|
||||
self.vcode = None
|
||||
self.criteria = None
|
||||
self.skip = None
|
||||
self.limit = None
|
||||
|
||||
# 登录
|
||||
def login(self):
|
||||
|
@ -90,13 +89,6 @@ class UserOperation(User):
|
|||
"""
|
||||
return login_impl(self.email, self.pwd, self.vcode)
|
||||
|
||||
# 查询
|
||||
def query(self):
|
||||
"""
|
||||
查询用户信息
|
||||
"""
|
||||
return list_user_impl(self.criteria, self.skip, self.limit)
|
||||
|
||||
# 停用
|
||||
def deactivate(self):
|
||||
return disable_user_impl(self.uid)
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from flask import Blueprint, request
|
||||
|
||||
from Log.log_utils import error_info
|
||||
from user.user_obj import UserManage, UserOperation
|
||||
from user.user_auth import verify_token, authority_scope
|
||||
|
||||
|
@ -15,6 +16,23 @@ def online_check_route(**kwargs):
|
|||
return {"info": "正常"}, 200
|
||||
|
||||
|
||||
@user_route.route('/list_user', methods=['POST'])
|
||||
@verify_token
|
||||
@authority_scope(['admin'])
|
||||
@error_info
|
||||
def list_user_route(**kwargs):
|
||||
"""
|
||||
用户信息列表接口
|
||||
"""
|
||||
user_manage = UserManage()
|
||||
search = request.json['search']
|
||||
sort = request.json['sort']
|
||||
page_size = request.json['page_size']
|
||||
page_no = request.json['page_no']
|
||||
result = user_manage.list_user(search, sort, page_size, page_no)
|
||||
return {"info": '查询结果', "result": result}, 200
|
||||
|
||||
|
||||
@user_route.route('/send_vcode_to_user', methods=['POST'])
|
||||
def send_vcode_to_user_route():
|
||||
"""
|
||||
|
@ -66,21 +84,6 @@ def create_user_route(**kwargs):
|
|||
return {"info": result}, 200
|
||||
|
||||
|
||||
@user_route.route('/list_user', methods=['GET'])
|
||||
@verify_token
|
||||
@authority_scope(['admin'])
|
||||
def list_user_route(**kwargs):
|
||||
"""
|
||||
用户信息列表接口
|
||||
"""
|
||||
uo = UserOperation()
|
||||
uo.criteria = request.args.get('criteria')
|
||||
uo.skip = int(request.args.get('skip'))
|
||||
uo.limit = int(request.args.get('limit'))
|
||||
result = uo.query()
|
||||
return {"info": '查询成功', "result": result}, 200
|
||||
|
||||
|
||||
@user_route.route('/disable_user', methods=['GET'])
|
||||
@verify_token
|
||||
@authority_scope(['admin'])
|
||||
|
|
Loading…
Reference in New Issue