From a6fb4c28f1ed72bb0ed7a83acfa95e4f192d7548 Mon Sep 17 00:00:00 2001 From: Kittapath Date: Wed, 27 Mar 2024 10:32:33 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B9=81=E0=B8=81=E0=B9=89=E0=B8=9A=E0=B8=B1?= =?UTF-8?q?=E0=B8=84=E0=B8=84=E0=B9=89=E0=B8=99=E0=B8=AB=E0=B8=B2=E0=B9=80?= =?UTF-8?q?=E0=B8=81=E0=B8=93=E0=B8=A5=E0=B8=B9=E0=B8=81=E0=B8=88=E0=B9=89?= =?UTF-8?q?=E0=B8=B2=E0=B8=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SalaryFormulaEmployeeController.ts | 39 ++++++++++--------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/src/controllers/SalaryFormulaEmployeeController.ts b/src/controllers/SalaryFormulaEmployeeController.ts index cee8313..b5b0136 100644 --- a/src/controllers/SalaryFormulaEmployeeController.ts +++ b/src/controllers/SalaryFormulaEmployeeController.ts @@ -228,25 +228,26 @@ export class SalaryFormulaEmployeeController extends Controller { @Query("keyword") keyword?: string, @Query("posTypeId") posTypeId?: string, ) { - let whereClause: any = {}; - if (keyword != undefined && keyword !== "") { - whereClause = { - where: [ - { details: Like(`%${keyword}%`) }, - { position: Like(`%${keyword}%`) }, - { posLevel: { posLevelName: Like(`%${keyword}%`) } }, - { posTypeId: Like(`%${posTypeId}%`) }, - ], - }; - } - const [getFormula, total] = await this.salaryFormulaEmployeeRepository.findAndCount({ - relations: ["salaryEmployee", "posType", "posLevel", "salaryEmployeeMins"], - ...whereClause, - order: { - lastUpdatedAt: "DESC", - }, - ...(keyword ? {} : { skip: (page - 1) * pageSize, take: pageSize }), - }); + const [getFormula, total] = await AppDataSource.getRepository(SalaryFormulaEmployee) + .createQueryBuilder("salaryFormulaEmployee") + .leftJoinAndSelect("salaryFormulaEmployee.salaryEmployee", "salaryEmployee") + .leftJoinAndSelect("salaryFormulaEmployee.posType", "posType") + .leftJoinAndSelect("salaryFormulaEmployee.posLevel", "posLevel") + .leftJoinAndSelect("salaryFormulaEmployee.salaryEmployeeMins", "salaryEmployeeMins") + .andWhere( + keyword == undefined + ? "1=1" + : [ + { details: Like(`%${keyword}%`) }, + { position: Like(`%${keyword}%`) }, + { posLevel: { posLevelName: Like(`%${keyword}%`) } }, + ], + ) + .andWhere(posTypeId == undefined ? "1=1" : { posTypeId: Like(`%${posTypeId}%`) }) + .orderBy("salaryFormulaEmployee.lastUpdatedAt", "DESC") + .skip((page - 1) * pageSize) + .take(pageSize) + .getManyAndCount(); const mapFormula = getFormula.map((item) => ({ id: item.id,