diff --git a/src/dto/order.dto.ts b/src/dto/order.dto.ts index 2fd278d..38ca086 100644 --- a/src/dto/order.dto.ts +++ b/src/dto/order.dto.ts @@ -68,6 +68,10 @@ export class QueryOrderDTO { @Rule(RuleType.string().allow('')) customer_email: string; + @ApiProperty() + @Rule(RuleType.string().allow('')) + billing_phone: string; + @ApiProperty() @Rule(RuleType.string().allow(null)) keyword: string; diff --git a/src/service/order.service.ts b/src/service/order.service.ts index 4873648..ae4deaa 100644 --- a/src/service/order.service.ts +++ b/src/service/order.service.ts @@ -209,6 +209,7 @@ export class OrderService { el => el.key === '_wc_order_attribution_utm_source' )?.value || ''; order.customer_email = order?.billing?.email || order?.shipping?.email; + order.billing_phone = order?.billing?.phone || order?.shipping?.phone; const entity = plainToClass(Order, order); const existingOrder = await this.orderModel.findOne({ where: { externalOrderId: order.externalOrderId, siteId: siteId }, @@ -550,6 +551,7 @@ export class OrderService { pageSize, customer_email, payment_method, + billing_phone, }, userId = undefined) { const parameters: any[] = []; @@ -563,6 +565,7 @@ export class OrderService { o.total as total, o.date_created as date_created, o.customer_email as customer_email, + o.billing_phone as billing_phone, o.transaction_id as transaction_id, o.orderStatus as orderStatus, o.customer_ip_address as customer_ip_address, @@ -670,6 +673,12 @@ export class OrderService { parameters.push(`%${customer_email}%`); } + if (billing_phone) { + sqlQuery += ` AND o.billing_phone LIKE ?`; + totalQuery += ` AND o.billing_phone LIKE ?`; + parameters.push(`%${billing_phone}%`); + } + // 关键字搜索 if (keyword) { sqlQuery += ` @@ -714,6 +723,7 @@ export class OrderService { endDate, keyword, customer_email, + billing_phone, }) { const query = this.orderModel .createQueryBuilder('order') @@ -1228,8 +1238,9 @@ export class OrderService { await this.orderModel.save(order); } + async createOrder(data: Record) { - const { sales, total, billing, customer_email } = data; + const { sales, total, billing, customer_email,billing_phone } = data; const dataSource = this.dataSourceManager.getDataSource('default'); const now = new Date(); return dataSource.transaction(async manager => { @@ -1248,6 +1259,7 @@ export class OrderService { date_paid: now, total, customer_email, + billing_phone, billing, shipping: billing, });