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):
|
|
|
|
"""更新菜单"""
|
|
|
|
return await MenuModel.filter(id=pk).update(**data.dict())
|