增加pickup_images_count

This commit is contained in:
aaron 2025-02-23 20:15:58 +08:00
parent 509224a687
commit a1dddbdf7b
2 changed files with 28 additions and 3 deletions

View File

@ -52,21 +52,27 @@ def calculate_price(price_request: OrderPriceCalculateRequest,user: UserDB,db: S
OrderPriceResult: 包含价格信息和使用的优惠券/积分信息 OrderPriceResult: 包含价格信息和使用的优惠券/积分信息
""" """
# 计算所有包裹中的取件码总数 # 计算所有包裹中的取件码总数
pickup_code_count = 0
pickup_images_count = 0
package_count = 0 package_count = 0
if price_request.pickup_images: if price_request.pickup_images:
package_count += price_request.package_count pickup_images_count = price_request.pickup_images_count
if price_request.packages: if price_request.packages:
package_count += sum( pickup_code_count = sum(
# 如果package.pickup_codes是空字符串则取0 # 如果package.pickup_codes是空字符串则取0
0 if len(package.pickup_codes.split(',')) == 0 else len(package.pickup_codes.split(',')) 0 if len(package.pickup_codes.split(',')) == 0 else len(package.pickup_codes.split(','))
for package in price_request.packages for package in price_request.packages
if package.pickup_codes if package.pickup_codes
) )
package_count = pickup_code_count + pickup_images_count
result = OrderPriceResult( result = OrderPriceResult(
price_info=OrderPriceInfo( price_info=OrderPriceInfo(
package_count=package_count, package_count=package_count,
pickup_images_count=pickup_images_count,
pickup_code_count=pickup_code_count,
coupon_discount_amount=0, coupon_discount_amount=0,
points_discount_amount=0, points_discount_amount=0,
original_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 original_amount += extra_count * settings.ORDER_EXTRA_PACKAGE_PRICE
result.price_info.package_count = package_count 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.original_amount = original_amount
result.price_info.final_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_community_building_name=address.community_building_name,
address_detail=address.address_detail, address_detail=address.address_detail,
package_count=price_info.package_count, 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, original_amount=original_amount,
coupon_discount_amount=coupon_discount, coupon_discount_amount=coupon_discount,
point_discount_amount=price_info.points_discount_amount, point_discount_amount=price_info.points_discount_amount,
@ -358,6 +368,8 @@ async def get_order_detail(
"userid": order.userid, "userid": order.userid,
"pickup_images": order.optimized_pickup_images, "pickup_images": order.optimized_pickup_images,
"package_count": order.package_count, "package_count": order.package_count,
"pickup_code_count": order.pickup_code_count,
"pickup_images_count": order.pickup_images_count,
"original_amount": order.original_amount, "original_amount": order.original_amount,
"coupon_discount_amount": order.coupon_discount_amount, "coupon_discount_amount": order.coupon_discount_amount,
"coupon_id": order.coupon_id, "coupon_id": order.coupon_id,
@ -557,6 +569,8 @@ async def get_user_orders(
"status": order.status, "status": order.status,
"pickup_images": order.optimized_pickup_images, "pickup_images": order.optimized_pickup_images,
"package_count": order.package_count, "package_count": order.package_count,
"pickup_code_count": order.pickup_code_count,
"pickup_images_count": order.pickup_images_count,
"create_time": order.create_time, "create_time": order.create_time,
"delivery_method": order.delivery_method, "delivery_method": order.delivery_method,
"original_amount": order.original_amount, "original_amount": order.original_amount,
@ -756,6 +770,8 @@ async def get_deliveryman_orders(
"status": order.status, "status": order.status,
"pickup_images": order.optimized_pickup_images, "pickup_images": order.optimized_pickup_images,
"package_count": order.package_count, "package_count": order.package_count,
"pickup_code_count": order.pickup_code_count,
"pickup_images_count": order.pickup_images_count,
"create_time": order.create_time, "create_time": order.create_time,
"delivery_method": order.delivery_method, "delivery_method": order.delivery_method,
"original_amount": order.original_amount, "original_amount": order.original_amount,
@ -1143,6 +1159,8 @@ async def get_admin_orders(
"status": order.status, "status": order.status,
"pickup_images": order.optimized_pickup_images, "pickup_images": order.optimized_pickup_images,
"package_count": order.package_count, "package_count": order.package_count,
"pickup_code_count": order.pickup_code_count,
"pickup_images_count": order.pickup_images_count,
"create_time": order.create_time, "create_time": order.create_time,
"delivery_method": order.delivery_method, "delivery_method": order.delivery_method,
"original_amount": order.original_amount, "original_amount": order.original_amount,

View File

@ -53,6 +53,9 @@ class ShippingOrderDB(Base):
# 取件图片 # 取件图片
pickup_images = Column(String(1000), nullable=True) # 取件图片URL多个URL用逗号分隔 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) delivery_method = Column(Enum(DeliveryMethod), nullable=False)
package_count = Column(Integer, nullable=False) package_count = Column(Integer, nullable=False)
@ -108,8 +111,8 @@ class OrderPackage(BaseModel):
# 先定义 OrderPriceCalculateRequest # 先定义 OrderPriceCalculateRequest
class OrderPriceCalculateRequest(BaseModel): class OrderPriceCalculateRequest(BaseModel):
package_count: int = 0
pickup_images: Optional[str] = None pickup_images: Optional[str] = None
pickup_images_count: int = 0
packages: Optional[List[OrderPackage]] = None packages: Optional[List[OrderPackage]] = None
# 然后再定义 OrderCreate # 然后再定义 OrderCreate
@ -135,7 +138,9 @@ class OrderInfo(BaseModel):
address_customer_gender: Gender address_customer_gender: Gender
pickup_images: Optional[str] = None pickup_images: Optional[str] = None
pickup_images_count: int
package_count: int package_count: int
pickup_code_count: int
original_amount: float original_amount: float
coupon_discount_amount: float coupon_discount_amount: float
point_discount_amount: float = 0 point_discount_amount: float = 0
@ -179,6 +184,8 @@ class OrderPackageInfo(BaseModel):
class OrderPriceInfo(BaseModel): class OrderPriceInfo(BaseModel):
package_count: int = 0 package_count: int = 0
pickup_images_count: int = 0
pickup_code_count: int = 0
original_amount: float = 0 original_amount: float = 0
coupon_discount_amount: float = 0 coupon_discount_amount: float = 0
points_discount_amount: float = 0 points_discount_amount: float = 0