From ddd662b3b6fddf964e8891b4f08066b5135e5b3b Mon Sep 17 00:00:00 2001 From: morteza-mortezai Date: Fri, 31 Oct 2025 17:36:12 +0330 Subject: [PATCH] add: order status in orders get --- src/common/types/query.type.ts | 1 + .../admin/controllers/order.controller.ts | 16 ++++++++++++++-- src/modules/order/order.repository.ts | 7 +++++-- src/modules/seller/seller.controller.ts | 8 +++++++- 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/src/common/types/query.type.ts b/src/common/types/query.type.ts index 36e240c..ace4d42 100644 --- a/src/common/types/query.type.ts +++ b/src/common/types/query.type.ts @@ -51,6 +51,7 @@ export type SellerOrdersQueries = { limit: number; shipperId: string; status: string; + paymentStatus: string; since: number; maxPrice: number; minPrice: number; diff --git a/src/modules/admin/controllers/order.controller.ts b/src/modules/admin/controllers/order.controller.ts index fbf0787..1696746 100644 --- a/src/modules/admin/controllers/order.controller.ts +++ b/src/modules/admin/controllers/order.controller.ts @@ -159,7 +159,11 @@ export class AdminOrderController extends BaseController { @ApiQuery("limit", "the limit of return data") @ApiQuery("page", "the page want to get") @ApiQuery("shipperId", "shipper id") - @ApiQuery("status", "status of payment ==> value = Completed | Cancelled | Pending ") + @ApiQuery( + "status", + "status of payment ==> value = wait_payment | process_by_sellers | shipped | cancelled_system | cancelled | Delivered", + ) + @ApiQuery("paymentStatus", "status of order ==> value = Completed | Cancelled | Pending ") @ApiQuery( "since", "time of order created ==> value should be standard timestamp since that time user want like == > Date.now() - (7 * 24 * 60 * 60 * 1000) ==> this mean from a week ago till now ", @@ -174,6 +178,7 @@ export class AdminOrderController extends BaseController { @queryParam("page") page: string, @queryParam("shipperId") shipperId: string, @queryParam("status") status: string, + @queryParam("paymentStatus") paymentStatus: string, @queryParam("since") since: string, @queryParam("maxPrice") maxPrice: string, @queryParam("minPrice") minPrice: string, @@ -183,6 +188,7 @@ export class AdminOrderController extends BaseController { page: parseInt(page), shipperId, status, + paymentStatus, since: +since, maxPrice: +maxPrice, minPrice: +minPrice, @@ -198,7 +204,11 @@ export class AdminOrderController extends BaseController { @ApiQuery("limit", "the limit of return data") @ApiQuery("page", "the page want to get") @ApiQuery("shipperId", "shipper id") - @ApiQuery("status", "status of payment ==> value = Completed | Cancelled | Pending ") + @ApiQuery( + "status", + "status of payment ==> value = wait_payment | process_by_sellers | shipped | cancelled_system | cancelled | Delivered", + ) + @ApiQuery("paymentStatus", "status of order ==> value = Completed | Cancelled | Pending ") @ApiQuery( "since", "time of order created ==> value should be standard timestamp since that time user want like == > Date.now() - (7 * 24 * 60 * 60 * 1000) ==> this mean from a week ago till now ", @@ -212,6 +222,7 @@ export class AdminOrderController extends BaseController { @queryParam("page") page: string, @queryParam("shipperId") shipperId: string, @queryParam("status") status: string, + @queryParam("paymentStatus") paymentStatus: string, @queryParam("since") since: string, @queryParam("maxPrice") maxPrice: string, @queryParam("minPrice") minPrice: string, @@ -221,6 +232,7 @@ export class AdminOrderController extends BaseController { page: parseInt(page), shipperId, status, + paymentStatus, since: +since, maxPrice: +maxPrice, minPrice: +minPrice, diff --git a/src/modules/order/order.repository.ts b/src/modules/order/order.repository.ts index bc25d33..b2ef8fd 100644 --- a/src/modules/order/order.repository.ts +++ b/src/modules/order/order.repository.ts @@ -768,7 +768,10 @@ class OrderItemRepo extends BaseRepository { { $match: { ...(queries.status && { - "order.payment.paymentStatus": queries.status, + "order.orderStatus": queries.status, + }), + ...(queries.paymentStatus && { + "order.payment.paymentStatus": queries.paymentStatus, }), ...(queries.shipperId && { shipper: +queries.shipperId, @@ -882,7 +885,7 @@ class OrderItemRepo extends BaseRepository { }, { $sort: { - "order.createdAt": -1, + createdAt: -1, }, }, { diff --git a/src/modules/seller/seller.controller.ts b/src/modules/seller/seller.controller.ts index 30ec2b0..69fe27e 100644 --- a/src/modules/seller/seller.controller.ts +++ b/src/modules/seller/seller.controller.ts @@ -75,7 +75,11 @@ class SellerController extends BaseController { @ApiQuery("limit", "the limit of return data") @ApiQuery("page", "the page want to get") @ApiQuery("shipperId", "shipper id") - @ApiQuery("status", "status of payment ==> value = Completed | Cancelled | Pending ") + @ApiQuery( + "status", + "status of payment ==> value = wait_payment | process_by_sellers | shipped | cancelled_system | cancelled | Delivered", + ) + @ApiQuery("paymentStatus", "status of order ==> value = Completed | Cancelled | Pending ") @ApiQuery( "since", "time of order created ==> value should be standard timestamp since that time user want like == > Date.now() - (7 * 24 * 60 * 60 * 1000) ==> this mean from a week ago till now ", @@ -91,6 +95,7 @@ class SellerController extends BaseController { @queryParam("page") page: string, @queryParam("shipperId") shipperId: string, @queryParam("status") status: string, + @queryParam("paymentStatus") paymentStatus: string, @queryParam("since") since: string, @queryParam("maxPrice") maxPrice: string, @queryParam("minPrice") minPrice: string, @@ -101,6 +106,7 @@ class SellerController extends BaseController { page: parseInt(page), shipperId, status, + paymentStatus, since: +since, maxPrice: +maxPrice, minPrice: +minPrice,