sort พัฒนาบุคลากร

This commit is contained in:
Adisak 2025-10-02 17:31:37 +07:00
parent 6725e9f4d9
commit 57114edac3
3 changed files with 91 additions and 9 deletions

View file

@ -160,6 +160,8 @@ export class DevelopmentScholarshipController extends Controller {
@Query("keyword") keyword?: string,
@Query("year") year?: number,
@Query("scholarshipType") scholarshipType?: string,
@Query("sortBy") sortBy?: string,
@Query("descending") descending?: boolean,
) {
let _data = await new permission().PermissionOrgList(request, "SYS_DEV_SCHOLARSHIP");
await new CallAPI()
@ -168,7 +170,7 @@ export class DevelopmentScholarshipController extends Controller {
_data = x;
})
.catch((x) => {});
const [development, total] = await AppDataSource.getRepository(DevelopmentScholarship)
let query = await AppDataSource.getRepository(DevelopmentScholarship)
.createQueryBuilder("developmentScholarship")
.leftJoinAndSelect("developmentScholarship.posLevel", "posLevel")
.leftJoinAndSelect("developmentScholarship.posType", "posType")
@ -242,11 +244,44 @@ export class DevelopmentScholarshipController extends Controller {
root: _data.root,
},
)
.orderBy("developmentScholarship.scholarshipYear", "DESC")
.addOrderBy("developmentScholarship.createdAt", "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 if(sortBy === "year"){
query = query.orderBy(
`developmentScholarship.scholarshipYear`,
descending ? "DESC" : "ASC"
);
}else if(sortBy === "fullName"){
query = query
.orderBy(`developmentScholarship.prefix`,descending ? "DESC" : "ASC")
.addOrderBy(`developmentScholarship.firstName`,descending ? "DESC" : "ASC")
.addOrderBy(`developmentScholarship.lastName`,descending ? "DESC" : "ASC")
}else{
query = query.orderBy(
`developmentScholarship.${sortBy}`,
descending ? "DESC" : "ASC"
);
}
}else{
query = query.orderBy("developmentScholarship.scholarshipYear", "DESC")
.addOrderBy("developmentScholarship.createdAt", "DESC")
}
const [development, total] = await query
.skip((page - 1) * pageSize)
.take(pageSize)
.getManyAndCount();
const formattedData = development.map((item) => ({
id: item.id,
year: item.scholarshipYear,