fix api sort 504 time out
All checks were successful
Build & Deploy on Dev / build (push) Successful in 1m7s
All checks were successful
Build & Deploy on Dev / build (push) Successful in 1m7s
This commit is contained in:
parent
d0c5d90033
commit
36b1469016
1 changed files with 65 additions and 5 deletions
|
|
@ -2760,7 +2760,19 @@ export class PositionController extends Controller {
|
||||||
id: data.id,
|
id: data.id,
|
||||||
posMasterOrder: requestBody.sortId.indexOf(data.id) + 1,
|
posMasterOrder: requestBody.sortId.indexOf(data.id) + 1,
|
||||||
}));
|
}));
|
||||||
await this.posMasterRepository.save(sortData_0, { data: request });
|
// Bulk update using CASE WHEN instead of save() per row
|
||||||
|
const caseClauses_0 = sortData_0
|
||||||
|
.map((d) => `WHEN '${d.id}' THEN ${d.posMasterOrder}`)
|
||||||
|
.join(" ");
|
||||||
|
const ids_0 = sortData_0.map((d) => `'${d.id}'`).join(",");
|
||||||
|
await this.posMasterRepository
|
||||||
|
.createQueryBuilder()
|
||||||
|
.update(PosMaster)
|
||||||
|
.set({
|
||||||
|
posMasterOrder: () => `CASE id ${caseClauses_0} END`,
|
||||||
|
})
|
||||||
|
.where(`id IN (${ids_0})`)
|
||||||
|
.execute();
|
||||||
setLogDataDiff(request, { before, after: sortData_0 });
|
setLogDataDiff(request, { before, after: sortData_0 });
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -2789,7 +2801,19 @@ export class PositionController extends Controller {
|
||||||
id: data.id,
|
id: data.id,
|
||||||
posMasterOrder: requestBody.sortId.indexOf(data.id) + 1,
|
posMasterOrder: requestBody.sortId.indexOf(data.id) + 1,
|
||||||
}));
|
}));
|
||||||
await this.posMasterRepository.save(sortData_1, { data: request });
|
// Bulk update using CASE WHEN instead of save() per row
|
||||||
|
const caseClauses_1 = sortData_1
|
||||||
|
.map((d) => `WHEN '${d.id}' THEN ${d.posMasterOrder}`)
|
||||||
|
.join(" ");
|
||||||
|
const ids_1 = sortData_1.map((d) => `'${d.id}'`).join(",");
|
||||||
|
await this.posMasterRepository
|
||||||
|
.createQueryBuilder()
|
||||||
|
.update(PosMaster)
|
||||||
|
.set({
|
||||||
|
posMasterOrder: () => `CASE id ${caseClauses_1} END`,
|
||||||
|
})
|
||||||
|
.where(`id IN (${ids_1})`)
|
||||||
|
.execute();
|
||||||
setLogDataDiff(request, { before, after: sortData_1 });
|
setLogDataDiff(request, { before, after: sortData_1 });
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -2818,7 +2842,19 @@ export class PositionController extends Controller {
|
||||||
id: data.id,
|
id: data.id,
|
||||||
posMasterOrder: requestBody.sortId.indexOf(data.id) + 1,
|
posMasterOrder: requestBody.sortId.indexOf(data.id) + 1,
|
||||||
}));
|
}));
|
||||||
await this.posMasterRepository.save(sortData_2, { data: request });
|
// Bulk update using CASE WHEN instead of save() per row
|
||||||
|
const caseClauses_2 = sortData_2
|
||||||
|
.map((d) => `WHEN '${d.id}' THEN ${d.posMasterOrder}`)
|
||||||
|
.join(" ");
|
||||||
|
const ids_2 = sortData_2.map((d) => `'${d.id}'`).join(",");
|
||||||
|
await this.posMasterRepository
|
||||||
|
.createQueryBuilder()
|
||||||
|
.update(PosMaster)
|
||||||
|
.set({
|
||||||
|
posMasterOrder: () => `CASE id ${caseClauses_2} END`,
|
||||||
|
})
|
||||||
|
.where(`id IN (${ids_2})`)
|
||||||
|
.execute();
|
||||||
setLogDataDiff(request, { before, after: sortData_2 });
|
setLogDataDiff(request, { before, after: sortData_2 });
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -2847,7 +2883,19 @@ export class PositionController extends Controller {
|
||||||
id: data.id,
|
id: data.id,
|
||||||
posMasterOrder: requestBody.sortId.indexOf(data.id) + 1,
|
posMasterOrder: requestBody.sortId.indexOf(data.id) + 1,
|
||||||
}));
|
}));
|
||||||
await this.posMasterRepository.save(sortData_3, { data: request });
|
// Bulk update using CASE WHEN instead of save() per row
|
||||||
|
const caseClauses_3 = sortData_3
|
||||||
|
.map((d) => `WHEN '${d.id}' THEN ${d.posMasterOrder}`)
|
||||||
|
.join(" ");
|
||||||
|
const ids_3 = sortData_3.map((d) => `'${d.id}'`).join(",");
|
||||||
|
await this.posMasterRepository
|
||||||
|
.createQueryBuilder()
|
||||||
|
.update(PosMaster)
|
||||||
|
.set({
|
||||||
|
posMasterOrder: () => `CASE id ${caseClauses_3} END`,
|
||||||
|
})
|
||||||
|
.where(`id IN (${ids_3})`)
|
||||||
|
.execute();
|
||||||
setLogDataDiff(request, { before, after: sortData_3 });
|
setLogDataDiff(request, { before, after: sortData_3 });
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -2876,7 +2924,19 @@ export class PositionController extends Controller {
|
||||||
id: data.id,
|
id: data.id,
|
||||||
posMasterOrder: requestBody.sortId.indexOf(data.id) + 1,
|
posMasterOrder: requestBody.sortId.indexOf(data.id) + 1,
|
||||||
}));
|
}));
|
||||||
await this.posMasterRepository.save(sortData_4, { data: request });
|
// Bulk update using CASE WHEN instead of save() per row
|
||||||
|
const caseClauses_4 = sortData_4
|
||||||
|
.map((d) => `WHEN '${d.id}' THEN ${d.posMasterOrder}`)
|
||||||
|
.join(" ");
|
||||||
|
const ids_4 = sortData_4.map((d) => `'${d.id}'`).join(",");
|
||||||
|
await this.posMasterRepository
|
||||||
|
.createQueryBuilder()
|
||||||
|
.update(PosMaster)
|
||||||
|
.set({
|
||||||
|
posMasterOrder: () => `CASE id ${caseClauses_4} END`,
|
||||||
|
})
|
||||||
|
.where(`id IN (${ids_4})`)
|
||||||
|
.execute();
|
||||||
setLogDataDiff(request, { before, after: sortData_4 });
|
setLogDataDiff(request, { before, after: sortData_4 });
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue