@@ -31,56 +31,37 @@ class OrderRepository extends BaseRepository<IOrder> {
|
||||
{ $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<IOrder> {
|
||||
cancelled: 1,
|
||||
returned: 1,
|
||||
shipped: 1,
|
||||
all: 1,
|
||||
},
|
||||
},
|
||||
];
|
||||
@@ -103,6 +85,7 @@ class OrderRepository extends BaseRepository<IOrder> {
|
||||
cancelled: 0,
|
||||
returned: 0,
|
||||
shipped: 0,
|
||||
all: 0,
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user