statistics.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. from pydantic import BaseModel
  2. from typing import List
  3. # 1. 核心指标统计
  4. class StatsData(BaseModel):
  5. totalOrders: int
  6. totalRevenue: int # 单位:分
  7. activeUsers: int
  8. pendingTickets: int
  9. successRate: str
  10. # 2. 营收趋势 (最近7天)
  11. class RevenueTrendItem(BaseModel):
  12. date: str # 格式: MM-DD
  13. amount: float # 单位:元 (Service层做了 /100 处理)
  14. orders: int
  15. # 3. 商品销量分布
  16. class ProductDistItem(BaseModel):
  17. name: str # 商品标题
  18. value: int # 销量
  19. # 4. 最新动态
  20. class ActivityItem(BaseModel):
  21. id: str # 唯一标识 (e.g., "order_123")
  22. text: str # 显示文本
  23. time: str # 相对时间 (e.g., "10分钟前")
  24. type: str # 类型: order, money, ticket, system
  25. # === 主响应模型 ===
  26. class VasStatisticsOverviewOut(BaseModel):
  27. stats: StatsData
  28. revenue_trend: List[RevenueTrendItem]
  29. product_dist: List[ProductDistItem]
  30. recent_activities: List[ActivityItem]