增加新人订单标识

This commit is contained in:
aaron 2025-02-21 21:23:57 +08:00
parent 73d39b7d25
commit b53f424461
2 changed files with 17 additions and 6 deletions

View File

@ -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": {

View File

@ -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