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,