From 10d67047ede6a87bc7fdb80289da237d32786a10 Mon Sep 17 00:00:00 2001 From: zhuotianyuan Date: Tue, 23 Sep 2025 17:15:04 +0800 Subject: [PATCH] =?UTF-8?q?Improvement:=20=E8=AE=A2=E5=8D=95=E6=90=9C?= =?UTF-8?q?=E7=B4=A2=E5=A2=9E=E5=8A=A0=E6=89=8B=E6=9C=BA=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/dto/order.dto.ts | 4 ++++ src/service/order.service.ts | 14 +++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) 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, });