table_game/backend/app/routers/user_messages.py
2025-03-10 08:35:19 +08:00

52 lines
1.6 KiB
Python

from fastapi import APIRouter, HTTPException
from ..schemas.message_info import MessageCreate, MessageResponse
from ..db import get_connection
from ..utils.jwt_handler import verify_token
router = APIRouter()
@router.post("/messages")
def create_message(request: MessageCreate):
"""创建用户留言"""
connection = get_connection()
cursor = connection.cursor(dictionary=True)
try:
payload = verify_token(request.token)
cursor.execute("SELECT user_id, wx_openid, points FROM users WHERE phone_number = %s", (payload["sub"],))
user = cursor.fetchone()
if not user:
raise HTTPException(status_code=404, detail="用户不存在")
user_id = user['user_id']
# 插入留言
cursor.execute(
"""INSERT INTO player_messages
(user_id, message_content)
VALUES (%s, %s)""",
(user_id, request.message)
)
connection.commit()
return {"message": "留言提交成功"}
finally:
cursor.close()
connection.close()
@router.get("/messages", response_model=list[MessageResponse])
def get_messages():
"""获取最新10条留言"""
connection = get_connection()
cursor = connection.cursor(dictionary=True)
try:
cursor.execute("""
SELECT m.message_id, u.username, m.message_content, m.created_at
FROM player_messages m
JOIN users u ON m.user_id = u.user_id
ORDER BY m.created_at DESC
LIMIT 10
""")
return cursor.fetchall()
finally:
cursor.close()
connection.close()