From ae34d1fab0485345cde68e90994413b39cc3cff4 Mon Sep 17 00:00:00 2001 From: zhuotianyuan Date: Fri, 19 Dec 2025 17:28:51 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=97=B6=E6=9C=AA=E9=99=90=E5=88=B6=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E8=8C=83=E5=9B=B4=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改订单同步逻辑,默认只同步最近7天的订单数据 移除站点服务中不必要的字段解构 扩展WP服务getOrders方法支持参数传递 --- src/dto/statistics.dto.ts | 4 ++-- src/service/order.service.ts | 16 +++++++++++++++- src/service/site.service.ts | 2 +- src/service/wp.service.ts | 4 ++-- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/dto/statistics.dto.ts b/src/dto/statistics.dto.ts index b92532e..31e10a8 100644 --- a/src/dto/statistics.dto.ts +++ b/src/dto/statistics.dto.ts @@ -16,8 +16,8 @@ export class OrderStatisticsParams { keyword?: string; @ApiProperty() - @Rule(RuleType.string().allow(null)) - siteId?: string; + @Rule(RuleType.number().allow(null)) + siteId?: number; @ApiProperty({ enum: ['all', 'first_purchase', 'repeat_purchase'], diff --git a/src/service/order.service.ts b/src/service/order.service.ts index d62baf9..ed6fd02 100644 --- a/src/service/order.service.ts +++ b/src/service/order.service.ts @@ -104,7 +104,21 @@ export class OrderService { siteService: SiteService; async syncOrders(siteId: string) { - const orders = await this.wpService.getOrders(siteId); // 调用 WooCommerce API 获取订单 + //TODO: 临时方案,后续记得调整成前端可控制 + const daysRange = 7; + +// 获取当前时间和7天前时间 + const now = new Date(); + const sevenDaysAgo = new Date(); + sevenDaysAgo.setDate(now.getDate() - daysRange); + +// 格式化时间为ISO 8601 + const after = sevenDaysAgo.toISOString(); + const before = now.toISOString(); + const orders = await this.wpService.getOrders(siteId,{ + after: after, + before: before, + }); // 调用 WooCommerce API 获取订单 for (const order of orders) { await this.syncSingleOrder(siteId, order); } diff --git a/src/service/site.service.ts b/src/service/site.service.ts index c5f176b..a53efa5 100644 --- a/src/service/site.service.ts +++ b/src/service/site.service.ts @@ -57,7 +57,7 @@ export class SiteService { if (!site) return null; if (includeSecret) return site; // 默认不返回密钥,进行字段脱敏 - const { consumerKey, consumerSecret, ...rest } = site; + const { ...rest } = site; return rest; } diff --git a/src/service/wp.service.ts b/src/service/wp.service.ts index 443018f..7425252 100644 --- a/src/service/wp.service.ts +++ b/src/service/wp.service.ts @@ -186,10 +186,10 @@ export class WPService { const res = await api.get(`orders/${orderId}`); return res.data as Record; } - async getOrders(siteId: string): Promise[]> { + async getOrders(siteId: string,params: Record = {}): Promise[]> { const site = await this.siteService.get(siteId); const api = this.createApi(site, 'wc/v3'); - return await this.sdkGetAll>(api, 'orders'); + return await this.sdkGetAll>(api, 'orders', params); } /**