From 91670ae2dc7fa8b7a5115162cd7ed2548c9dd8e7 Mon Sep 17 00:00:00 2001 From: aaron <> Date: Tue, 4 Mar 2025 23:52:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/endpoints/order.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/app/api/endpoints/order.py b/app/api/endpoints/order.py index b93d6d4..71cbc26 100644 --- a/app/api/endpoints/order.py +++ b/app/api/endpoints/order.py @@ -502,6 +502,7 @@ async def get_order_detail( @router.get("/status/count", response_model=ResponseModel) async def deliveryman_get_order_status_count( community_id: int, + time_period_id: Optional[int] = None, db: Session = Depends(get_db), current_user: UserDB = Depends(get_current_user) ): @@ -512,8 +513,13 @@ async def deliveryman_get_order_status_count( ).filter( ShippingOrderDB.address_community_id == community_id, ShippingOrderDB.status == OrderStatus.CREATED - ).count() + ) + if time_period_id: + created_count = created_count.filter( + ShippingOrderDB.time_period_id == time_period_id + ) + created_count = created_count.count() others_status_count = db.query( ShippingOrderDB.status, @@ -524,7 +530,13 @@ async def deliveryman_get_order_status_count( ShippingOrderDB.deliveryman_user_id == current_user.userid ).group_by( ShippingOrderDB.status - ).all() + ) + + if time_period_id: + others_status_count = others_status_count.filter( + ShippingOrderDB.time_period_id == time_period_id + ) + others_status_count = others_status_count.all() result = [{ "status": OrderStatus.CREATED, @@ -544,6 +556,7 @@ async def deliveryman_get_order_status_count( async def deliveryman_get_community_building_order_count( community_id: int, status: str, + time_period_id: Optional[int] = None, db: Session = Depends(get_db), current_user: UserDB = Depends(get_current_user) ): @@ -571,6 +584,12 @@ async def deliveryman_get_community_building_order_count( ShippingOrderDB.status.in_(status.split(",")) ) + # 如果传入了时间周期id,则过滤时间周期 + if time_period_id: + query = query.filter( + ShippingOrderDB.time_period_id == time_period_id + ) + # 如果订单状态不是待接单,则需要过滤快递员 if OrderStatus.CREATED not in status: query = query.filter(