109 lines
2.4 KiB
Python
109 lines
2.4 KiB
Python
"""
|
||
集成了对 Pear Admin Flask 的部门的操作,并给了相对应的示例。
|
||
"""
|
||
|
||
from applications.common import curd
|
||
from applications.extensions import db
|
||
from applications.models import Dept, User
|
||
from applications.schemas import DeptOutSchema
|
||
|
||
|
||
def get_all():
|
||
"""
|
||
获取全部权限,会返回一个列表,每个列表是一个字典。
|
||
|
||
字典构成如下::
|
||
|
||
{
|
||
"address":"这是总公司", # 地址
|
||
"deptId":1, # 公司ID
|
||
"deptName":"总公司", # 公司名
|
||
"email":"1", # 公司 email
|
||
"leader":"", # 公司领导人
|
||
"parentId":0, # 父ID
|
||
"phone":"", # 联系电话
|
||
"sort":1, # 排序
|
||
"status":"1" # 状态 1-开启 0-关闭
|
||
}
|
||
|
||
:return: 列表
|
||
"""
|
||
dept = Dept.query.order_by(Dept.sort).all()
|
||
return curd.model_to_dicts(schema=DeptOutSchema, data=dept)
|
||
|
||
|
||
def add(parentId, deptName, sort, leader, phone, email, status, address):
|
||
"""
|
||
添加一个公司
|
||
|
||
:param parentId: 父公司ID,0未总公司
|
||
:param deptName: 公司名称
|
||
:param sort: 排序
|
||
:param leader: 负责人
|
||
:param phone: 手机
|
||
:param email: 邮箱
|
||
:param status: 状态 1-打开 0-关闭
|
||
:param address: 地址
|
||
:return: 是否成功
|
||
"""
|
||
dept = Dept(
|
||
parent_id=parentId,
|
||
dept_name=deptName,
|
||
sort=sort,
|
||
leader=leader,
|
||
phone=phone,
|
||
email=email,
|
||
status=status,
|
||
address=address
|
||
)
|
||
r = db.session.add(dept)
|
||
db.session.commit()
|
||
if r:
|
||
return True
|
||
else:
|
||
return False
|
||
|
||
|
||
def update(deptId, data):
|
||
"""
|
||
更新公司信息
|
||
|
||
可更新内容如下::
|
||
|
||
"dept_name"
|
||
"sort"
|
||
"leader"
|
||
"phone"
|
||
"email"
|
||
"status"
|
||
"address"
|
||
|
||
:param deptId: 公司ID
|
||
:param data: 要更新公司字典
|
||
:return: 是否成功
|
||
"""
|
||
d = Dept.query.filter_by(id=deptId).update(data)
|
||
if not d:
|
||
return False
|
||
db.session.commit()
|
||
return True
|
||
|
||
|
||
def delete(deptId):
|
||
"""
|
||
删除公司
|
||
|
||
:param deptId: 公司ID
|
||
:return: 是否成功
|
||
"""
|
||
d = Dept.query.filter_by(id=deptId).delete()
|
||
if not d:
|
||
return False
|
||
res = User.query.filter_by(dept_id=deptId).update({"dept_id": None})
|
||
db.session.commit()
|
||
if res:
|
||
return True
|
||
else:
|
||
return False
|
||
|