From c20e0ba68459d10766fc207540804015d08c81a3 Mon Sep 17 00:00:00 2001 From: morteza-mortezai Date: Wed, 22 Jul 2026 16:17:55 +0330 Subject: [PATCH] sort customers --- .../users/repositories/users.repository.ts | 38 +++++++++++++++---- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/src/modules/users/repositories/users.repository.ts b/src/modules/users/repositories/users.repository.ts index 245a473..9788694 100755 --- a/src/modules/users/repositories/users.repository.ts +++ b/src/modules/users/repositories/users.repository.ts @@ -119,10 +119,21 @@ export class UserRepository extends Repository { .loadRelationCountAndMap("user.ticketsCount", "user.tickets"); if (queryDto.q) { - queryBuilder - .orWhere("user.firstName ILIKE :search", { search: `%${queryDto.q}%` }) - .orWhere("user.lastName ILIKE :search", { search: `%${queryDto.q}%` }) - .orWhere("user.userName ILIKE :search", { search: `%${queryDto.q}%` }); + queryBuilder.andWhere( + `( + user.firstName ILIKE :search + OR user.lastName ILIKE :search + OR CONCAT(user.firstName, ' ', user.lastName) ILIKE :search + OR user.userName ILIKE :search + OR user.phone ILIKE :search + OR legalUser.registrationName ILIKE :search + OR legalUser.phone ILIKE :search + OR realUser.firstName ILIKE :search + OR realUser.lastName ILIKE :search + OR realUser.phone ILIKE :search + )`, + { search: `%${queryDto.q}%` }, + ); } return queryBuilder.getMany(); @@ -166,10 +177,21 @@ export class UserRepository extends Repository { .loadRelationCountAndMap("user.ticketsCount", "user.tickets"); if (queryDto.q) { - queryBuilder - .orWhere("user.firstName ILIKE :search", { search: `%${queryDto.q}%` }) - .orWhere("user.lastName ILIKE :search", { search: `%${queryDto.q}%` }) - .orWhere("user.userName ILIKE :search", { search: `%${queryDto.q}%` }); + queryBuilder.andWhere( + `( + user.firstName ILIKE :search + OR user.lastName ILIKE :search + OR CONCAT(user.firstName, ' ', user.lastName) ILIKE :search + OR user.userName ILIKE :search + OR user.phone ILIKE :search + OR legalUser.registrationName ILIKE :search + OR legalUser.phone ILIKE :search + OR realUser.firstName ILIKE :search + OR realUser.lastName ILIKE :search + OR realUser.phone ILIKE :search + )`, + { search: `%${queryDto.q}%` }, + ); } return await queryBuilder