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("pageSize") pageSize: number = 10,
@Query("keyword") keyword?: string,
@Query("sortBy") sortBy?: string,
@Query("descending") descending?: boolean,
) {
await new permission().PermissionList(request, "SYS_SALARY_CHART_OFFICER");
const [salary, total] = await AppDataSource.getRepository(Salarys)
let query = await AppDataSource.getRepository(Salarys)
.createQueryBuilder("salary")
.leftJoinAndSelect("salary.posType_", "posType_")
.leftJoinAndSelect("salary.posLevel_", "posLevel_")
@ -319,13 +321,35 @@ export class SalaryController extends Controller {
.orWhere("posLevel_.posLevelName LIKE :keyword", { keyword: `%${keyword}%` });
}),
)
.orderBy("salary.isActive", "DESC")
.addOrderBy("posType_.posTypeRank", "DESC")
.addOrderBy("posLevel_.posLevelRank", "DESC")
if (sortBy) {
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)
.take(pageSize)
.getManyAndCount();
const _salary = salary.map((item) => ({
id: item.id,
name: item.name,