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 itsdangerous import TimedJSONWebSignatureSerializer as Serializer, SignatureExpired, BadSignature
|
||||||
|
|
||||||
from DBHelper.MongoHelper import MongoHelper
|
from DBHelper.MongoHelper import MongoHelper
|
||||||
from user.user_db import FIND_DATA
|
|
||||||
|
|
||||||
TOKEN_KEY = "P0eHym@&CbaLzWkq"
|
TOKEN_KEY = "P0eHym@&CbaLzWkq"
|
||||||
TOKEN_EXPIRE = 60*60*8
|
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 DBHelper.MongoHelper import MongoHelper
|
||||||
from user.user_auth import create_token
|
from user.user_auth import create_token
|
||||||
from user.user_utils import check_mail_fmt, check_pwd_fmt, decrypt_data
|
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):
|
def create_user_impl(email, name, pwd, role):
|
||||||
|
@ -275,72 +379,6 @@ def send_vcode_to_user_impl(email):
|
||||||
return __main__()
|
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):
|
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):
|
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)
|
return create_user_impl(self.email, self.name, self.pwd, self.role)
|
||||||
|
|
||||||
def list_user(self):
|
|
||||||
"""
|
|
||||||
用户信息列表
|
|
||||||
"""
|
|
||||||
# TODO
|
|
||||||
|
|
||||||
def disable_user(self):
|
def disable_user(self):
|
||||||
"""
|
"""
|
||||||
禁用用户
|
禁用用户
|
||||||
|
@ -79,9 +81,6 @@ class UserOperation(User):
|
||||||
self.token = None
|
self.token = None
|
||||||
self.block = None
|
self.block = None
|
||||||
self.vcode = None
|
self.vcode = None
|
||||||
self.criteria = None
|
|
||||||
self.skip = None
|
|
||||||
self.limit = None
|
|
||||||
|
|
||||||
# 登录
|
# 登录
|
||||||
def login(self):
|
def login(self):
|
||||||
|
@ -90,13 +89,6 @@ class UserOperation(User):
|
||||||
"""
|
"""
|
||||||
return login_impl(self.email, self.pwd, self.vcode)
|
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):
|
def deactivate(self):
|
||||||
return disable_user_impl(self.uid)
|
return disable_user_impl(self.uid)
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
from flask import Blueprint, request
|
from flask import Blueprint, request
|
||||||
|
|
||||||
|
from Log.log_utils import error_info
|
||||||
from user.user_obj import UserManage, UserOperation
|
from user.user_obj import UserManage, UserOperation
|
||||||
from user.user_auth import verify_token, authority_scope
|
from user.user_auth import verify_token, authority_scope
|
||||||
|
|
||||||
|
@ -15,6 +16,23 @@ def online_check_route(**kwargs):
|
||||||
return {"info": "正常"}, 200
|
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'])
|
@user_route.route('/send_vcode_to_user', methods=['POST'])
|
||||||
def send_vcode_to_user_route():
|
def send_vcode_to_user_route():
|
||||||
"""
|
"""
|
||||||
|
@ -66,21 +84,6 @@ def create_user_route(**kwargs):
|
||||||
return {"info": result}, 200
|
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'])
|
@user_route.route('/disable_user', methods=['GET'])
|
||||||
@verify_token
|
@verify_token
|
||||||
@authority_scope(['admin'])
|
@authority_scope(['admin'])
|
||||||
|
|
Loading…
Reference in New Issue