crud.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. # -*- coding: utf-8 -*-
  2. from typing import Sequence
  3. from app.core.base_crud import CRUDBase
  4. from ..auth.schema import AuthSchema
  5. from .model import OperationLogModel
  6. from .schema import OperationLogCreateSchema
  7. class OperationLogCRUD(CRUDBase[OperationLogModel, OperationLogCreateSchema, OperationLogCreateSchema]):
  8. """
  9. 操作日志数据层。
  10. """
  11. def __init__(self, auth: AuthSchema) -> None:
  12. """
  13. 初始化操作日志CRUD。
  14. """
  15. self.auth = auth
  16. super().__init__(model=OperationLogModel, auth=auth)
  17. async def create_crud(self, data: OperationLogCreateSchema) -> OperationLogModel | None:
  18. """
  19. 创建操作日志记录。
  20. 参数:
  21. - data (OperationLogCreateSchema): 操作日志创建模型。
  22. 返回:
  23. - OperationLogModel | None: 创建后的日志记录。
  24. """
  25. return await self.create(data=data)
  26. async def get_by_id_crud(self, id: int, preload: list | None = None) -> OperationLogModel | None:
  27. """
  28. 根据ID获取操作日志详情。
  29. 参数:
  30. - id (int): 操作日志ID。
  31. - preload (list | None): 预加载关系,未提供时使用模型默认项
  32. 返回:
  33. - OperationLogModel | None: 操作日志记录。
  34. """
  35. return await self.get(id=id, preload=preload)
  36. async def get_list_crud(self, search: dict | None = None, order_by: list | None = None, preload: list | None = None) -> Sequence[OperationLogModel]:
  37. """
  38. 获取操作日志列表。
  39. 参数:
  40. - search (Dict | None): 搜索条件字典。
  41. - order_by (List[Dict[str, str]] | None): 排序字段列表。
  42. - preload (Optional[List[Union[str, Any]]]): 预加载关系,未提供时使用模型默认项
  43. 返回:
  44. - Sequence[OperationLogModel]: 操作日志列表。
  45. """
  46. return await self.list(search=search, order_by=order_by, preload=preload)