feat(SPG-1078): summary all item queue
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details

pull/115/head 1.3.0-alpha.2
shancheas 2024-12-03 14:27:12 +07:00
parent 5f6214eeb6
commit 55e89426d9
3 changed files with 22 additions and 0 deletions

View File

@ -68,6 +68,14 @@ export class QueueDataService extends BaseReadService<QueueModel> {
return queues.filter((q) => q.items.length > 0);
}
async allQueue() {
const queues = await this.itemQueueRepo.find({
relations: ['items'],
});
return queues.filter((q) => q.items.length > 0);
}
async lastQueue(item_queue_id: string) {
const start = moment().startOf('day').valueOf();
const end = moment().endOf('day').valueOf();

View File

@ -187,6 +187,15 @@ export class QueueOrchestrator {
return manager.recommend(recommendItems);
}
async queueItemSummary(): Promise<any> {
const recommendItems = await this.queueDataService.allQueue();
const recommendIds = recommendItems.map((item) => item.id);
const queues = await this.queueService.queues(recommendIds);
const manager = new CustomerQueueRecommendManager(null);
manager.currentQueues(queues);
return manager.recommend(recommendItems);
}
async queueItems(order_id: string): Promise<any> {
const tickets = await this.dataService.queueTickets(order_id);
const queueItemIds = this.getQueueItemFromTickets(tickets);

View File

@ -71,6 +71,11 @@ export class QueueController {
return await this.orchestrator.queueItemRecommendation(id);
}
@Get(':id/queue-summary')
async queueItemSummary(): Promise<void> {
return await this.orchestrator.queueItemSummary();
}
@Get(':id/items')
async queueItems(@Param('id') id: string): Promise<void> {
return await this.orchestrator.queueItems(id);