From e3f86632b606ebdb2fcb154be3356fde91c0759b Mon Sep 17 00:00:00 2001 From: aaron <> Date: Thu, 16 Jan 2025 17:17:06 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E8=BF=94=E5=9B=9E=20=E6=9C=8D=E5=8A=A1=E5=88=B8?= =?UTF-8?q?=E6=95=B0=E9=87=8F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/endpoints/user.py | 21 +++++++++++++++++---- app/models/user.py | 1 + 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/api/endpoints/user.py b/app/api/endpoints/user.py index 3d0f3cf..6fc853f 100644 --- a/app/api/endpoints/user.py +++ b/app/api/endpoints/user.py @@ -1,7 +1,7 @@ from fastapi import APIRouter, HTTPException, Depends, Response, Body from sqlalchemy.orm import Session -from app.models.user import UserLogin, UserInfo, ResetPasswordRequest,PhoneLoginRequest,VerifyCodeRequest, UserDB, UserUpdate, UserRole, UserPasswordLogin, ReferralUserInfo, generate_user_code -from app.models.coupon import CouponDB, UserCouponDB +from app.models.user import UserLogin ,UserInfo, ResetPasswordRequest,PhoneLoginRequest,VerifyCodeRequest, UserDB, UserUpdate, UserRole, UserPasswordLogin, ReferralUserInfo, generate_user_code +from app.models.coupon import CouponDB, UserCouponDB, CouponStatus from app.api.deps import get_current_user, get_admin_user from app.models.database import get_db import random @@ -124,10 +124,23 @@ async def login( @router.get("/info", response_model=ResponseModel) async def get_user_info( - current_user: UserDB = Depends(get_current_user) + current_user: UserDB = Depends(get_current_user), + db: Session = Depends(get_db) ): """获取用户信息""" - return success_response(data=UserInfo.model_validate(current_user)) + # 查询用户未使用的优惠券数量 + coupon_count = db.query(UserCouponDB).filter( + UserCouponDB.user_id == current_user.userid, + UserCouponDB.status == CouponStatus.UNUSED + ).count() + + # 获取用户基本信息 + user_info = UserInfo.model_validate(current_user) + + return success_response(data={ + **user_info.model_dump(), + "coupon_count": coupon_count + }) @router.post("/phone-login", response_model=ResponseModel) async def phone_login( diff --git a/app/models/user.py b/app/models/user.py index f35e235..adc9d98 100644 --- a/app/models/user.py +++ b/app/models/user.py @@ -54,6 +54,7 @@ class UserInfo(BaseModel): points: int = 0 roles: List[UserRole] create_time: datetime + coupon_count: Optional[int] = 0 # 添加优惠券数量字段 class Config: from_attributes = True