fix(SPG-1030): merge queue when user is exits
parent
4dc21c4ebd
commit
3b19484f29
|
@ -31,6 +31,10 @@ export class TicketDataService extends BaseDataService<QueueTicket> {
|
||||||
return await this.order.save(order);
|
return await this.order.save(order);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async updateQueueTicket(ticket: QueueTicket): Promise<QueueTicketModel> {
|
||||||
|
return await this.repo.save(ticket);
|
||||||
|
}
|
||||||
|
|
||||||
async loginQueue(id: string): Promise<QueueOrder> {
|
async loginQueue(id: string): Promise<QueueOrder> {
|
||||||
return this.order.findOneOrFail({
|
return this.order.findOneOrFail({
|
||||||
relations: ['tickets'],
|
relations: ['tickets'],
|
||||||
|
@ -52,6 +56,19 @@ export class TicketDataService extends BaseDataService<QueueTicket> {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async ticketByUser(user: string, phone: string): Promise<QueueTicket> {
|
||||||
|
const start = moment().startOf('day').valueOf();
|
||||||
|
const end = moment().endOf('day').valueOf();
|
||||||
|
|
||||||
|
return this.repo.findOne({
|
||||||
|
where: {
|
||||||
|
customer: user,
|
||||||
|
phone: phone,
|
||||||
|
date: Between(start, end),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
async loginPhone(user: string, phone: string): Promise<QueueOrder> {
|
async loginPhone(user: string, phone: string): Promise<QueueOrder> {
|
||||||
const start = moment().startOf('day').valueOf();
|
const start = moment().startOf('day').valueOf();
|
||||||
const end = moment().endOf('day').valueOf();
|
const end = moment().endOf('day').valueOf();
|
||||||
|
|
|
@ -64,15 +64,29 @@ export class QueueTransactionHandler
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
const ticket: QueueTicket = { ...customerOrder, items };
|
const existTicket = await this.ticketService.ticketByUser(
|
||||||
const order: QueueOrder = { ...customerOrder, tickets: [ticket] };
|
customer_name,
|
||||||
|
customer_phone,
|
||||||
|
);
|
||||||
|
|
||||||
|
const insertTickets = [];
|
||||||
|
if (existTicket) {
|
||||||
|
existTicket.items = items;
|
||||||
|
insertTickets.push(existTicket);
|
||||||
|
await this.ticketService.updateQueueTicket(existTicket);
|
||||||
|
} else {
|
||||||
|
const ticket: QueueTicket = { ...customerOrder, items };
|
||||||
|
const order: QueueOrder = { ...customerOrder, tickets: [ticket] };
|
||||||
|
|
||||||
|
const queueOrder = await this.ticketService.createQueueOrder(order);
|
||||||
|
insertTickets.push(...queueOrder.tickets);
|
||||||
|
}
|
||||||
|
|
||||||
const queueOrder = await this.ticketService.createQueueOrder(order);
|
|
||||||
if (
|
if (
|
||||||
transaction.customer_category?.has_vip_pass ||
|
transaction.customer_category?.has_vip_pass ||
|
||||||
transaction.customer_type === TransactionUserType.VIP
|
transaction.customer_type === TransactionUserType.VIP
|
||||||
) {
|
) {
|
||||||
queueOrder.tickets.forEach((ticket) => {
|
insertTickets.forEach((ticket) => {
|
||||||
const ticket_id = ticket.id;
|
const ticket_id = ticket.id;
|
||||||
ticket.items.forEach((item) => {
|
ticket.items.forEach((item) => {
|
||||||
const item_id = item.item_id;
|
const item_id = item.item_id;
|
||||||
|
|
Loading…
Reference in New Issue