From 23e277c27722be7982932d764eaa9e7fbf644b10 Mon Sep 17 00:00:00 2001 From: Kittapath Date: Fri, 26 Apr 2024 18:26:30 +0700 Subject: [PATCH] no message --- src/controllers/KpiLinkController.ts | 33 ++++++++++++++-------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/src/controllers/KpiLinkController.ts b/src/controllers/KpiLinkController.ts index 85b5016..563d92f 100644 --- a/src/controllers/KpiLinkController.ts +++ b/src/controllers/KpiLinkController.ts @@ -226,32 +226,33 @@ export class kpiLinkController extends Controller { @Query("pageSize") pageSize: number = 10, @Query("keyword") keyword?: string, ) { + const [_kpiLink, _total] = await AppDataSource.getRepository(KpiLink) + .createQueryBuilder("kpiLink") + .leftJoinAndSelect("kpiLink.kpiGroup", "kpiGroup") + .leftJoinAndSelect("kpiLink.positions", "positions") + .leftJoinAndSelect("kpiLink.kpiCapacitys", "kpiCapacitys") + .andWhere( + new Brackets((qb) => { + qb.orWhere("kpiGroup.nameGroupKPI LIKE :keyword", { keyword: `%${keyword}%` }) + .orWhere("positions.name LIKE :keyword", { keyword: `%${keyword}%` }) + .orWhere("kpiCapacitys.name LIKE :keyword", { keyword: `%${keyword}%` }); + }), + ) + .getManyAndCount(); + const [kpiLink, total] = await AppDataSource.getRepository(KpiLink) .createQueryBuilder("kpiLink") .leftJoinAndSelect("kpiLink.kpiGroup", "kpiGroup") .leftJoinAndSelect("kpiLink.positions", "positions") .leftJoinAndSelect("kpiLink.kpiCapacitys", "kpiCapacitys") - .where( - new Brackets((qb) => { - let conditions = []; - if (keyword) { - conditions.push("kpiGroup.nameGroupKPI LIKE :keyword"); - conditions.push("positions.name LIKE :keyword"); - conditions.push("kpiCapacitys.name LIKE :keyword"); - } - if (conditions.length) { - qb.where(conditions.join(" OR "), { keyword: `%${keyword}%` }); - } - }), - ) + .andWhere("kpiLink.id In (:id)", { + id: _kpiLink.map((x) => x.id), + }) .skip((page - 1) * pageSize) .take(pageSize) .orderBy("kpiLink.createdAt", "ASC") .getManyAndCount(); - if (!kpiLink) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลการเชื่อมโยง"); - } const formattedResponse = kpiLink.map((item) => ({ id: item.id, groupName: item.kpiGroup.nameGroupKPI,