mini-rbac/backend/dbhelper/menu.py

75 lines
1.9 KiB
Python
Raw Normal View History

2022-09-13 05:31:15 +00:00
from tortoise import connections
2022-09-12 07:11:12 +00:00
from models import MenuModel
from schemas.menu import MenuIn
async def insert_menu(menu: MenuIn):
"""新增菜单"""
return await MenuModel.create(**menu.dict())
2022-09-12 15:22:18 +00:00
async def get_menus(skip: int, limit: int, kwargs: dict = None):
"""
分页获取用户并且支持字段模糊查询
Args:
skip: 偏移量
limit: 数量
kwargs: 查询字典
Returns:
"""
if kwargs is not None:
kwargs = {f"{k}__contains": v for k, v in kwargs.items()}
else:
kwargs = {}
result = MenuModel.filter(status__not=9, **kwargs).all().order_by("-created")
return await result.offset(skip).limit(limit), await result.count()
async def get_menu(kwargs):
"""
根据条件查询到第一条符合结果的数据
Args:
kwargs:
Returns:
"""
return await MenuModel.filter(**kwargs).first()
async def del_menu(mid: int):
"""删除用户"""
return await MenuModel.filter(id=mid).update(status=9)
2022-09-13 05:31:15 +00:00
async def get_has_api(pk: int, api: str, method: str):
"""获取角色接口权限 每次来查数据库"""
db = connections.get("default")
return await db.execute_query_dict(
"""
select m.api, m.method
FROM sys_menu as m, sys_role_menu as srm WHERE m.id = srm.mid
AND srm.rid = (?) and m.api = (?) and m.method = (?) and m.status != 9""",
[pk, api, method],
)
async def get_apis(pk: int):
"""返回当前角色拥有的接口权限列表"""
db = connections.get("default")
return await db.execute_query_dict(
"""
select m.api, m.method
FROM sys_menu as m, sys_role_menu as srm WHERE m.id = srm.mid
AND srm.rid = (?) and m.status != 9""",
[pk],
)
2022-09-13 08:53:31 +00:00
async def put_menu(pk: int, data):
"""更新菜单"""
2022-09-13 16:39:19 +00:00
return await MenuModel.filter(id=pk).update(**data.dict())