Merge pull request #57 from Danakcorp/mrtz

fix: user order count
This commit is contained in:
morteza-mortezai
2025-11-06 19:08:23 +03:30
committed by GitHub
+11 -28
View File
@@ -31,56 +31,37 @@ class OrderRepository extends BaseRepository<IOrder> {
{ $unwind: "$orderItems" }, { $unwind: "$orderItems" },
{ {
$group: { $group: {
_id: { _id: "$orderItems.status",
orderId: "$_id", count: { $sum: 1 },
orderStatus: "$orderStatus",
itemStatus: "$orderItems.status",
},
}, },
}, },
{ {
$group: { $group: {
_id: null, _id: null,
processing: { processing: {
$sum: { $sum: { $cond: [{ $eq: ["$_id", OrderItemsStatus.Processing] }, "$count", 0] },
$cond: [
{
$or: [{ $eq: ["$_id.itemStatus", OrderItemsStatus.Processing] }],
},
1,
0,
],
},
}, },
delivered: { delivered: {
$sum: { $sum: { $cond: [{ $eq: ["$_id", OrderItemsStatus.Delivered] }, "$count", 0] },
$cond: [{ $eq: ["$_id.itemStatus", OrderItemsStatus.Delivered] }, 1, 0],
},
}, },
cancelled: { cancelled: {
$sum: { $sum: {
$cond: [ $cond: [
{ {
$in: [ $in: ["$_id", [OrderItemsStatus.cancelled_system, OrderItemsStatus.cancelled_user, OrderItemsStatus.cancelled_shop]],
"$_id.itemStatus",
[OrderItemsStatus.cancelled_system, OrderItemsStatus.cancelled_user, OrderItemsStatus.cancelled_shop],
],
}, },
1, "$count",
0, 0,
], ],
}, },
}, },
returned: { returned: {
$sum: { $sum: { $cond: [{ $eq: ["$_id", OrderItemsStatus.Returned] }, "$count", 0] },
$cond: [{ $eq: ["$_id.itemStatus", OrderItemsStatus.Returned] }, 1, 0],
},
}, },
shipped: { shipped: {
$sum: { $sum: { $cond: [{ $eq: ["$_id", OrderItemsStatus.Shipped] }, "$count", 0] },
$cond: [{ $eq: ["$_id.itemStatus", OrderItemsStatus.Shipped] }, 1, 0],
},
}, },
all: { $sum: "$count" },
}, },
}, },
{ {
@@ -91,6 +72,7 @@ class OrderRepository extends BaseRepository<IOrder> {
cancelled: 1, cancelled: 1,
returned: 1, returned: 1,
shipped: 1, shipped: 1,
all: 1,
}, },
}, },
]; ];
@@ -103,6 +85,7 @@ class OrderRepository extends BaseRepository<IOrder> {
cancelled: 0, cancelled: 0,
returned: 0, returned: 0,
shipped: 0, shipped: 0,
all: 0,
} }
); );
} }