27 lines
925 B
Python
27 lines
925 B
Python
from typing import List, Dict, Any, Optional
|
|
|
|
from fastapi import APIRouter, Query
|
|
|
|
from app.summary.service import SummaryService
|
|
|
|
router = APIRouter(prefix="/summary", tags=["summary"])
|
|
|
|
|
|
@router.get("/message-statistics", response_model=List[Dict[str, Any]])
|
|
async def get_message_statistics(
|
|
start_date: Optional[str] = Query(None, description="开始日期 (格式: YYYY-MM-DD)"),
|
|
end_date: Optional[str] = Query(None, description="结束日期 (格式: YYYY-MM-DD)")
|
|
):
|
|
"""
|
|
获取按日期和发送者分组的消息统计数据
|
|
|
|
SQL逻辑:
|
|
SELECT DATE(created_at) AS created_at, from_user
|
|
FROM archive_messages
|
|
GROUP BY DATE(created_at), from_user
|
|
ORDER BY created_at DESC;
|
|
"""
|
|
if start_date or end_date:
|
|
return await SummaryService.get_message_statistics_by_date(start_date, end_date)
|
|
return await SummaryService.get_message_statistics()
|