更新地址接口
This commit is contained in:
parent
a9a381fedd
commit
c7f76ed1e6
@ -1,8 +1,9 @@
|
|||||||
from fastapi import APIRouter, Depends
|
from fastapi import APIRouter, Depends
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
from sqlalchemy import and_
|
from sqlalchemy import and_
|
||||||
from typing import List
|
from typing import List, Optional
|
||||||
from app.models.address import AddressDB, AddressCreate, AddressUpdate, AddressInfo
|
from app.models.address import AddressDB, AddressCreate, AddressUpdate, AddressInfo
|
||||||
|
from app.models.community import CommunityDB
|
||||||
from app.models.database import get_db
|
from app.models.database import get_db
|
||||||
from app.api.deps import get_current_user
|
from app.api.deps import get_current_user
|
||||||
from app.models.user import UserDB
|
from app.models.user import UserDB
|
||||||
@ -36,14 +37,30 @@ async def create_address(
|
|||||||
|
|
||||||
@router.get("/", response_model=ResponseModel)
|
@router.get("/", response_model=ResponseModel)
|
||||||
async def get_addresses(
|
async def get_addresses(
|
||||||
|
community_id: Optional[int] = None,
|
||||||
db: Session = Depends(get_db),
|
db: Session = Depends(get_db),
|
||||||
current_user: UserDB = Depends(get_current_user)
|
current_user: UserDB = Depends(get_current_user)
|
||||||
):
|
):
|
||||||
"""获取用户的所有配送地址"""
|
"""获取用户的所有配送地址"""
|
||||||
addresses = db.query(AddressDB).filter(
|
addresses = db.query(
|
||||||
|
AddressDB,
|
||||||
|
CommunityDB.name.label('community_name')
|
||||||
|
).join(
|
||||||
|
CommunityDB,
|
||||||
|
AddressDB.community_id == CommunityDB.id
|
||||||
|
).filter(
|
||||||
AddressDB.user_id == current_user.userid
|
AddressDB.user_id == current_user.userid
|
||||||
).all()
|
)
|
||||||
return success_response(data=[AddressInfo.model_validate(a) for a in addresses])
|
|
||||||
|
if community_id is not None:
|
||||||
|
addresses = addresses.filter(AddressDB.community_id == community_id)
|
||||||
|
|
||||||
|
addresses = addresses.all()
|
||||||
|
|
||||||
|
return success_response(data=[{
|
||||||
|
**AddressInfo.model_validate(a[0]).model_dump(),
|
||||||
|
"community_name": a[1]
|
||||||
|
} for a in addresses])
|
||||||
|
|
||||||
@router.put("/{address_id}", response_model=ResponseModel)
|
@router.put("/{address_id}", response_model=ResponseModel)
|
||||||
async def update_address(
|
async def update_address(
|
||||||
|
|||||||
@ -46,6 +46,7 @@ class AddressUpdate(BaseModel):
|
|||||||
class AddressInfo(BaseModel):
|
class AddressInfo(BaseModel):
|
||||||
id: int
|
id: int
|
||||||
community_id: int
|
community_id: int
|
||||||
|
community_name: Optional[str] = None
|
||||||
community_building_id: Optional[int]
|
community_building_id: Optional[int]
|
||||||
community_building_name: Optional[str]
|
community_building_name: Optional[str]
|
||||||
address_detail: str
|
address_detail: str
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user