| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- from pydantic import BaseModel
- from typing import Optional
- from datetime import datetime
- class ConsumptionRecord(BaseModel):
- """单条消费记录流水"""
- user_id: str
- username: str
- tenant_name: Optional[str] = None
- order_no: str
- model_name: str
- model_code: str
- amount: str
- created_at: str
- invoiced: bool
- user_discount: str
- user_actual_price: str
- tenant_discount: str
- tenant_actual_price: str
- super_admin_discount: str
- super_admin_actual_price: str
- class UserConsumption(BaseModel):
- """用户消费数据"""
- user_id: str
- username: str
- nickname: Optional[str] = None
- total_consumption: str
- tenant_actual_total: str
- tenant_name: Optional[str] = None
- consumption_records: list[ConsumptionRecord]
- class TenantData(BaseModel):
- """租户消费数据"""
- tenant_id: int
- company_name: Optional[str] = None
- subdomain: str
- total_consumption: str
- total_tenant_charged: str
- balance: str
- user_count: int
- users: list[UserConsumption]
- class SuperAdminData(BaseModel):
- """超级管理员消费数据"""
- super_admin_id: int
- username: str
- nickname: Optional[str] = None
- remark: Optional[str] = None
- tenant_count: int
- total_consumption: str
- total_tenant_charged: str
- tenants: list[TenantData]
- class Overview(BaseModel):
- """平台汇总数据"""
- total_super_admins: int
- total_tenants: int
- total_users: int
- total_consumption: str
- total_tenant_charged: str
- total_balance: str
- class ConsumptionDetailRecord(BaseModel):
- """单条消费明细记录(不聚合)"""
- user_id: str
- user_name: str
- tenant_name: str
- order_no: str
- model_code: str
- consumption_date: str # 消费时间
- tenant_consumed: str # 企业实际支付金额
- user_discount: str # 用户折扣率
- user_consumed: str # 用户实际支付金额
- tenant_discount: str # 企业折扣率
- tenant_actual_price: str # 企业实际被收取金额
- super_admin_discount: str # 超管折扣率
- super_admin_actual_price: str # 平台向超管收取金额
- class DailyTenantStat(BaseModel):
- """租户按日消费统计"""
- tenant_name: str
- date: str
- consumption: str
- charged: str
- class DailySAStat(BaseModel):
- """超级管理员按日消费统计"""
- sa_name: str
- date: str
- consumption: str
- charged: str
- tenants: list[DailyTenantStat]
- class DailyStatsResponse(BaseModel):
- """按日消费统计响应"""
- sa_stats: list[DailySAStat]
- class ConsumptionDetailResponse(BaseModel):
- """消费明细列表响应"""
- total: int
- records: list[ConsumptionDetailRecord]
- class DashboardResponse(BaseModel):
- """监控大屏响应"""
- overview: Overview
- super_admins: list[SuperAdminData]
- start_date: Optional[str] = None
- end_date: Optional[str] = None
|