From 5298bde6a1fa3aa04e33a668613948451e5b4da1 Mon Sep 17 00:00:00 2001 From: morteza-mortezai Date: Thu, 6 Nov 2025 19:06:50 +0330 Subject: [PATCH] fix: user order count --- src/modules/order/order.repository.ts | 39 ++++++++------------------- 1 file changed, 11 insertions(+), 28 deletions(-) diff --git a/src/modules/order/order.repository.ts b/src/modules/order/order.repository.ts index 3b7dcd5..c73d893 100644 --- a/src/modules/order/order.repository.ts +++ b/src/modules/order/order.repository.ts @@ -31,56 +31,37 @@ class OrderRepository extends BaseRepository { { $unwind: "$orderItems" }, { $group: { - _id: { - orderId: "$_id", - orderStatus: "$orderStatus", - itemStatus: "$orderItems.status", - }, + _id: "$orderItems.status", + count: { $sum: 1 }, }, }, { $group: { _id: null, processing: { - $sum: { - $cond: [ - { - $or: [{ $eq: ["$_id.itemStatus", OrderItemsStatus.Processing] }], - }, - 1, - 0, - ], - }, + $sum: { $cond: [{ $eq: ["$_id", OrderItemsStatus.Processing] }, "$count", 0] }, }, delivered: { - $sum: { - $cond: [{ $eq: ["$_id.itemStatus", OrderItemsStatus.Delivered] }, 1, 0], - }, + $sum: { $cond: [{ $eq: ["$_id", OrderItemsStatus.Delivered] }, "$count", 0] }, }, cancelled: { $sum: { $cond: [ { - $in: [ - "$_id.itemStatus", - [OrderItemsStatus.cancelled_system, OrderItemsStatus.cancelled_user, OrderItemsStatus.cancelled_shop], - ], + $in: ["$_id", [OrderItemsStatus.cancelled_system, OrderItemsStatus.cancelled_user, OrderItemsStatus.cancelled_shop]], }, - 1, + "$count", 0, ], }, }, returned: { - $sum: { - $cond: [{ $eq: ["$_id.itemStatus", OrderItemsStatus.Returned] }, 1, 0], - }, + $sum: { $cond: [{ $eq: ["$_id", OrderItemsStatus.Returned] }, "$count", 0] }, }, shipped: { - $sum: { - $cond: [{ $eq: ["$_id.itemStatus", OrderItemsStatus.Shipped] }, 1, 0], - }, + $sum: { $cond: [{ $eq: ["$_id", OrderItemsStatus.Shipped] }, "$count", 0] }, }, + all: { $sum: "$count" }, }, }, { @@ -91,6 +72,7 @@ class OrderRepository extends BaseRepository { cancelled: 1, returned: 1, shipped: 1, + all: 1, }, }, ]; @@ -103,6 +85,7 @@ class OrderRepository extends BaseRepository { cancelled: 0, returned: 0, shipped: 0, + all: 0, } ); }