diff --git a/app/api/deps.py b/app/api/deps.py index d0a17fa..47aa384 100644 --- a/app/api/deps.py +++ b/app/api/deps.py @@ -4,6 +4,7 @@ from sqlalchemy.orm import Session from app.models.database import get_db from app.models.user import UserDB, UserRole from app.core.security import verify_token +from app.core.redis_client import redis_client async def get_current_user( authorization: Optional[str] = Header(None), @@ -25,9 +26,19 @@ async def get_current_user( if not sub: raise HTTPException(status_code=401, detail="Token已过期或无效") - user = db.query(UserDB).filter(UserDB.phone == sub).first() + # 读取 redis 缓存数据 + redis_key = f"user:{sub}" + user_data = redis_client.get_client().get(redis_key) + if user_data: + user = UserDB.model_validate_json(user_data) + else: + user = db.query(UserDB).filter(UserDB.phone == sub).first() + if user: + redis_client.get_client().set(redis_key, user.model_dump_json()) + if not user: raise HTTPException(status_code=401, detail="用户未登录") + return user async def get_admin_user( diff --git a/app/api/endpoints/order_additional_fee.py b/app/api/endpoints/order_additional_fee.py index a41b312..11c8214 100644 --- a/app/api/endpoints/order_additional_fee.py +++ b/app/api/endpoints/order_additional_fee.py @@ -147,7 +147,7 @@ async def update_additional_fee( request_id: int, fee_request: OrderAdditionalFeeUpdate, db: Session = Depends(get_db), - current_user: UserDB = Depends(get_current_user) + current_user: UserDB = Depends(get_deliveryman_user) ): """更新加价请求""" # 获取加价请求 @@ -159,7 +159,7 @@ async def update_additional_fee( return error_response(code=404, message="加价请求不存在") # 检查是否是订单用户 - if fee_request.order_user_id != current_user.userid: + if fee_request.deliveryman_id != current_user.userid: return error_response(code=403, message="您无权处理该加价请求") # 更新加价请求