From b53f4244617e74dc9750af29016d314bbb527dfc Mon Sep 17 00:00:00 2001 From: aaron <> Date: Fri, 21 Feb 2025 21:23:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=96=B0=E4=BA=BA=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/endpoints/order.py | 11 ++++++++++- app/models/order.py | 12 +++++++----- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/app/api/endpoints/order.py b/app/api/endpoints/order.py index f3d0291..575de47 100644 --- a/app/api/endpoints/order.py +++ b/app/api/endpoints/order.py @@ -177,6 +177,11 @@ async def create_order( AddressDB.id == order.addressid ).first() + # 是否为新人订单 + is_first_order = db.query(ShippingOrderDB).filter( + ShippingOrderDB.userid == current_user.userid + ).count() == 0 + # 创建订单 db_order = ShippingOrderDB( orderid=orderid, @@ -196,7 +201,8 @@ async def create_order( coupon_id=coupon_id, final_amount=price_info.final_amount, status=OrderStatus.CREATED, - delivery_method=order.delivery_method + delivery_method=order.delivery_method, + is_first_order=is_first_order ) if order.price_request.pickup_images: db_order.pickup_images = order.price_request.pickup_images @@ -358,6 +364,7 @@ async def get_order_detail( "status": order.status, "complete_images": order.optimized_complete_images, "packages": package_list, + "is_first_order": order.is_first_order, "create_time": order.create_time, "complete_time": order.completed_time, @@ -554,6 +561,7 @@ async def get_user_orders( "coupon_discount_amount": order.coupon_discount_amount, "point_discount_amount": order.point_discount_amount, "final_amount": order.final_amount, + "is_first_order": order.is_first_order, "packages": package_list, "sub_orders": [PointProductOrderInfo.model_validate(sub_order) for sub_order in sub_orders], "address": { @@ -743,6 +751,7 @@ async def get_deliveryman_orders( "coupon_discount_amount": order.coupon_discount_amount, "point_discount_amount": order.point_discount_amount, "final_amount": order.final_amount, + "is_first_order": order.is_first_order, "packages": package_list, "sub_orders": [PointProductOrderInfo.model_validate(sub_order) for sub_order in sub_orders], "address": { diff --git a/app/models/order.py b/app/models/order.py index 6788ff9..4993f29 100644 --- a/app/models/order.py +++ b/app/models/order.py @@ -68,6 +68,7 @@ class ShippingOrderDB(Base): completed_time = Column(DateTime(timezone=True), nullable=True) # 完成时间 complete_images = Column(String(1000), nullable=True) # 完成订单的图片URL,多个URL用逗号分隔 create_time = Column(DateTime(timezone=True), server_default=func.now()) + is_first_order = Column(Boolean, default=False) # 新人订单 # 配送员信息 deliveryman_user_id = Column(Integer, ForeignKey("users.userid"), nullable=True) @@ -154,12 +155,13 @@ class OrderInfo(BaseModel): received_time: Optional[datetime] = None pickup_time: Optional[datetime] = None completed_time: Optional[datetime] = None + is_first_order: bool - def __init__(self, **data): - super().__init__(**data) - # 将逗号分隔的图片URL字符串转换为列表 - if self.complete_images and isinstance(self.complete_images, str): - self.complete_images = self.complete_images.split(",") + # def __init__(self, **data): + # super().__init__(**data) + # # 将逗号分隔的图片URL字符串转换为列表 + # if self.complete_images and isinstance(self.complete_images, str): + # self.complete_images = self.complete_images.split(",") class Config: from_attributes = True