order stats
This commit is contained in:
@@ -36,7 +36,12 @@ export class OrderController {
|
|||||||
return this.orderService.getOrderAsUser(userId, orderId);
|
return this.orderService.getOrderAsUser(userId, orderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Get('public/orders/stats')
|
||||||
|
@UseGuards(AuthGuard)
|
||||||
|
@ApiOperation({ summary: 'Get User Orders stats' })
|
||||||
|
getStats( @UserId() userId: string) {
|
||||||
|
return this.orderService.getStats(userId);
|
||||||
|
}
|
||||||
/*========================== Admin Routes =====================*/
|
/*========================== Admin Routes =====================*/
|
||||||
|
|
||||||
@Post('admin/orders')
|
@Post('admin/orders')
|
||||||
|
|||||||
@@ -30,6 +30,8 @@ import { UpdateStatusDto } from '../dto/update-status.dto';
|
|||||||
import { CreateOrderPrintDto } from '../dto/create-order-print.dto';
|
import { CreateOrderPrintDto } from '../dto/create-order-print.dto';
|
||||||
import { OrderPrint } from '../entities/print.entity';
|
import { OrderPrint } from '../entities/print.entity';
|
||||||
import { OrderPrintRepository } from '../repositories/order-print.repository';
|
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()
|
@Injectable()
|
||||||
export class OrderService {
|
export class OrderService {
|
||||||
@@ -273,4 +275,24 @@ export class OrderService {
|
|||||||
}
|
}
|
||||||
return order;
|
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,
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user