From a1dddbdf7b0e87740d423eb070dced711f78cdd5 Mon Sep 17 00:00:00 2001 From: aaron <> Date: Sun, 23 Feb 2025 20:15:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0pickup=5Fimages=5Fcount?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/endpoints/order.py | 22 ++++++++++++++++++++-- app/models/order.py | 9 ++++++++- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/app/api/endpoints/order.py b/app/api/endpoints/order.py index 95945c3..a43d82e 100644 --- a/app/api/endpoints/order.py +++ b/app/api/endpoints/order.py @@ -52,21 +52,27 @@ def calculate_price(price_request: OrderPriceCalculateRequest,user: UserDB,db: S OrderPriceResult: 包含价格信息和使用的优惠券/积分信息 """ # 计算所有包裹中的取件码总数 + pickup_code_count = 0 + pickup_images_count = 0 package_count = 0 if price_request.pickup_images: - package_count += price_request.package_count + pickup_images_count = price_request.pickup_images_count if price_request.packages: - package_count += sum( + pickup_code_count = sum( # 如果package.pickup_codes是空字符串,则取0 0 if len(package.pickup_codes.split(',')) == 0 else len(package.pickup_codes.split(',')) for package in price_request.packages if package.pickup_codes ) + package_count = pickup_code_count + pickup_images_count + result = OrderPriceResult( price_info=OrderPriceInfo( package_count=package_count, + pickup_images_count=pickup_images_count, + pickup_code_count=pickup_code_count, coupon_discount_amount=0, points_discount_amount=0, original_amount=0, @@ -83,6 +89,8 @@ def calculate_price(price_request: OrderPriceCalculateRequest,user: UserDB,db: S original_amount += extra_count * settings.ORDER_EXTRA_PACKAGE_PRICE result.price_info.package_count = package_count + result.price_info.pickup_images_count = pickup_images_count + result.price_info.pickup_code_count = pickup_code_count result.price_info.original_amount = original_amount result.price_info.final_amount = original_amount @@ -197,6 +205,8 @@ async def create_order( address_community_building_name=address.community_building_name, address_detail=address.address_detail, package_count=price_info.package_count, + pickup_images_count=price_info.pickup_images_count, + pickup_code_count=price_info.pickup_code_count, original_amount=original_amount, coupon_discount_amount=coupon_discount, point_discount_amount=price_info.points_discount_amount, @@ -358,6 +368,8 @@ async def get_order_detail( "userid": order.userid, "pickup_images": order.optimized_pickup_images, "package_count": order.package_count, + "pickup_code_count": order.pickup_code_count, + "pickup_images_count": order.pickup_images_count, "original_amount": order.original_amount, "coupon_discount_amount": order.coupon_discount_amount, "coupon_id": order.coupon_id, @@ -557,6 +569,8 @@ async def get_user_orders( "status": order.status, "pickup_images": order.optimized_pickup_images, "package_count": order.package_count, + "pickup_code_count": order.pickup_code_count, + "pickup_images_count": order.pickup_images_count, "create_time": order.create_time, "delivery_method": order.delivery_method, "original_amount": order.original_amount, @@ -756,6 +770,8 @@ async def get_deliveryman_orders( "status": order.status, "pickup_images": order.optimized_pickup_images, "package_count": order.package_count, + "pickup_code_count": order.pickup_code_count, + "pickup_images_count": order.pickup_images_count, "create_time": order.create_time, "delivery_method": order.delivery_method, "original_amount": order.original_amount, @@ -1143,6 +1159,8 @@ async def get_admin_orders( "status": order.status, "pickup_images": order.optimized_pickup_images, "package_count": order.package_count, + "pickup_code_count": order.pickup_code_count, + "pickup_images_count": order.pickup_images_count, "create_time": order.create_time, "delivery_method": order.delivery_method, "original_amount": order.original_amount, diff --git a/app/models/order.py b/app/models/order.py index 4993f29..0fe8453 100644 --- a/app/models/order.py +++ b/app/models/order.py @@ -53,6 +53,9 @@ class ShippingOrderDB(Base): # 取件图片 pickup_images = Column(String(1000), nullable=True) # 取件图片URL,多个URL用逗号分隔 + pickup_images_count = Column(Integer, nullable=False, default=0) # 取件图片数量 + + pickup_code_count = Column(Integer, nullable=False, default=0) # 取件码数量 delivery_method = Column(Enum(DeliveryMethod), nullable=False) package_count = Column(Integer, nullable=False) @@ -108,8 +111,8 @@ class OrderPackage(BaseModel): # 先定义 OrderPriceCalculateRequest class OrderPriceCalculateRequest(BaseModel): - package_count: int = 0 pickup_images: Optional[str] = None + pickup_images_count: int = 0 packages: Optional[List[OrderPackage]] = None # 然后再定义 OrderCreate @@ -135,7 +138,9 @@ class OrderInfo(BaseModel): address_customer_gender: Gender pickup_images: Optional[str] = None + pickup_images_count: int package_count: int + pickup_code_count: int original_amount: float coupon_discount_amount: float point_discount_amount: float = 0 @@ -179,6 +184,8 @@ class OrderPackageInfo(BaseModel): class OrderPriceInfo(BaseModel): package_count: int = 0 + pickup_images_count: int = 0 + pickup_code_count: int = 0 original_amount: float = 0 coupon_discount_amount: float = 0 points_discount_amount: float = 0