refactor(重构程序&目录结构)

This commit is contained in:
zhengxinonly
2022-01-23 00:43:39 +08:00
parent 3453b01938
commit 6978002393
60 changed files with 374 additions and 462 deletions
+10 -11
View File
@@ -1,20 +1,19 @@
from flask import jsonify
from flask_restful import Resource, reqparse
from applications.common.utils.http import success_api, fail_api
from applications.extensions import db
from applications.models import CompanyDepartment, CompanyUser
from common.utils.http import success_api, fail_api
from extensions import db
from models import DepartmentModels, UserModels
class DepartmentsResource(Resource):
def get(self):
dept_data = CompanyDepartment.query.order_by(CompanyDepartment.sort).all()
dept_data = DepartmentModels.query.order_by(DepartmentModels.sort).all()
# TODO dtree 需要返回状态信息
res = {
"status": {"code": 200, "message": "默认"},
"data": [
{
'deptId': item.id,
'parentId': item.parent_id,
@@ -45,7 +44,7 @@ class DepartmentsResource(Resource):
res = parser.parse_args()
dept = CompanyDepartment(
dept = DepartmentModels(
parent_id=res.parent_id,
dept_name=res.dept_name,
sort=res.sort,
@@ -63,7 +62,7 @@ class DepartmentsResource(Resource):
class DepartmentResource(Resource):
def get(self, dept_id):
dept = CompanyDepartment.query.filter_by(id=dept_id).first()
dept = DepartmentModels.query.filter_by(id=dept_id).first()
dept_data = {
'id': dept.id,
'dept_name': dept.dept_name,
@@ -96,15 +95,15 @@ class DepartmentResource(Resource):
"status": res.status,
"address": res.address
}
res = CompanyDepartment.query.filter_by(id=dept_id).update(data)
res = DepartmentModels.query.filter_by(id=dept_id).update(data)
if not res:
return fail_api(message="更新失败")
db.session.commit()
return success_api(message="更新成功")
def delete(self, dept_id):
ret = CompanyDepartment.query.filter_by(id=dept_id).delete()
CompanyUser.query.filter_by(dept_id=dept_id).update({"dept_id": None})
ret = DepartmentModels.query.filter_by(id=dept_id).delete()
UserModels.query.filter_by(dept_id=dept_id).update({"dept_id": None})
db.session.commit()
if ret:
return success_api(message="删除成功")
@@ -113,7 +112,7 @@ class DepartmentResource(Resource):
class DeptEnableResource(Resource):
def put(self, dept_id):
d = CompanyDepartment.query.get(dept_id)
d = DepartmentModels.query.get(dept_id)
if d:
d.status = not d.status
db.session.commit()
+14 -19
View File
@@ -5,9 +5,9 @@ from flask import request, jsonify, current_app
from flask_login import current_user
from flask_restful import Resource, reqparse
from applications.common.utils.http import success_api, fail_api
from applications.extensions import db
from applications.models import RightsPower, RightsRole
from common.utils.http import success_api, fail_api
from extensions import db
from models import RightModels, RoleModels
def get_render_config():
@@ -105,7 +105,6 @@ def make_menu_tree():
if p.type == 0 or p.type == 1:
powers.append(p)
# power_dict = marshal(powers, RightsPower.fields2()) # 生成可序列化对象
power_dict = [
{
'id': item.id,
@@ -118,8 +117,6 @@ def make_menu_tree():
'icon': item.icon,
'sort': item.sort,
'enable': item.enable,
'update_at': item.update_at.strftime('%Y-%m-%d %H:%M:%S'),
'create_at': item.create_at.strftime('%Y-%m-%d %H:%M:%S'),
} for item in powers
]
power_dict.sort(key=lambda x: x['id'], reverse=True)
@@ -143,15 +140,15 @@ def make_menu_tree():
# 删除权限(目前没有判断父节点自动删除子节点)
def remove_power(power_id):
power = RightsPower.query.filter_by(id=power_id).first()
power = RightModels.query.filter_by(id=power_id).first()
role_id_list = []
roles = power.role
for role in roles:
role_id_list.append(role.id)
roles = RightsRole.query.filter(RightsRole.id.in_(role_id_list)).all()
roles = RoleModels.query.filter(RoleModels.id.in_(role_id_list)).all()
for p in roles:
power.role.remove(p)
r = RightsPower.query.filter_by(id=power_id).delete()
r = RightModels.query.filter_by(id=power_id).delete()
db.session.commit()
return r
@@ -177,8 +174,8 @@ class RightRightsResource(Resource):
def get(self):
"""获取选择父节点"""
power = RightsPower.query.all()
# power_data = marshal(power, RightsPower.fields())
power = RightModels.query.all()
# power_data = marshal(power, RightModels.fields())
power_data = [
{
'powerId': item.id,
@@ -189,8 +186,6 @@ class RightRightsResource(Resource):
'parentId': item.parent_id,
'icon': item.icon,
'sort': item.sort,
'create_at': item.create_at.strftime('%Y-%m-%d %H:%M:%S'),
'update_at': item.update_at.strftime('%Y-%m-%d %H:%M:%S'),
'enable': item.enable,
} for item in power
]
@@ -211,7 +206,7 @@ class RightPowerResource(Resource):
def post(self, power_id):
res = parser_power.parse_args()
power = RightsPower(
power = RightModels(
icon=res.icon,
open_type=res.open_type,
parent_id=res.parent_id,
@@ -233,15 +228,15 @@ class RightPowerResource(Resource):
def delete(self, power_id):
# 删除权限(目前没有判断父节点自动删除子节点)
power = RightsPower.query.filter_by(id=power_id).first()
power = RightModels.query.filter_by(id=power_id).first()
role_id_list = []
roles = power.role
for role in roles:
role_id_list.append(role.id)
roles = RightsRole.query.filter(RightsRole.id.in_(role_id_list)).all()
roles = RoleModels.query.filter(RoleModels.id.in_(role_id_list)).all()
for p in roles:
power.role.remove(p)
r = RightsPower.query.filter_by(id=power_id).delete()
r = RightModels.query.filter_by(id=power_id).delete()
db.session.commit()
if r:
@@ -262,7 +257,7 @@ class RightPowerResource(Resource):
"url": res.power_url,
"sort": res.sort
}
power = RightsPower.query.filter_by(id=power_id).update(data)
power = RightModels.query.filter_by(id=power_id).update(data)
db.session.commit()
if not power:
@@ -273,7 +268,7 @@ class RightPowerResource(Resource):
class RightPowerEnableResource(Resource):
def put(self, right_id):
power = RightsPower.query.get(right_id)
power = RightModels.query.get(right_id)
if power:
power.enable = not power.enable
db.session.commit()
+20 -20
View File
@@ -1,28 +1,28 @@
from flask_restful import Resource, reqparse, marshal
from applications.common.utils.http import table_api, success_api, fail_api
from applications.extensions import db
from applications.models import RightsPower, RightsRole, CompanyUser
from common.utils.http import table_api, success_api, fail_api
from extensions import db
from models import RightModels, RoleModels, UserModels
def remove_role(role_id):
""" 删除角色 """
role = RightsRole.query.filter_by(id=role_id).first()
role = RoleModels.query.filter_by(id=role_id).first()
# 删除该角色的权限
power_id_list = []
for p in role.power:
power_id_list.append(p.id)
powers = RightsPower.query.filter(RightsPower.id.in_(power_id_list)).all()
powers = RightModels.query.filter(RightModels.id.in_(power_id_list)).all()
for p in powers:
role.power.remove(p)
user_id_list = []
for u in role.user:
user_id_list.append(u.id)
users = CompanyUser.query.filter(CompanyUser.id.in_(user_id_list)).all()
users = UserModels.query.filter(UserModels.id.in_(user_id_list)).all()
for u in users:
role.user.remove(u)
r = RightsRole.query.filter_by(id=role_id).delete()
r = RoleModels.query.filter_by(id=role_id).delete()
db.session.commit()
return r
@@ -46,11 +46,11 @@ class RoleRolesResource(Resource):
filters = []
if res.role_name:
filters.append(RightsRole.name.like('%' + res.role_name + '%'))
filters.append(RoleModels.name.like('%' + res.role_name + '%'))
if res.role_code:
filters.append(RightsRole.code.like('%' + res.role_code + '%'))
filters.append(RoleModels.code.like('%' + res.role_code + '%'))
paginate = RightsRole.query.filter(*filters).paginate(page=res.page, per_page=res.limit, error_out=False)
paginate = RoleModels.query.filter(*filters).paginate(page=res.page, per_page=res.limit, error_out=False)
return table_api(result={'items': [{'id': item.id,
'roleName': item.name,
@@ -59,7 +59,7 @@ class RoleRolesResource(Resource):
'comment': item.comment,
'details': item.details,
'sort': item.sort,
'create_at': str(item.create_at), } for item in paginate.items],
} for item in paginate.items],
'total': paginate.total}
, code=0)
@@ -85,7 +85,7 @@ class RoleRoleResource(Resource):
res = parser.parse_args()
role = RightsRole(
role = RoleModels(
details=res.details,
enable=res.enable,
code=res.role_code,
@@ -116,7 +116,7 @@ class RoleRoleResource(Resource):
"details": res.details
}
role = RightsRole.query.filter_by(id=role_id).update(data)
role = RoleModels.query.filter_by(id=role_id).update(data)
db.session.commit()
if not role:
return fail_api(message="更新角色失败")
@@ -127,7 +127,7 @@ class RoleEnableResource(Resource):
"""启用用户"""
def put(self, role_id):
ret = RightsRole.query.get(role_id)
ret = RoleModels.query.get(role_id)
ret.enable = not ret.enable
db.session.commit()
@@ -141,11 +141,11 @@ class RolePowerResource(Resource):
def get(self, role_id):
# 获取角色权限
role = RightsRole.query.filter_by(id=role_id).first()
role = RoleModels.query.filter_by(id=role_id).first()
# 获取权限列表的 id
check_powers_list = [rp.id for rp in role.power]
powers = RightsPower.query.all() # 获取所有的权限
powers = marshal(powers, RightsPower.fields())
powers = RightModels.query.all() # 获取所有的权限
powers = marshal(powers, RightModels.fields())
for i in powers:
if int(i.get("powerId")) in check_powers_list:
i["checkArr"] = "1"
@@ -166,14 +166,14 @@ class RolePowerResource(Resource):
power_list = res.power_ids.split(',')
""" 更新角色权限 """
role = RightsRole.query.filter_by(id=role_id).first()
role = RoleModels.query.filter_by(id=role_id).first()
power_id_list = []
for p in role.power:
power_id_list.append(p.id)
powers = RightsPower.query.filter(RightsPower.id.in_(power_id_list)).all()
powers = RightModels.query.filter(RightModels.id.in_(power_id_list)).all()
for p in powers:
role.power.remove(p)
powers = RightsPower.query.filter(RightsPower.id.in_(power_list)).all()
powers = RightModels.query.filter(RightModels.id.in_(power_list)).all()
for p in powers:
role.power.append(p)
db.session.commit()
+8 -9
View File
@@ -4,10 +4,10 @@ from flask import request, jsonify, current_app
from flask_restful import Resource
from sqlalchemy import desc
from applications.common.utils.http import fail_api, success_api, table_api
from applications.common.utils.upload import upload_one, delete_photo_by_id
from applications.extensions import db
from applications.models import FilePhoto
from common.utils.http import fail_api, success_api, table_api
from common.utils.upload import upload_one, delete_photo_by_id
from extensions import db
from models import PhotoModels
class FilePhotosResource(Resource):
@@ -15,11 +15,10 @@ class FilePhotosResource(Resource):
def get(self):
page = request.args.get('page', type=int)
limit = request.args.get('limit', type=int)
photo_paginate = FilePhoto.query.order_by(desc(FilePhoto.create_at)
).paginate(page=page,
photo_paginate = PhotoModels.query.order_by(desc(PhotoModels.create_at)
).paginate(page=page,
per_page=limit,
error_out=False)
# data = marshal(photo_paginate.items, FilePhoto.fields())
data = [
{
'id': item.id,
@@ -55,11 +54,11 @@ class FilePhotosResource(Resource):
"""图片批量删除"""
# TODO bugs 图片删除失败
ids = request.form.getlist('ids[]')
photo_name = FilePhoto.query.filter(FilePhoto.id.in_(ids)).all()
photo_name = PhotoModels.query.filter(PhotoModels.id.in_(ids)).all()
upload_url = current_app.config.get("UPLOADED_PHOTOS_DEST")
for p in photo_name:
os.remove(upload_url + '/' + p.name)
photo = FilePhoto.query.filter(FilePhoto.id.in_(ids)).delete(synchronize_session=False)
photo = PhotoModels.query.filter(PhotoModels.id.in_(ids)).delete(synchronize_session=False)
db.session.commit()
if photo:
return success_api(message="删除成功")
+5 -5
View File
@@ -3,10 +3,10 @@ from flask import session, redirect, url_for
from flask_login import current_user, login_user
from flask_restful import Resource, reqparse
from applications.common.gen_captcha import add_auth_session
from applications.common.utils.http import fail_api, success_api
from applications.common.utils.rights import record_logging
from applications.models import CompanyUser
from common.gen_captcha import add_auth_session
from common.utils.http import fail_api, success_api
from common.utils.rights import record_logging
from models import UserModels
class LoginResource(Resource):
@@ -28,7 +28,7 @@ class LoginResource(Resource):
if req.captcha != s_code:
return fail_api(message="验证码错误")
user = CompanyUser.query.filter_by(username=req.username).first()
user = UserModels.query.filter_by(username=req.username).first()
if user is None:
return fail_api(message="不存在的用户")
+8 -9
View File
@@ -1,11 +1,10 @@
# 个人中心
from flask import request, jsonify
from flask_login import login_required
from flask_restful import Resource, reqparse
from applications.common.utils.http import fail_api, success_api
from applications.extensions import db
from applications.models import CompanyUser
from common.utils.http import fail_api, success_api
from extensions import db
from models import UserModels
class UserStatusResource(Resource):
@@ -19,11 +18,11 @@ class UserStatusResource(Resource):
res = parser.parse_args()
if res.operate == 1:
user = CompanyUser.query.get(user_id)
user = UserModels.query.get(user_id)
user.enable = res.operate
message = success_api(message="启动成功")
else:
user = CompanyUser.query.filter_by(id=res.user_id).update({"enable": res.operate})
user = UserModels.query.filter_by(id=res.user_id).update({"enable": res.operate})
message = success_api(message="禁用成功")
if user:
db.session.commit()
@@ -37,7 +36,7 @@ class UserAvatarResource(Resource):
def put(self, user_id):
url = request.json.get("avatar").get("src")
ret = CompanyUser.query.get(user_id)
ret = UserModels.query.get(user_id)
ret.avatar = url
db.session.commit()
if not ret:
@@ -56,7 +55,7 @@ class UserInfoResource(Resource):
res = parser.parse_args()
ret = CompanyUser.query.get(user_id)
ret = UserModels.query.get(user_id)
ret.username = res.username
ret.realname = res.real_name
ret.remark = res.details
@@ -81,7 +80,7 @@ class UserPasswordResource(Resource):
return fail_api(message='确认密码不一致')
""" 修改当前用户密码 """
user = CompanyUser.query.get(user_id)
user = UserModels.query.get(user_id)
is_right = user.validate_password(res.oldPassword)
if not is_right:
return jsonify(success=False, message="旧密码错误")
+27 -27
View File
@@ -3,35 +3,35 @@ from flask_login import current_user
from flask_restful import Resource, reqparse
from sqlalchemy import desc
from applications.common.utils.http import fail_api, success_api, table_api
from applications.extensions import db
from applications.models import CompanyUser, RightsRole, CompanyDepartment
from applications.models import LoggingModel
from common.utils.http import fail_api, success_api, table_api
from extensions import db
from models import UserModels, RoleModels, DepartmentModels
from models import LogModel
def get_current_user_logs():
""" 获取当前用户日志 """
log = LoggingModel.query.filter_by(url='/passport/login').filter_by(uid=current_user.id).order_by(
desc(LoggingModel.create_at)).limit(10)
log = LogModel.query.filter_by(url='/passport/login').filter_by(uid=current_user.id).order_by(
desc(LogModel.create_at)).limit(10)
return log
def is_user_exists(username):
""" 判断用户是否存在 """
res = CompanyUser.query.filter_by(username=username).count()
res = UserModels.query.filter_by(username=username).count()
return bool(res)
def delete_by_id(_id):
""" 删除用户 """
user = CompanyUser.query.filter_by(id=_id).first()
user = UserModels.query.filter_by(id=_id).first()
roles_id = []
for role in user.role:
roles_id.append(role.id)
roles = RightsRole.query.filter(RightsRole.id.in_(roles_id)).all()
roles = RoleModels.query.filter(RoleModels.id.in_(roles_id)).all()
for r in roles:
user.role.remove(r)
res = CompanyUser.query.filter_by(id=_id).delete()
res = UserModels.query.filter_by(id=_id).delete()
db.session.commit()
return res
@@ -43,14 +43,14 @@ def batch_remove(ids):
def update_user_role(_id, roles_list):
user = CompanyUser.query.filter_by(id=_id).first()
user = UserModels.query.filter_by(id=_id).first()
roles_id = []
for role in user.role:
roles_id.append(role.id)
roles = RightsRole.query.filter(RightsRole.id.in_(roles_id)).all()
roles = RoleModels.query.filter(RoleModels.id.in_(roles_id)).all()
for r in roles:
user.role.remove(r)
roles = RightsRole.query.filter(RightsRole.id.in_(roles_list)).all()
roles = RoleModels.query.filter(RoleModels.id.in_(roles_list)).all()
for r in roles:
user.role.append(r)
db.session.commit()
@@ -72,17 +72,17 @@ class UserUsersResource(Resource):
filters = []
if res.real_name:
filters.append(CompanyUser.realname.like('%' + res.real_name + '%'))
filters.append(UserModels.realname.like('%' + res.real_name + '%'))
if res.username:
filters.append(CompanyUser.username.like('%' + res.username + '%'))
filters.append(UserModels.username.like('%' + res.username + '%'))
if res.dept_id:
filters.append(CompanyUser.dept_id == res.dept_id)
filters.append(UserModels.dept_id == res.dept_id)
paginate = CompanyUser.query.filter(*filters).paginate(page=res.page,
per_page=res.limit,
error_out=False)
paginate = UserModels.query.filter(*filters).paginate(page=res.page,
per_page=res.limit,
error_out=False)
dept_name = lambda dept_id: CompanyDepartment.query.filter_by(id=dept_id).first().dept_name if dept_id else ""
dept_name = lambda dept_id: DepartmentModels.query.filter_by(id=dept_id).first().dept_name if dept_id else ""
user_data = [{
'id': item.id,
'username': item.username,
@@ -111,7 +111,7 @@ class UserUsersResource(Resource):
if is_user_exists(res.username):
return fail_api(message="用户已经存在")
user = CompanyUser()
user = UserModels()
user.username = res.username
user.realname = res.real_name
user.set_password(res.password)
@@ -119,8 +119,8 @@ class UserUsersResource(Resource):
db.session.commit()
""" 增加用户角色 """
user = CompanyUser.query.filter_by(id=user.id).first()
roles = RightsRole.query.filter(RightsRole.id.in_(role_ids)).all()
user = UserModels.query.filter_by(id=user.id).first()
roles = RoleModels.query.filter(RoleModels.id.in_(role_ids)).all()
for r in roles:
user.role.append(r)
db.session.commit()
@@ -152,7 +152,7 @@ class UserUserResource(Resource):
if is_user_exists(res.username):
return fail_api(message="用户已经存在")
user = CompanyUser()
user = UserModels()
user.username = res.username
user.realname = res.real_name
user.set_password(res.password)
@@ -160,8 +160,8 @@ class UserUserResource(Resource):
db.session.commit()
""" 增加用户角色 """
user = CompanyUser.query.filter_by(id=user.id).first()
roles = RightsRole.query.filter(RightsRole.id.in_(role_ids)).all()
user = UserModels.query.filter_by(id=user.id).first()
roles = RoleModels.query.filter(RoleModels.id.in_(role_ids)).all()
for r in roles:
user.role.append(r)
db.session.commit()
@@ -189,7 +189,7 @@ class UserRoleResource(Resource):
role_ids = res.role_ids.split(',')
# 更新用户数据
CompanyUser.query.filter_by(id=user_id).update({'username': res.username,
UserModels.query.filter_by(id=user_id).update({'username': res.username,
'realname': res.real_name,
'dept_id': res.dept_id})
db.session.commit()