diff --git a/app/api/endpoints/dashboard.py b/app/api/endpoints/dashboard.py index 36aab82..53cf60b 100644 --- a/app/api/endpoints/dashboard.py +++ b/app/api/endpoints/dashboard.py @@ -42,9 +42,19 @@ async def get_dashboard_info( all_orders = db.query(ShippingOrderDB).all() completed_orders = [order for order in all_orders if order.status == OrderStatus.COMPLETED] - #复购用户数(用户完成订单数超过 2 单) - repeat_user_count = len(set([order.userid for order in completed_orders if order.userid in [order.userid for order in all_orders if order.status == OrderStatus.COMPLETED]])) + #获取订单数超过 2 个的用户数量 + repeat_user_count = 0 + user_order_count = {} + for order in completed_orders: + if order.userid in user_order_count: + user_order_count[order.userid] += 1 + else: + user_order_count[order.userid] = 1 + for user, count in user_order_count.items(): + if count > 2: + repeat_user_count += 1 + 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])) diff --git a/jobs.sqlite b/jobs.sqlite index fc0d66f..1e1cb7b 100644 Binary files a/jobs.sqlite and b/jobs.sqlite differ