From be013f8785305257e1cf4c905af3c823a18d19ee Mon Sep 17 00:00:00 2001 From: bahram rajabi Date: Thu, 27 Jun 2024 16:22:20 +0330 Subject: [PATCH] fix with avaiable inventory --- .../product/service/product-query-builder.service.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/apps/e-commerce/src/product/service/product-query-builder.service.ts b/apps/e-commerce/src/product/service/product-query-builder.service.ts index 1fe26901..8272412e 100644 --- a/apps/e-commerce/src/product/service/product-query-builder.service.ts +++ b/apps/e-commerce/src/product/service/product-query-builder.service.ts @@ -586,11 +586,18 @@ export class ProductQueryBuilderService { queryBuilder = queryBuilder.order(orderItem); } if (filter.orderBy.startsWith('randomize')) { + // const offsetRandom = await this.sequelize.query( + // `SELECT RAND(CHECKSUM(NEWID()))*SUM([rows]) as offset FROM sys.partitions + // WHERE index_id IN (0, 1) AND [object_id]=OBJECT_ID('dbo.ECProducts')`, + // { type: QueryTypes.SELECT, raw: true }, + // ); + const offsetRandom = await this.sequelize.query( - `SELECT RAND(CHECKSUM(NEWID()))*SUM([rows]) as offset FROM sys.partitions - WHERE index_id IN (0, 1) AND [object_id]=OBJECT_ID('dbo.ECProducts')`, + `SELECT RAND(CHECKSUM(NEWID()))* count(*) as offset FROM ECProducts + WHERE inventoryStatusId = ${InventoryStatusEnum.available}`, { type: QueryTypes.SELECT, raw: true }, ); + const offset = Math.round(offsetRandom[0]['offset']); queryBuilder = queryBuilder .offset(offset)