announcement.py 944 B

12345678910111213141516171819202122232425262728293031323334353637
  1. """
  2. 公告接口
  3. """
  4. from fastapi import APIRouter, Depends
  5. from sqlalchemy.orm import Session
  6. from app.database import get_db
  7. from app.models.announcement import Announcement
  8. router = APIRouter()
  9. @router.get("")
  10. async def get_announcement(db: Session = Depends(get_db)):
  11. """获取公告列表"""
  12. # 获取所有启用的公告,按优先级和创建时间排序
  13. announcements = db.query(Announcement).filter(
  14. Announcement.is_active == 1
  15. ).order_by(Announcement.priority.desc(), Announcement.created_at.desc()).all()
  16. if not announcements:
  17. return {
  18. "code": 200,
  19. "msg": "成功",
  20. "data": []
  21. }
  22. return {
  23. "code": 200,
  24. "msg": "成功",
  25. "data": [
  26. {
  27. "title": announcement.title,
  28. "content": announcement.content
  29. }
  30. for announcement in announcements
  31. ]
  32. }