fix: login by new transaction receipt id
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details

pull/116/head 1.3.2-alpha.1
shancheas 2024-12-17 19:27:07 +07:00
parent 54b9658075
commit d612b6725a
1 changed files with 29 additions and 1 deletions

View File

@ -11,6 +11,7 @@ import {
} from '../models/queue.model';
import { QueueOrder } from '../../domain/entities/order.entity';
import * as moment from 'moment';
import { TransactionModel } from 'src/modules/transaction/transaction/data/models/transaction.model';
@Injectable()
export class TicketDataService extends BaseDataService<QueueTicket> {
@ -23,6 +24,9 @@ export class TicketDataService extends BaseDataService<QueueTicket> {
@InjectRepository(QueueItemModel, CONNECTION_NAME.DEFAULT)
private item: Repository<QueueItemModel>,
@InjectRepository(TransactionModel, CONNECTION_NAME.DEFAULT)
private transaction: Repository<TransactionModel>,
) {
super(repo);
}
@ -36,13 +40,37 @@ export class TicketDataService extends BaseDataService<QueueTicket> {
}
async loginQueue(id: string): Promise<QueueOrder> {
return this.order.findOneOrFail({
const order = await this.order.findOne({
relations: ['tickets'],
where: [
{ transaction_id: id },
{ code: id, transaction_id: Not(IsNull()) },
],
});
if (!order) {
const { customer_name, customer_phone } =
await this.transaction.findOneOrFail({
where: {
id,
},
});
const start = moment().startOf('day').valueOf();
const end = moment().endOf('day').valueOf();
const order = this.order.findOneOrFail({
relations: ['tickets'],
where: {
customer: customer_name,
phone: customer_phone,
date: Between(start, end),
},
});
return order;
}
return order;
}
async ticketByCode(code: string): Promise<QueueTicketModel[]> {