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);
|
||||
}
|
||||
|
||||
async updateQueueTicket(ticket: QueueTicket): Promise<QueueTicketModel> {
|
||||
return await this.repo.save(ticket);
|
||||
}
|
||||
|
||||
async loginQueue(id: string): Promise<QueueOrder> {
|
||||
return this.order.findOneOrFail({
|
||||
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> {
|
||||
const start = moment().startOf('day').valueOf();
|
||||
const end = moment().endOf('day').valueOf();
|
||||
|
|
|
@ -64,15 +64,29 @@ export class QueueTransactionHandler
|
|||
};
|
||||
});
|
||||
|
||||
const existTicket = await this.ticketService.ticketByUser(
|
||||
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);
|
||||
}
|
||||
|
||||
if (
|
||||
transaction.customer_category?.has_vip_pass ||
|
||||
transaction.customer_type === TransactionUserType.VIP
|
||||
) {
|
||||
queueOrder.tickets.forEach((ticket) => {
|
||||
insertTickets.forEach((ticket) => {
|
||||
const ticket_id = ticket.id;
|
||||
ticket.items.forEach((item) => {
|
||||
const item_id = item.item_id;
|
||||
|
|
Loading…
Reference in New Issue