This commit is contained in:
aaron 2025-04-13 23:03:39 +08:00
parent 4d79da98d4
commit d56793afe3

View File

@ -41,6 +41,7 @@ async def get_dashboard_info(
# 查询已下单用户数
all_orders = db.query(ShippingOrderDB).all()
completed_orders = [order for order in all_orders if order.status == OrderStatus.COMPLETED]
unpaid_orders = [order for order in all_orders if order.status == OrderStatus.UNPAID]
#获取订单数超过 2 个的用户数量
repeat_user_count = 0
@ -58,7 +59,7 @@ async def get_dashboard_info(
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]))
has_paid_user_count = len(set([order.userid for order in completed_orders if order.status == OrderStatus.COMPLETED and order.final_amount > 0]))
has_unpaid_user_count = len(set([order.userid for order in unpaid_orders]))
order_count = len(completed_orders)
# 今日新增配送订单数
@ -71,7 +72,7 @@ async def get_dashboard_info(
#需要支付的订单数量
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_unpaid_count = len(unpaid_orders)
order_pay_count = len([order for order in completed_orders if order.status == OrderStatus.COMPLETED and order.final_amount > 0])
pay_rate = order_pay_count / need_pay_order_count if need_pay_order_count > 0 else 0
@ -79,7 +80,7 @@ async def get_dashboard_info(
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])
unpaid_amount = sum([order.original_amount_with_additional_fee for order in unpaid_orders])
# 今日订单金额
today_order_amount = sum([order.original_amount_with_additional_fee for order in completed_orders if order.completed_time.date() == datetime.now().date()])
@ -94,6 +95,7 @@ async def get_dashboard_info(
"has_order_user_count": has_order_user_count,
"has_order_completed_user_count": has_order_completed_user_count,
"has_paid_user_count": has_paid_user_count,
"has_unpaid_user_count": has_unpaid_user_count,
"order_count": order_count,
"need_pay_order_count": need_pay_order_count,
"order_completed_count": order_completed_count,