This commit is contained in:
Adisak 2025-10-01 13:24:26 +07:00
parent a4e3e5d417
commit f2fcdbaaae

View file

@ -306,9 +306,11 @@ export class SalaryController extends Controller {
@Query("page") page: number = 1, @Query("page") page: number = 1,
@Query("pageSize") pageSize: number = 10, @Query("pageSize") pageSize: number = 10,
@Query("keyword") keyword?: string, @Query("keyword") keyword?: string,
@Query("sortBy") sortBy?: string,
@Query("descending") descending?: boolean,
) { ) {
await new permission().PermissionList(request, "SYS_SALARY_CHART_OFFICER"); await new permission().PermissionList(request, "SYS_SALARY_CHART_OFFICER");
const [salary, total] = await AppDataSource.getRepository(Salarys) let query = await AppDataSource.getRepository(Salarys)
.createQueryBuilder("salary") .createQueryBuilder("salary")
.leftJoinAndSelect("salary.posType_", "posType_") .leftJoinAndSelect("salary.posType_", "posType_")
.leftJoinAndSelect("salary.posLevel_", "posLevel_") .leftJoinAndSelect("salary.posLevel_", "posLevel_")
@ -319,9 +321,31 @@ export class SalaryController extends Controller {
.orWhere("posLevel_.posLevelName LIKE :keyword", { keyword: `%${keyword}%` }); .orWhere("posLevel_.posLevelName LIKE :keyword", { keyword: `%${keyword}%` });
}), }),
) )
.orderBy("salary.isActive", "DESC")
.addOrderBy("posType_.posTypeRank", "DESC") if (sortBy) {
.addOrderBy("posLevel_.posLevelRank", "DESC") if(sortBy === "posType"){
query = query.orderBy(
`posType_.posTypeName`,
descending ? "DESC" : "ASC"
);
}else if(sortBy === "posLevel"){
query = query.orderBy(
`posLevel_.posLevelName`,
descending ? "DESC" : "ASC"
);
}else{
query = query.orderBy(
`salary.${sortBy}`,
descending ? "DESC" : "ASC"
);
}
}else{
query = query.orderBy("salary.isActive", "DESC")
.addOrderBy("posType_.posTypeRank", "DESC")
.addOrderBy("posLevel_.posLevelRank", "DESC")
}
const [salary, total] = await query
.skip((page - 1) * pageSize) .skip((page - 1) * pageSize)
.take(pageSize) .take(pageSize)
.getManyAndCount(); .getManyAndCount();