เช็ค ข้อมูลหลัก #809 (เรื่อง search)

This commit is contained in:
AdisakKanthawilang 2024-11-27 15:45:44 +07:00
parent 5e8b372323
commit 39b82dfa0a
3 changed files with 53 additions and 8 deletions

View file

@ -562,10 +562,11 @@ export class PositionController extends Controller {
@Get("position")
async findPosition(@Query("keyword") keyword?: string, @Query("type") type?: string) {
let findPosDict: any;
if(keyword && keyword?.length > 0){
switch (type) {
case "positionName":
findPosDict = await this.posDictRepository.find({
where: { posDictName: Like(`%${keyword}%`) },
where: { posDictName: keyword && keyword.length > 0?Like(`%${keyword}%`):"1=1" },
relations: ["posType", "posLevel", "posExecutive"],
order: {
posDictName: "ASC",
@ -587,7 +588,7 @@ export class PositionController extends Controller {
case "positionField":
findPosDict = await this.posDictRepository.find({
where: { posDictField: Like(`%${keyword}%`) },
where: { posDictField: keyword && keyword.length > 0?Like(`%${keyword}%`):"1=1" },
relations: ["posType", "posLevel", "posExecutive"],
order: {
posDictField: "ASC",
@ -609,7 +610,7 @@ export class PositionController extends Controller {
case "positionType":
const findTypes: PosType[] = await this.posTypeRepository.find({
where: { posTypeName: Like(`%${keyword}%`) },
where: { posTypeName: keyword && keyword.length > 0?Like(`%${keyword}%`):"1=1" },
order: {
// posTypeName: "ASC"
posTypeRank: "ASC",
@ -640,7 +641,7 @@ export class PositionController extends Controller {
case "positionLevel":
const findLevel: PosLevel[] = await this.posLevelRepository.find({
where: { posLevelName: Like(`%${keyword}%`) },
where: { posLevelName: keyword && keyword.length > 0?Like(`%${keyword}%`):"1=1" },
order: {
// posLevelName: "ASC"
posLevelRank: "ASC",
@ -671,7 +672,7 @@ export class PositionController extends Controller {
case "positionExecutive":
const findExecutive: PosExecutive[] = await this.posExecutiveRepository.find({
where: { posExecutiveName: Like(`%${keyword}%`) },
where: { posExecutiveName: keyword && keyword.length > 0?Like(`%${keyword}%`):"1=1" },
select: ["id"],
});
findPosDict = await this.posDictRepository.find({
@ -697,7 +698,7 @@ export class PositionController extends Controller {
case "positionExecutiveField":
findPosDict = await this.posDictRepository.find({
where: { posDictExecutiveField: Like(`%${keyword}%`) },
where: { posDictExecutiveField: keyword && keyword.length > 0?Like(`%${keyword}%`):"1=1" },
relations: ["posType", "posLevel", "posExecutive"],
order: {
posDictName: "ASC",
@ -719,7 +720,7 @@ export class PositionController extends Controller {
case "positionArea":
findPosDict = await this.posDictRepository.find({
where: { posDictArea: Like(`%${keyword}%`) },
where: { posDictArea: keyword && keyword.length > 0?Like(`%${keyword}%`):"1=1" },
relations: ["posType", "posLevel", "posExecutive"],
order: {
posDictName: "ASC",
@ -807,6 +808,26 @@ export class PositionController extends Controller {
},
});
break;
}
}else{
findPosDict = await this.posDictRepository.find({
relations: ["posType", "posLevel", "posExecutive"],
order: {
posDictName: "ASC",
createdAt: "DESC",
posType:{
posTypeRank: "ASC",
createdAt: "DESC"
},
posLevel: {
posLevelRank: "ASC",
createdAt: "DESC"
},
posExecutive: {
posExecutivePriority: "ASC"
}
},
});
}
const mapDataPosDict = await Promise.all(