fix userinfo bug

This commit is contained in:
aaron 2025-02-13 10:50:04 +08:00
parent 97df73f729
commit cd07bd04ba

View File

@ -116,8 +116,8 @@ async def login(
@router.get("/info", response_model=ResponseModel) @router.get("/info", response_model=ResponseModel)
async def get_user_info( 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 UserCouponDB.status == CouponStatus.UNUSED
).count() ).count()
# 获取用户基本信息 # 获取用户默认地址
user_info = UserInfo.model_validate(current_user)
# 返回用户的默认地址,需要 join 出社区名称
default_address = db.query(AddressDB, CommunityDB.name.label('community_name')).join( default_address = db.query(AddressDB, CommunityDB.name.label('community_name')).join(
CommunityDB, CommunityDB,
AddressDB.community_id == CommunityDB.id AddressDB.community_id == CommunityDB.id
@ -138,14 +135,29 @@ async def get_user_info(
AddressDB.is_default == True AddressDB.is_default == True
).first() ).first()
if default_address: # 构建返回数据
user_info = AddressInfo.model_validate(default_address) user_info = UserInfo.model_validate(current_user)
user_data = user_info.model_dump()
return success_response(data={ # 处理默认地址
**user_info.model_dump(), if default_address:
"coupon_count": coupon_count, address_data = {
"default_address": default_address "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) @router.post("/phone-login", response_model=ResponseModel)
async def phone_login( async def phone_login(