35 lines
998 B
Python
35 lines
998 B
Python
"""
|
|
公告相关路由(前台)
|
|
"""
|
|
from fastapi import APIRouter, Depends, Query
|
|
from sqlalchemy.orm import Session
|
|
from typing import List
|
|
from ..core.database import get_db
|
|
from ..schemas.announcement import AnnouncementResponse
|
|
from ..services.announcement_service import AnnouncementService
|
|
|
|
router = APIRouter(prefix="/api/announcements", tags=["announcements"])
|
|
|
|
|
|
@router.get("/", response_model=List[AnnouncementResponse])
|
|
def get_announcements(
|
|
page: int = Query(1, ge=1),
|
|
size: int = Query(10, ge=1, le=100),
|
|
db: Session = Depends(get_db)
|
|
):
|
|
"""
|
|
获取公告列表(前台)
|
|
"""
|
|
skip = (page - 1) * size
|
|
return AnnouncementService.get_announcements(db, skip, size)
|
|
|
|
|
|
@router.get("/active", response_model=List[AnnouncementResponse])
|
|
def get_active_announcements(
|
|
limit: int = Query(5, le=20),
|
|
db: Session = Depends(get_db)
|
|
):
|
|
"""
|
|
获取活跃公告(前台)
|
|
"""
|
|
return AnnouncementService.get_active_announcements(db, limit) |