This commit is contained in:
aaron 2025-03-25 14:26:07 +08:00
parent 05f44c6dfe
commit 4f074561d0
2 changed files with 17 additions and 3 deletions

View File

@ -16,6 +16,9 @@ from sqlalchemy import func
from sqlalchemy.orm import joinedload
from app.models.merchant_product import OperationType, DeliveryType, DeliveryTimeType
from app.models.merchant import MerchantInfo
from app.models.address import AddressDB, AddressInfo
from app.api.deps import get_current_user
router = APIRouter()
@router.post("", response_model=ResponseModel)
@ -120,25 +123,36 @@ async def list_merchant_products(
@router.get("/{product_id}", response_model=ResponseModel)
async def get_product(
product_id: int,
db: Session = Depends(get_db)
db: Session = Depends(get_db),
current_user: UserDB = Depends(get_current_user)
):
"""获取产品详情"""
product = db.query(MerchantProductDB).filter(
MerchantProductDB.id == product_id
).first()
if not product:
return error_response(code=404, message="产品不存在")
product_info = MerchantProductInfo.model_validate(product)
merchant = MerchantInfo.model_validate(product.merchant)
result = {
**product_info.model_dump(),
"gift_points" : int(float(product.gift_points_rate) / 10 * float(product.sale_price)),
"merchant": merchant.model_dump()
}
if not product:
return error_response(code=404, message="产品不存在")
# 获取默认地址
default_address = db.query(AddressDB).filter(
AddressDB.user_id == current_user.userid,
AddressDB.is_default == True
).first()
if default_address:
result["default_address"] = AddressInfo.model_validate(default_address)
return success_response(data=result)

Binary file not shown.