sys_log_dto.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from datetime import datetime
  2. from typing import Optional
  3. from pydantic import Field
  4. from domain.dtos.base_dto import DtoBase
  5. class SysOperLogDto(DtoBase):
  6. id: Optional[int] = Field(..., title="日志ID", gt=0)
  7. title: str = Field(..., title="操作模块", max_length=50)
  8. business_type: int = Field(0, title="业务类型", ge=0, le=5)
  9. method: str = Field(..., title="方法名称", max_length=100)
  10. request_method: str = Field(..., title="请求方式", max_length=10)
  11. operator_type: int = Field(0, title="操作类别", ge=0, le=2)
  12. dept_name: str = Field(..., title="部门名称", max_length=50)
  13. oper_name: str = Field(..., title="操作人员", max_length=30)
  14. oper_url: str = Field(..., title="请求URL", max_length=255)
  15. oper_ip: str = Field(..., title="主机地址", max_length=50)
  16. oper_location: str = Field(..., title="操作地点", max_length=255)
  17. oper_param: str = Field(..., title="请求参数", max_length=2000)
  18. json_result: str = Field(..., title="返回参数", max_length=2000)
  19. status: int = Field(0, title="操作状态", ge=0, le=1)
  20. error_msg: Optional[str] = Field(None, title="错误信息", max_length=2000)
  21. oper_time: datetime = Field(..., title="操作时间")
  22. cost_time: int = Field(0, title="请求耗时", ge=0)
  23. class Config:
  24. from_attributes = True
  25. class SysLoginLogDto(DtoBase):
  26. id: Optional[int] = Field(..., title="日志ID", gt=0)
  27. username: str = Field(..., title="用户账号", max_length=30)
  28. ipaddr: str = Field(..., title="登录IP地址", max_length=50)
  29. login_location: str = Field(..., title="登录地点", max_length=255)
  30. browser: str = Field(..., title="浏览器类型", max_length=50)
  31. os: str = Field(..., title="操作系统", max_length=50)
  32. status: int = Field(0, title="登录状态", ge=0, le=1)
  33. msg: str = Field(..., title="提示消息", max_length=255)
  34. login_time: datetime = Field(..., title="登录时间")