| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- from datetime import datetime
- from typing import Any, Optional
- from pydantic import BaseModel, ConfigDict
- from pydantic.alias_generators import to_camel
- def to_camel_if_str(v: Any) -> Any:
- if isinstance(v, str):
- parts = v.split("_")
- return parts[0] + "".join(p.capitalize() for p in parts[1:])
- return v
- class CamelModel(BaseModel):
- model_config = ConfigDict(
- populate_by_name=True,
- alias_generator=to_camel,
- from_attributes=True,
- )
- class R(BaseModel):
- code: int = 200
- msg: str = "操作成功"
- data: Any = None
- @staticmethod
- def ok(data: Any = None, msg: str = "操作成功") -> dict:
- return {"code": 200, "msg": msg, "data": data}
- @staticmethod
- def fail(msg: str = "操作失败") -> dict:
- return {"code": 500, "msg": msg, "data": None}
- @staticmethod
- def warn(msg: str = "") -> dict:
- return {"code": 601, "msg": msg, "data": None}
- class TableDataInfo(BaseModel):
- code: int = 200
- msg: str = "查询成功"
- rows: list = []
- total: int = 0
- @staticmethod
- def build(rows: list, total: int, msg: str = "查询成功") -> dict:
- return {"code": 200, "msg": msg, "rows": rows, "total": total}
- class PageQuery(BaseModel):
- page_num: int = 1
- page_size: int = 10
- @property
- def offset(self) -> int:
- return (self.page_num - 1) * self.page_size
- @property
- def limit(self) -> int:
- return self.page_size
|