48 lines
1.8 KiB
Python
48 lines
1.8 KiB
Python
from fastapi import APIRouter, Depends, Query
|
|
|
|
from app.core.auth import get_current_admin_user
|
|
import app.services.admin_dashboard_service as admin_dashboard_service
|
|
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/admin/dashboard/stats")
|
|
async def get_dashboard_stats(current_user=Depends(get_current_admin_user)):
|
|
return await admin_dashboard_service.get_dashboard_stats(current_user)
|
|
|
|
|
|
@router.get("/admin/online-users")
|
|
async def get_online_users(current_user=Depends(get_current_admin_user)):
|
|
return await admin_dashboard_service.get_online_users(current_user)
|
|
|
|
|
|
@router.post("/admin/kick-user/{user_id}")
|
|
async def kick_user(user_id: int, current_user=Depends(get_current_admin_user)):
|
|
return await admin_dashboard_service.kick_user(user_id, current_user)
|
|
|
|
|
|
@router.get("/admin/tasks/monitor")
|
|
async def monitor_tasks(
|
|
task_type: str = Query('all', description="任务类型: all, transcription, summary, knowledge_base"),
|
|
status: str = Query('all', description="任务状态: all, running, completed, failed"),
|
|
limit: int = Query(20, ge=1, le=100, description="返回数量限制"),
|
|
current_user=Depends(get_current_admin_user)
|
|
):
|
|
return await admin_dashboard_service.monitor_tasks(task_type, status, limit, current_user)
|
|
|
|
|
|
@router.get("/admin/system/resources")
|
|
async def get_system_resources(current_user=Depends(get_current_admin_user)):
|
|
return await admin_dashboard_service.get_system_resources(current_user)
|
|
|
|
|
|
@router.get("/admin/user-stats")
|
|
async def get_user_stats(current_user=Depends(get_current_admin_user)):
|
|
return await admin_dashboard_service.get_user_stats(current_user)
|
|
|
|
|
|
@router.post("/admin/tasks/{task_type}/{task_id}/retry")
|
|
async def retry_task(task_type: str, task_id: str, current_user=Depends(get_current_admin_user)):
|
|
return await admin_dashboard_service.retry_task(task_type, task_id, current_user)
|