From 397b848bb9d9db298f8c18d11ec5d44d21b16c82 Mon Sep 17 00:00:00 2001 From: aaron <> Date: Fri, 28 Mar 2025 11:11:14 +0800 Subject: [PATCH] update --- app/api/endpoints/dashboard.py | 38 +++++++++++++++++---------------- jobs.sqlite | Bin 24576 -> 24576 bytes 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/app/api/endpoints/dashboard.py b/app/api/endpoints/dashboard.py index 78736b5..500907e 100644 --- a/app/api/endpoints/dashboard.py +++ b/app/api/endpoints/dashboard.py @@ -39,39 +39,40 @@ async def get_dashboard_info( yesterday_user_count = len([user for user in users if user.create_time.date() == datetime.now().date() - timedelta(days=1)]) # 查询已下单用户数 + all_orders = db.query(ShippingOrderDB).all() + completed_orders = [order for order in all_orders if order.status == OrderStatus.COMPLETED or order.status == OrderStatus.UNPAID] + + has_order_user_count = len(set([order.userid for order in all_orders if order.status != OrderStatus.CANCELLED])) + has_order_completed_user_count = len(set([order.userid for order in completed_orders if order.status == OrderStatus.COMPLETED or order.status == OrderStatus.UNPAID])) + has_paid_user_count = len(set([order.userid for order in completed_orders if order.status == OrderStatus.COMPLETED and order.final_amount > 0])) - orders = db.query(ShippingOrderDB).filter(ShippingOrderDB.status != OrderStatus.CANCELLED).all() - has_order_user_count = len(set([order.userid for order in orders])) - has_order_completed_user_count = len(set([order.userid for order in orders if order.status == OrderStatus.COMPLETED or order.status == OrderStatus.UNPAID])) - has_paid_user_count = len(set([order.userid for order in orders if order.status == OrderStatus.COMPLETED and order.final_amount > 0])) - - order_count = len(orders) + order_count = len(completed_orders) # 今日新增配送订单数 - today_order_count = len([order for order in orders if order.create_time.date() == datetime.now().date()]) + today_order_count = len([order for order in completed_orders if order.completed_time.date() == datetime.now().date()]) # 昨日新增配送订单数 - yesterday_order_count = len([order for order in orders if order.create_time.date() == datetime.now().date() - timedelta(days=1)]) + yesterday_order_count = len([order for order in completed_orders if order.completed_time.date() == datetime.now().date() - timedelta(days=1)]) - order_completed_count = len([order for order in orders if order.status == OrderStatus.COMPLETED or order.status == OrderStatus.UNPAID]) + order_completed_count = len(completed_orders) #需要支付的订单数量 - need_pay_order_count = len([order for order in orders if order.final_amount > 0]) - order_unpaid_count = len([order for order in orders if order.status == OrderStatus.UNPAID]) - order_pay_count = len([order for order in orders if order.status == OrderStatus.COMPLETED and order.final_amount > 0]) + need_pay_order_count = len([order for order in completed_orders if order.final_amount > 0]) + order_unpaid_count = len([order for order in completed_orders if order.status == OrderStatus.UNPAID and order.final_amount > 0]) + order_pay_count = len([order for order in completed_orders if order.status == OrderStatus.COMPLETED and order.final_amount > 0]) pay_rate = order_unpaid_count / need_pay_order_count if need_pay_order_count > 0 else 0 # 已支付的订单数量 - order_amount = sum([order.original_amount_with_additional_fee for order in orders if order.status != OrderStatus.CANCELLED]) - completed_order_amount = sum([order.original_amount_with_additional_fee for order in orders if order.status == OrderStatus.COMPLETED]) - pay_amount = sum([order.final_amount for order in orders if order.status == OrderStatus.COMPLETED and order.final_amount > 0]) - unpaid_amount = sum([order.original_amount_with_additional_fee for order in orders if order.status == OrderStatus.UNPAID]) + order_amount = sum([order.original_amount_with_additional_fee for order in completed_orders]) + completed_order_amount = sum([order.original_amount_with_additional_fee for order in completed_orders if order.status == OrderStatus.COMPLETED]) + pay_amount = sum([order.final_amount for order in completed_orders if order.status == OrderStatus.COMPLETED and order.final_amount > 0]) + unpaid_amount = sum([order.original_amount_with_additional_fee for order in completed_orders if order.status == OrderStatus.UNPAID]) # 今日订单金额 - today_order_amount = sum([order.original_amount_with_additional_fee for order in orders if order.create_time.date() == datetime.now().date()]) + today_order_amount = sum([order.original_amount_with_additional_fee for order in completed_orders if order.completed_time.date() == datetime.now().date()]) # 昨日订单金额 - yesterday_order_amount = sum([order.original_amount_with_additional_fee for order in orders if order.create_time.date() == datetime.now().date() - timedelta(days=1)]) + yesterday_order_amount = sum([order.original_amount_with_additional_fee for order in completed_orders if order.completed_time.date() == datetime.now().date() - timedelta(days=1)]) return success_response(data={ "total_community_count": total_community_count, @@ -80,6 +81,7 @@ async def get_dashboard_info( "has_order_completed_user_count": has_order_completed_user_count, "has_paid_user_count": has_paid_user_count, "order_count": order_count, + "need_pay_order_count": need_pay_order_count, "order_completed_count": order_completed_count, "order_pay_count": order_pay_count, "order_unpaid_count": order_unpaid_count, diff --git a/jobs.sqlite b/jobs.sqlite index 6b1a77f8413a89e5e58d7f7bc681b50be1325ba6..92495cb92b7fcdf58cbdb16d945e305bd6bf9e09 100644 GIT binary patch delta 19 bcmZoTz}Rqrae_4C%!xA2j59YTEQkjHNnZzI delta 19 acmZoTz}Rqrae_2s=R_H2#?Fli3*rGtZwEpE