diff --git a/app/api/endpoints/dashboard.py b/app/api/endpoints/dashboard.py index 932868d..e696b7c 100644 --- a/app/api/endpoints/dashboard.py +++ b/app/api/endpoints/dashboard.py @@ -29,6 +29,13 @@ async def get_dashboard_info( # 总用户数 total_user_count = db.query(UserDB).count() + # 今日新增用户数 + users = db.query(UserDB).all() + today_user_count = len([user for user in users if user.create_time.date() == datetime.now().date()]) + + # 昨日新增用户数 + yesterday_user_count = len([user for user in users if user.create_time.date() == datetime.now().date() - timedelta(days=1)]) + # 查询已下单用户数 orders = db.query(ShippingOrderDB).filter(ShippingOrderDB.status != OrderStatus.CANCELLED).all() has_order_user_count = len(set([order.userid for order in orders])) @@ -36,6 +43,13 @@ async def get_dashboard_info( 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) + + # 今日新增配送订单数 + today_order_count = len([order for order in orders if order.create_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)]) + order_completed_count = len([order for order in orders if order.status == OrderStatus.COMPLETED or order.status == OrderStatus.UNPAID]) #需要支付的订单数量 @@ -50,6 +64,12 @@ async def get_dashboard_info( 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]) + # 今日订单金额 + today_order_amount = sum([order.original_amount_with_additional_fee for order in orders if order.create_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)]) + return success_response(data={ "total_community_count": total_community_count, "total_user_count": total_user_count, @@ -64,7 +84,13 @@ async def get_dashboard_info( "order_amount": order_amount, "pay_amount": pay_amount, "unpaid_amount": unpaid_amount, - "completed_order_amount": completed_order_amount + "completed_order_amount": completed_order_amount, + "today_user_count": today_user_count, + "yesterday_user_count": yesterday_user_count, + "today_order_count": today_order_count, + "yesterday_order_count": yesterday_order_count, + "today_order_amount": today_order_amount, + "yesterday_order_amount": yesterday_order_amount }) @router.get("/deliveryman") diff --git a/jobs.sqlite b/jobs.sqlite index 5ec58a8..f6b1f23 100644 Binary files a/jobs.sqlite and b/jobs.sqlite differ