|
@@ -21,7 +21,7 @@ role_list.add_argument(name='page', type=int, location='args', required=False, h
|
|
|
|
|
|
@ns.route('/role_list')
|
|
@ns.route('/role_list')
|
|
class GetUserListApi(Resource):
|
|
class GetUserListApi(Resource):
|
|
- #method_decorators = [login_required]
|
|
|
|
|
|
+ # method_decorators = [login_required]
|
|
|
|
|
|
@ns.doc(id='get_role_list', description='获取角色列表')
|
|
@ns.doc(id='get_role_list', description='获取角色列表')
|
|
@ns.expect(role_list)
|
|
@ns.expect(role_list)
|
|
@@ -40,9 +40,16 @@ class GetUserListApi(Resource):
|
|
stmt = select(Role).offset(page_size * (page - 1)).limit(page_size)
|
|
stmt = select(Role).offset(page_size * (page - 1)).limit(page_size)
|
|
results = session.execute(stmt).scalars().all()
|
|
results = session.execute(stmt).scalars().all()
|
|
|
|
|
|
|
|
+ # 增加角色人数
|
|
|
|
+ results = to_dict(results)
|
|
|
|
+
|
|
|
|
+ for result in results:
|
|
|
|
+ number_of_people = select(func.count(User.role)).where(User.role == result['id'])
|
|
|
|
+ result['count'] = session.execute(number_of_people).scalars().first()
|
|
|
|
+
|
|
save_log(request, Module.ROLE, OperationType.INQUIRE, StatesCode.SUCCESS)
|
|
save_log(request, Module.ROLE, OperationType.INQUIRE, StatesCode.SUCCESS)
|
|
|
|
|
|
- return jsonify(code=StatesCode.SUCCESS, message='成功', total=count_results, data=to_dict(results))
|
|
|
|
|
|
+ return jsonify(code=StatesCode.SUCCESS, message='成功', total=count_results, data=results)
|
|
except Exception as e:
|
|
except Exception as e:
|
|
save_log(request, Module.ROLE, OperationType.INQUIRE, StatesCode.UNKNOWN_ERROR)
|
|
save_log(request, Module.ROLE, OperationType.INQUIRE, StatesCode.UNKNOWN_ERROR)
|
|
return jsonify(code=StatesCode.UNKNOWN_ERROR, message=str(e))
|
|
return jsonify(code=StatesCode.UNKNOWN_ERROR, message=str(e))
|
|
@@ -60,7 +67,7 @@ role_id.add_argument(name='role_id', type=int, location='args', required=False,
|
|
|
|
|
|
@ns.route('/role')
|
|
@ns.route('/role')
|
|
class RoleApi(Resource):
|
|
class RoleApi(Resource):
|
|
- #method_decorators = [login_required]
|
|
|
|
|
|
+ # method_decorators = [login_required]
|
|
|
|
|
|
@ns.doc(id='get_role', description='获取角色')
|
|
@ns.doc(id='get_role', description='获取角色')
|
|
@ns.expect(role_id)
|
|
@ns.expect(role_id)
|
|
@@ -182,6 +189,8 @@ class RoleApi(Resource):
|
|
|
|
|
|
get_member = reqparse.RequestParser(bundle_errors=True)
|
|
get_member = reqparse.RequestParser(bundle_errors=True)
|
|
get_member.add_argument(name='role_id', type=int, location='args', required=False, help='角色id')
|
|
get_member.add_argument(name='role_id', type=int, location='args', required=False, help='角色id')
|
|
|
|
+get_member.add_argument(name='page_size', type=int, location='args', required=False, help='每页记录数量,默认:20')
|
|
|
|
+get_member.add_argument(name='page', type=int, location='args', required=False, help='页数')
|
|
|
|
|
|
del_member = reqparse.RequestParser(bundle_errors=True)
|
|
del_member = reqparse.RequestParser(bundle_errors=True)
|
|
del_member.add_argument(name='user_id', type=int, location='form', required=False, help='用户id')
|
|
del_member.add_argument(name='user_id', type=int, location='form', required=False, help='用户id')
|
|
@@ -192,25 +201,27 @@ batch_del_member.add_argument(name='users_id', type=str, location='form', requir
|
|
|
|
|
|
@ns.route('/member')
|
|
@ns.route('/member')
|
|
class RoleMemberApi(Resource):
|
|
class RoleMemberApi(Resource):
|
|
- #method_decorators = [login_required]
|
|
|
|
|
|
+ # method_decorators = [login_required]
|
|
|
|
|
|
@ns.doc(id='get_role_member', description='获取角色成员')
|
|
@ns.doc(id='get_role_member', description='获取角色成员')
|
|
@ns.expect(get_member)
|
|
@ns.expect(get_member)
|
|
def get(self):
|
|
def get(self):
|
|
"""获取角色成员"""
|
|
"""获取角色成员"""
|
|
role_id = request.args.get('role_id')
|
|
role_id = request.args.get('role_id')
|
|
|
|
+ page_size = int(request.args.get('page_size', 20))
|
|
|
|
+ page = int(request.args.get('page', 1))
|
|
|
|
|
|
if role_id is None:
|
|
if role_id is None:
|
|
return jsonify(code=StatesCode.PARA_ERROR, message='角色id不能为空')
|
|
return jsonify(code=StatesCode.PARA_ERROR, message='角色id不能为空')
|
|
|
|
|
|
try:
|
|
try:
|
|
with Session(current_app.engine) as session:
|
|
with Session(current_app.engine) as session:
|
|
- stmt = select(User).where(User.role == role_id)
|
|
|
|
|
|
+ stmt = select(User).where(User.role == role_id).offset(page_size * (page - 1)).limit(page_size)
|
|
results = session.execute(stmt).scalars().all()
|
|
results = session.execute(stmt).scalars().all()
|
|
|
|
|
|
save_log(request, Module.ROLE, OperationType.INQUIRE, StatesCode.SUCCESS)
|
|
save_log(request, Module.ROLE, OperationType.INQUIRE, StatesCode.SUCCESS)
|
|
|
|
|
|
- return jsonify(code=StatesCode.SUCCESS, message='成功', data=to_dict(results))
|
|
|
|
|
|
+ return jsonify(code=StatesCode.SUCCESS, message='成功', total=len(results), data=to_dict(results))
|
|
except Exception as e:
|
|
except Exception as e:
|
|
save_log(request, Module.ROLE, OperationType.INQUIRE, StatesCode.UNKNOWN_ERROR)
|
|
save_log(request, Module.ROLE, OperationType.INQUIRE, StatesCode.UNKNOWN_ERROR)
|
|
return jsonify(code=StatesCode.UNKNOWN_ERROR, message=str(e))
|
|
return jsonify(code=StatesCode.UNKNOWN_ERROR, message=str(e))
|
|
@@ -237,7 +248,9 @@ class RoleMemberApi(Resource):
|
|
save_log(request, Module.ROLE, OperationType.DELETE, StatesCode.UNKNOWN_ERROR)
|
|
save_log(request, Module.ROLE, OperationType.DELETE, StatesCode.UNKNOWN_ERROR)
|
|
return jsonify(code=StatesCode.UNKNOWN_ERROR, message=str(e))
|
|
return jsonify(code=StatesCode.UNKNOWN_ERROR, message=str(e))
|
|
|
|
|
|
- # class BatchDeleteRoleMember(Resource):
|
|
|
|
|
|
+
|
|
|
|
+@ns.route('/batch_delete_role_member')
|
|
|
|
+class BatchDeleteRoleMember(Resource):
|
|
@ns.doc(id='batch_delete_role_member', description='批量移除角色成员')
|
|
@ns.doc(id='batch_delete_role_member', description='批量移除角色成员')
|
|
@ns.expect(batch_del_member)
|
|
@ns.expect(batch_del_member)
|
|
def delete(self):
|
|
def delete(self):
|
|
@@ -267,3 +280,45 @@ class RoleMemberApi(Resource):
|
|
except Exception as e:
|
|
except Exception as e:
|
|
save_log(request, Module.ROLE, OperationType.BATCH_DELETE, StatesCode.UNKNOWN_ERROR)
|
|
save_log(request, Module.ROLE, OperationType.BATCH_DELETE, StatesCode.UNKNOWN_ERROR)
|
|
return jsonify(code=StatesCode.UNKNOWN_ERROR, message=str(e))
|
|
return jsonify(code=StatesCode.UNKNOWN_ERROR, message=str(e))
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+batch_delete_role = reqparse.RequestParser(bundle_errors=True)
|
|
|
|
+batch_delete_role.add_argument(name='role_ids', type=int, location='form', required=False, help='角色ids')
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+@ns.route('/batch_delete_role')
|
|
|
|
+class BatchDeleteRole(Resource):
|
|
|
|
+
|
|
|
|
+ @ns.doc(description='批量删除角色')
|
|
|
|
+ @ns.expect()
|
|
|
|
+ def delete(self):
|
|
|
|
+ """批量删除角色"""
|
|
|
|
+ role_ids = request.form.get('role_ids')
|
|
|
|
+ if role_ids:
|
|
|
|
+ role_ids = json.loads(role_ids)
|
|
|
|
+ else:
|
|
|
|
+ return jsonify(code=StatesCode.PARA_ERROR, message='role_ids不能为空')
|
|
|
|
+
|
|
|
|
+ count = {'succeed': 0, 'failure': 0}
|
|
|
|
+
|
|
|
|
+ try:
|
|
|
|
+ with Session(current_app.engine) as session:
|
|
|
|
+ for role_id in role_ids:
|
|
|
|
+ stmt = select(func.count(User.role)).where(User.role == role_id)
|
|
|
|
+ results = session.execute(stmt).scalars().first()
|
|
|
|
+
|
|
|
|
+ if results == 0:
|
|
|
|
+ stmt = delete(Role).where(Role.id == role_id)
|
|
|
|
+ session.execute(stmt)
|
|
|
|
+ session.commit()
|
|
|
|
+ count['succeed'] += 1
|
|
|
|
+ else:
|
|
|
|
+ count['failure'] += 1
|
|
|
|
+
|
|
|
|
+ save_log(request, Module.ROLE, OperationType.BATCH_DELETE, StatesCode.SUCCESS)
|
|
|
|
+
|
|
|
|
+ return jsonify(code=StatesCode.SUCCESS, message='批量移除成功', data=count)
|
|
|
|
+
|
|
|
|
+ except Exception as e:
|
|
|
|
+ save_log(request, Module.ROLE, OperationType.BATCH_DELETE, StatesCode.UNKNOWN_ERROR)
|
|
|
|
+ return jsonify(code=StatesCode.UNKNOWN_ERROR, message=str(e))
|