diff --git a/app/api/endpoints/message.py b/app/api/endpoints/message.py index acba0e3..f95ac05 100644 --- a/app/api/endpoints/message.py +++ b/app/api/endpoints/message.py @@ -15,7 +15,7 @@ async def create_message( db: Session = Depends(get_db), admin: UserDB = Depends(get_admin_user) # 仅管理员可创建消息 ): - """创建消息""" + """创建消息 (仅管理员)""" db_message = MessageDB(**message.model_dump()) try: @@ -86,4 +86,22 @@ async def get_user_messages( return success_response(data={ "total": total, "items": [MessageInfo.model_validate(m) for m in messages] - }) \ No newline at end of file + }) + +@router.get("/latest-unread", response_model=ResponseModel) +async def get_latest_unread_message( + db: Session = Depends(get_db), + current_user: UserDB = Depends(get_current_user) +): + """获取最新一条未读消息""" + message = db.query(MessageDB).filter( + MessageDB.user_id == current_user.userid, + MessageDB.is_read == False + ).order_by( + MessageDB.create_time.desc() + ).first() + + if not message: + return success_response(data=None) + + return success_response(data=MessageInfo.model_validate(message)) \ No newline at end of file