sort
This commit is contained in:
parent
a4e3e5d417
commit
f2fcdbaaae
1 changed files with 29 additions and 5 deletions
|
|
@ -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")
|
|
||||||
|
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("posType_.posTypeRank", "DESC")
|
||||||
.addOrderBy("posLevel_.posLevelRank", "DESC")
|
.addOrderBy("posLevel_.posLevelRank", "DESC")
|
||||||
|
}
|
||||||
|
|
||||||
|
const [salary, total] = await query
|
||||||
.skip((page - 1) * pageSize)
|
.skip((page - 1) * pageSize)
|
||||||
.take(pageSize)
|
.take(pageSize)
|
||||||
.getManyAndCount();
|
.getManyAndCount();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue