diff --git a/app/api/endpoints/user.py b/app/api/endpoints/user.py index 0e80daf..6852ba6 100644 --- a/app/api/endpoints/user.py +++ b/app/api/endpoints/user.py @@ -116,8 +116,8 @@ async def login( @router.get("/info", response_model=ResponseModel) async def get_user_info( - current_user: UserDB = Depends(get_current_user), - db: Session = Depends(get_db) + db: Session = Depends(get_db), + current_user: UserDB = Depends(get_current_user) ): """获取用户信息""" # 查询用户未使用的优惠券数量 @@ -126,10 +126,7 @@ async def get_user_info( UserCouponDB.status == CouponStatus.UNUSED ).count() - # 获取用户基本信息 - user_info = UserInfo.model_validate(current_user) - - # 返回用户的默认地址,需要 join 出社区名称 + # 获取用户默认地址 default_address = db.query(AddressDB, CommunityDB.name.label('community_name')).join( CommunityDB, AddressDB.community_id == CommunityDB.id @@ -138,14 +135,29 @@ async def get_user_info( AddressDB.is_default == True ).first() + # 构建返回数据 + user_info = UserInfo.model_validate(current_user) + user_data = user_info.model_dump() + + # 处理默认地址 if default_address: - user_info = AddressInfo.model_validate(default_address) - - return success_response(data={ - **user_info.model_dump(), - "coupon_count": coupon_count, - "default_address": default_address - }) + address_data = { + "id": default_address.AddressDB.id, + "community_id": default_address.AddressDB.community_id, + "community_name": default_address.community_name, + "community_building_id": default_address.AddressDB.community_building_id, + "community_building_name": default_address.AddressDB.community_building_name, + "address_detail": default_address.AddressDB.address_detail, + "name": default_address.AddressDB.name, + "phone": default_address.AddressDB.phone, + "gender": default_address.AddressDB.gender, + "is_default": default_address.AddressDB.is_default + } + user_data['default_address'] = AddressInfo(**address_data) + + user_data['coupon_count'] = coupon_count + + return success_response(data=user_data) @router.post("/phone-login", response_model=ResponseModel) async def phone_login(