order stats

This commit is contained in:
2026-02-23 09:40:18 +03:30
parent 30c9e9e24a
commit 1e7ad2f72e
2 changed files with 29 additions and 2 deletions
+23 -1
View File
@@ -30,6 +30,8 @@ import { UpdateStatusDto } from '../dto/update-status.dto';
import { CreateOrderPrintDto } from '../dto/create-order-print.dto';
import { OrderPrint } from '../entities/print.entity';
import { OrderPrintRepository } from '../repositories/order-print.repository';
import { Request } from 'src/modules/request/entities/request.entity';
import { Invoice } from 'src/modules/invoice/entities/invoice.entity';
@Injectable()
export class OrderService {
@@ -216,7 +218,7 @@ export class OrderService {
await this.em.flush();
return order
}
throw new ForbiddenException("You don't have permission to update order status")
}
@@ -273,4 +275,24 @@ export class OrderService {
}
return order;
}
async getStats(userId: string) {
const [requestsCount, invoicesCount, inProgressOrdersCount, completedOrdersCount] =
await Promise.all([
this.em.count(Request, { user: { id: userId } }),
this.em.count(Invoice, { user: { id: userId } }),
this.em.count(Order, {
user: { id: userId },
status: { $nin: [OrderStatusEnum.FINISHED, OrderStatusEnum.CANCELED] },
}),
this.em.count(Order, { user: { id: userId }, status: OrderStatusEnum.FINISHED }),
]);
return {
requestsCount,
invoicesCount,
inProgressOrdersCount,
completedOrdersCount,
};
}
}