Files
life-echo/api/routers/feedback.py
iammm0 3690417fdc feat: 新增后端API路由模块
- 新增faqs.py常见问题路由
- 新增feedback.py反馈路由
- 新增orders.py订单路由
- 新增plans.py套餐路由
- 新增quota.py配额路由
- 新增user.py用户路由
- 更新main.py注册新路由
- 更新requirements.txt添加依赖
2026-01-23 14:02:36 +08:00

77 lines
2.2 KiB
Python

"""
反馈相关 API 路由
"""
import logging
import uuid
from datetime import datetime, timezone
from typing import Optional
from fastapi import APIRouter, Depends, HTTPException, status
from pydantic import BaseModel, Field
from sqlalchemy.ext.asyncio import AsyncSession
from database import get_async_db
from middleware.auth import get_current_user
from database.models import User
logger = logging.getLogger(__name__)
router = APIRouter(prefix="/api/feedback", tags=["feedback"])
class SubmitFeedbackRequest(BaseModel):
"""提交反馈请求"""
content: str = Field(..., min_length=1, max_length=2000, description="反馈内容")
contact: Optional[str] = Field(None, max_length=100, description="联系方式(可选)")
class FeedbackResponse(BaseModel):
"""反馈响应"""
id: str
message: str
@router.post("", response_model=FeedbackResponse, status_code=status.HTTP_201_CREATED)
async def submit_feedback(
request: SubmitFeedbackRequest,
current_user: User = Depends(get_current_user),
db: AsyncSession = Depends(get_async_db)
):
"""
提交用户反馈
用户可以通过此接口提交反馈意见或联系客服
"""
try:
feedback_id = str(uuid.uuid4())
# 记录反馈(这里可以保存到数据库,目前先记录日志)
logger.info(
f"用户反馈 - ID: {feedback_id}, "
f"用户ID: {current_user.id}, "
f"内容: {request.content[:100]}..., "
f"联系方式: {request.contact or '未提供'}"
)
# TODO: 保存反馈到数据库
# feedback = Feedback(
# id=feedback_id,
# user_id=current_user.id,
# content=request.content,
# contact=request.contact,
# created_at=datetime.now(timezone.utc)
# )
# db.add(feedback)
# await db.commit()
return FeedbackResponse(
id=feedback_id,
message="反馈已提交,我们会尽快处理"
)
except Exception as e:
logger.error(f"提交反馈失败: {e}")
raise HTTPException(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
detail="提交反馈失败,请稍后重试"
)