From d113ac6dfe52a8a41fe20e3bbe49dcf183b48d59 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Fri, 3 Oct 2025 16:18:48 +0700 Subject: [PATCH] fix error sortBy default --- src/controllers/ProfileController.ts | 73 ++++++++++++---------------- 1 file changed, 31 insertions(+), 42 deletions(-) diff --git a/src/controllers/ProfileController.ts b/src/controllers/ProfileController.ts index 7315ac5c..a7ace8f7 100644 --- a/src/controllers/ProfileController.ts +++ b/src/controllers/ProfileController.ts @@ -5739,7 +5739,7 @@ export class ProfileController extends Controller { @Query() nodeId?: string, @Query() isAll?: boolean, @Query() retireType?: string, - @Query() sortBy: string = "current_holders.posMasterNo", + @Query() sortBy: string = "profile.dateLeave", @Query() sort: "ASC" | "DESC" = "ASC", ) { const { data, total } = await this.profileLeaveService.getLeaveOfficer(request, { @@ -6127,7 +6127,7 @@ export class ProfileController extends Controller { "orgChild4.orgChild4Order", "positions.id", "posExecutive.id", - "posExecutive.posExecutiveName" + "posExecutive.posExecutiveName", ]) .where("current_holders.orgRevisionId = :orgRevisionId", { orgRevisionId: ( @@ -6198,45 +6198,34 @@ export class ProfileController extends Controller { qb.orWhere(searchKeyword ? queryLike : "1=1", { keyword: `%${searchKeyword}%` }); }), ) - .addSelect("CASE WHEN current_holders.posMasterNo IS NULL THEN 1 ELSE 0 END", "sort_order") + .addSelect("CASE WHEN current_holders.posMasterNo IS NULL THEN 1 ELSE 0 END", "sort_order"); - if (sortBy) { - if(sortBy === "posLevel"){ - query = query.orderBy( - `posLevel.posLevelName`, - descending ? "DESC" : "ASC" - ); - }else if(sortBy === "posType"){ - query = query.orderBy( - `posType.posTypeName`, - descending ? "DESC" : "ASC" - ); - }else if(sortBy === "posExecutive"){ - query = query.orderBy( - `posExecutive.posExecutiveName`, - descending ? "DESC" : "ASC" - ); - }else{ - query = query.orderBy( - `profile.${sortBy}`, - descending ? "DESC" : "ASC" - ); - } - }else{ - query = query.orderBy("sort_order", "ASC") - .addOrderBy("orgRoot.orgRootOrder", sort) - .addOrderBy("orgChild1.orgChild1Order", sort) - .addOrderBy("orgChild2.orgChild2Order", sort) - .addOrderBy("orgChild3.orgChild3Order", sort) - .addOrderBy("orgChild4.orgChild4Order", sort) - .addOrderBy("current_holders.posMasterNo", sort) + if (sortBy) { + if (sortBy === "posLevel") { + query = query.orderBy(`posLevel.posLevelName`, descending ? "DESC" : "ASC"); + } else if (sortBy === "posType") { + query = query.orderBy(`posType.posTypeName`, descending ? "DESC" : "ASC"); + } else if (sortBy === "posExecutive") { + query = query.orderBy(`posExecutive.posExecutiveName`, descending ? "DESC" : "ASC"); + } else { + query = query.orderBy(`profile.${sortBy}`, descending ? "DESC" : "ASC"); } + } else { + query = query + .orderBy("sort_order", "ASC") + .addOrderBy("orgRoot.orgRootOrder", sort) + .addOrderBy("orgChild1.orgChild1Order", sort) + .addOrderBy("orgChild2.orgChild2Order", sort) + .addOrderBy("orgChild3.orgChild3Order", sort) + .addOrderBy("orgChild4.orgChild4Order", sort) + .addOrderBy("current_holders.posMasterNo", sort); + } + + const [record, total] = await query + .skip((page - 1) * pageSize) + .take(pageSize) + .getManyAndCount(); - const [record, total] = await query - .skip((page - 1) * pageSize) - .take(pageSize) - .getManyAndCount(); - // map ข้อมูลแบบเร็วขึ้น const data = record.map((_data) => { const holder = _data.current_holders?.[0]; @@ -6272,13 +6261,14 @@ export class ProfileController extends Controller { rank: _data.rank, firstName: _data.firstName, lastName: _data.lastName, - citizenId: _data.citizenId, + citizenId: _data.citizenId, posLevel: _data.posLevel?.posLevelName ?? null, posType: _data.posType?.posTypeName ?? null, posLevelId: _data.posLevel?.id ?? null, posTypeId: _data.posType?.id ?? null, position: _data.position, - posExecutive: _data.current_holders[0]?.positions[0]?.posExecutive?.posExecutiveName ?? null, + posExecutive: + _data.current_holders[0]?.positions[0]?.posExecutive?.posExecutiveName ?? null, posNo: shortName ?? null, rootId: holder?.orgRoot?.id ?? null, root: holder?.orgRoot?.orgRootName ?? null, @@ -6471,7 +6461,7 @@ export class ProfileController extends Controller { nodeCondition = nodeCondition + nodeAll; // เลือกเฉพาะฟิลด์ที่จำเป็น - const [record,total] = await this.profileRepo + const [record, total] = await this.profileRepo .createQueryBuilder("profile") .leftJoin("profile.posLevel", "posLevel") .leftJoin("profile.posType", "posType") @@ -6665,7 +6655,6 @@ export class ProfileController extends Controller { return new HttpSuccess({ data, total }); } - /** * API ค้นหารายชื่อไปครองตำแหน่ง *