""" 统一返回结果类 - 对齐JAVA Result @author: {{ author }} @date: {{ date }} """ from typing import TypeVar, Generic, Optional, Any from pydantic import BaseModel, Field from datetime import datetime import time T = TypeVar('T') class Result(BaseModel, Generic[T]): """接口返回数据格式 - 对齐JAVA Result""" success: bool = Field(True, description="成功标志") message: str = Field("", description="返回处理消息") code: int = Field(0, description="返回代码, 0=成功, 500=错误") result: Optional[T] = Field(None, description="返回数据对象") timestamp: int = Field(default_factory=lambda: int(time.time() * 1000), description="时间戳") @staticmethod def OK(data: Any = None, message: str = "") -> dict: """成功返回""" return { "success": True, "message": message, "code": 200, "result": data, "timestamp": int(time.time() * 1000) } @staticmethod def error(message: str, code: int = 500) -> dict: """错误返回""" return { "success": False, "message": message, "code": code, "result": None, "timestamp": int(time.time() * 1000) } @staticmethod def noauth(message: str = "无权限访问") -> dict: """无权限返回""" return { "success": False, "message": message, "code": 210, "result": None, "timestamp": int(time.time() * 1000) }