1. Dashboard: stats新增queryStats查询统计, trend API真实工单趋势数据 2. Layout铃铛: 显示真实待审批工单数量 3. 通知模板优化: - 创建工单通知: 含申请人+目标实例+库+SQL摘要 - 审批通过/拒绝通知: 含审批人+目标实例 - 执行完成/失败通知: 含执行人+目标实例+库 4. 飞书卡片颜色: 创建=turquoise, 审批=blue, 成功=green, 失败=red 5. 钉钉消息: 添加状态emoji标签(🆕✅❌⚠️) 6. TicketCreatePage: 底部操作栏(SQL检测+提交审批) 7. ticket_executor: 移除aiomysql不支持的read_timeout/write_timeout Tests: 1057 passed, 17 pre-existing failures (notification 35/35 passed)
33 lines
681 B
Python
33 lines
681 B
Python
from pydantic import BaseModel
|
|
from typing import Optional, List
|
|
|
|
|
|
class QueryStatsData(BaseModel):
|
|
total: int = 0
|
|
avg_time_ms: int = 0
|
|
slow_count: int = 0
|
|
type_distribution: List[dict] = []
|
|
|
|
|
|
class DashboardStats(BaseModel):
|
|
ticket_total: int = 0
|
|
ticket_pending: int = 0
|
|
ticket_month: int = 0
|
|
ticket_executing: int = 0
|
|
instance_total: int = 0
|
|
instance_online: int = 0
|
|
user_total: int = 0
|
|
queries_today: int = 0
|
|
query_stats: Optional[QueryStatsData] = None
|
|
|
|
|
|
class TrendPoint(BaseModel):
|
|
date: str
|
|
submitted: int = 0
|
|
success: int = 0
|
|
failed: int = 0
|
|
|
|
|
|
class TrendData(BaseModel):
|
|
items: List[TrendPoint] = []
|