From e657578ef122c8a6a4d60123cf8a4d6a709588de Mon Sep 17 00:00:00 2001 From: tikkhun Date: Fri, 30 Jan 2026 16:34:48 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix(service):=20=E4=BF=AE=E6=94=B9=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E6=9C=8D=E5=8A=A1=E4=B8=AD=E7=9A=84=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将默认排序从 orders ASC 改为 orders DESC 以符合业务需求 --- src/service/customer.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/service/customer.service.ts b/src/service/customer.service.ts index 8c1a299..908f69a 100644 --- a/src/service/customer.service.ts +++ b/src/service/customer.service.ts @@ -283,7 +283,7 @@ export class CustomerService { orderByClause = `ORDER BY ${orderClauses.join(', ')}`; } } else { - orderByClause = 'ORDER BY orders ASC, yoone_total DESC'; + orderByClause = 'ORDER BY orders DESC, yoone_total DESC'; } // 主查询 -- 2.40.1 From 2b66970cc31146fca3f2b803fb913084109c620d Mon Sep 17 00:00:00 2001 From: tikkhun Date: Fri, 30 Jan 2026 19:06:33 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=E4=BF=AE=E6=AD=A3=E6=97=A5=E6=9C=9F?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E7=B1=BB=E5=9E=8B=E5=8F=8A=E5=A4=84=E7=90=86?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将woocommerce.dto.ts中的date_shipped字段类型从number改为string 统一各适配器中的日期处理逻辑,使用dayjs进行标准化转换 移除order.service.ts中冗余的日期转换代码 --- src/adapter/shopyy.adapter.ts | 17 ++++++++--------- src/adapter/woocommerce.adapter.ts | 2 +- src/dto/woocommerce.dto.ts | 2 +- src/service/order.service.ts | 7 ------- 4 files changed, 10 insertions(+), 18 deletions(-) diff --git a/src/adapter/shopyy.adapter.ts b/src/adapter/shopyy.adapter.ts index e3e0bda..3b6a4df 100644 --- a/src/adapter/shopyy.adapter.ts +++ b/src/adapter/shopyy.adapter.ts @@ -388,15 +388,14 @@ export class ShopyyAdapter implements ISiteAdapter { item.last_modified || (typeof item.updated_at === 'string' ? item.updated_at : ''), fulfillment_status, - fulfillments: item.fulfillments?.map?.((f) => ({ - id: f.id, - tracking_number: f.tracking_number || '', - shipping_provider: f.tracking_company || '', - shipping_method: f.tracking_company || '', - - date_created: typeof f.created_at === 'number' - ? new Date(f.created_at * 1000).toISOString() - : f.created_at || '', + fulfillments: item.fulfillments?.map?.((fulfillment) => ({ + id: fulfillment.id, + tracking_number: fulfillment.tracking_number || '', + shipping_provider: fulfillment.tracking_company || '', + shipping_method: fulfillment.tracking_company || '', + date_created: typeof fulfillment.created_at === 'number' + ? dayjs(fulfillment.created_at * 1000).toISOString() + : dayjs(fulfillment.created_at || '').toISOString(), // status: f.payment_tracking_status })) || [], raw: item, diff --git a/src/adapter/woocommerce.adapter.ts b/src/adapter/woocommerce.adapter.ts index c37ab3c..7faaff7 100644 --- a/src/adapter/woocommerce.adapter.ts +++ b/src/adapter/woocommerce.adapter.ts @@ -407,7 +407,7 @@ export class WooCommerceAdapter implements ISiteAdapter { tracking_number: track.tracking_number, tracking_product_code: track.tracking_product_code, shipping_provider: track.tracking_provider, - date_created: dayjs(track.date_shipped).toString(), + date_created: dayjs(Number(track.date_shipped)*1000).toISOString(), }) }); diff --git a/src/dto/woocommerce.dto.ts b/src/dto/woocommerce.dto.ts index 8fe99b1..e6faa11 100644 --- a/src/dto/woocommerce.dto.ts +++ b/src/dto/woocommerce.dto.ts @@ -373,7 +373,7 @@ export interface WooOrder { export interface MetaDataFulfillment { custom_tracking_link: string; custom_tracking_provider: string; - date_shipped: number; + date_shipped: string; source: string; status_shipped: string; tracking_id: string; diff --git a/src/service/order.service.ts b/src/service/order.service.ts index fb3baf1..7ce49da 100644 --- a/src/service/order.service.ts +++ b/src/service/order.service.ts @@ -1055,13 +1055,6 @@ export class OrderService { // 删除原始 ID delete item.id; - // 转换时间戳为日期格式 - if (item.date_created && typeof item.date_created === 'number') { - item.date_created = new Date(item.date_created * 1000); - } else if (item.date_created && typeof item.date_created === 'string') { - item.date_created = new Date(item.date_created); - } - // 创建履约实体 const fulfillment = plainToClass(OrderFulfillment, item); -- 2.40.1