From a70d124e4c1a493d205aecefa738377a54e5a9f4 Mon Sep 17 00:00:00 2001 From: weigang Date: Mon, 9 Nov 2020 11:07:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E9=A1=B5=E5=92=8C=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E5=A4=84=E7=90=86=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/v3/OrderListController.php | 4 ++-- app/Request/v3/UserOrderListRequest.php | 1 + .../v3/Implementations/OrderListService.php | 18 ++++++++++++++---- .../Interfaces/OrderListServiceInterface.php | 4 ++-- 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/app/Controller/v3/OrderListController.php b/app/Controller/v3/OrderListController.php index 1a7f0d9..2afa802 100644 --- a/app/Controller/v3/OrderListController.php +++ b/app/Controller/v3/OrderListController.php @@ -34,14 +34,14 @@ class OrderListController extends BaseController public function onlineForUser(UserOrderListRequest $request) { $params = $request->validated(); - $list = $this->orderListService->onlineByUser($params['user_id'], $params['tab'], $params['page'], $params['pagesize']); + $list = $this->orderListService->onlineByUser($params['user_id'], $params['tab'], $params['page'], $params['pagesize'], $params['last_id']); return $this->success($list); } public function onlineForStore() { $params = $this->request->all(); - $list = $this->orderListService->onlineByStore($params['store_id'], $params['tab'], $params['page'], $params['pagesize']); + $list = $this->orderListService->onlineByStore($params['store_id'], $params['tab'], $params['page'], $params['pagesize'], $params['last_id']); return $this->success($list); } diff --git a/app/Request/v3/UserOrderListRequest.php b/app/Request/v3/UserOrderListRequest.php index 3ac1eae..c7823a1 100644 --- a/app/Request/v3/UserOrderListRequest.php +++ b/app/Request/v3/UserOrderListRequest.php @@ -19,6 +19,7 @@ class UserOrderListRequest extends BaseFormRequest 'tab' => '', 'page' => 'required|nonempty', 'pagesize' => 'required|nonempty', + 'last_id' => '' ]; } diff --git a/app/Service/v3/Implementations/OrderListService.php b/app/Service/v3/Implementations/OrderListService.php index be1ab0f..8c8b414 100644 --- a/app/Service/v3/Implementations/OrderListService.php +++ b/app/Service/v3/Implementations/OrderListService.php @@ -42,12 +42,17 @@ class OrderListService implements OrderListServiceInterface // TODO: Implement undo() method. } - public function onlineByUser($userId, $tab, $page=1, $pagesize=10) + public function onlineByUser($userId, $tab, $page=1, $pagesize=10, $lastId=0) { $builder = OrderMain::query() ->with(['orderGoods', 'market','employees']) ->where(['user_id' => $userId, 'type' => OrderType::ONLINE]); + + if ($lastId) { + $builder = $builder->where('id', '<', $lastId); + } + switch ($tab) { case 'all': break; @@ -68,12 +73,12 @@ class OrderListService implements OrderListServiceInterface // 清除badge $this->badgeService->clearUserOrder($userId, $tab); - $paginate = $builder->orderBy('created_at', 'desc')->paginate($pagesize); + $paginate = $builder->orderBy('created_at', 'desc')->paginate($pagesize, ['*'], 'page', 1); $orders = $paginate->toArray(); return ['has_more_pages' => $paginate->hasMorePages(), 'orders' => $orders['data'], 'note' => '待付款订单10分钟后将自动取消,请尽快支付!']; } - public function onlineByStore($storeId, $tab, $page=1, $pagesize=10) + public function onlineByStore($storeId, $tab, $page=1, $pagesize=10, $lastId=0) { // $builder = Order::join('lanzu_order_main','lanzu_order.order_main_id','lanzu_order_main.global_order_id') // ->select( @@ -99,6 +104,11 @@ class OrderListService implements OrderListServiceInterface ->with(['orderMain', 'orderGoods']) ->where(['store_id' => $storeId, ''.$mainTable.'.type' => OrderType::ONLINE]) ->whereNull($mainTable.'.deleted_at'); + + if ($lastId) { + $builder = $builder->where('id', '<', $lastId); + } + switch ($tab) { case 'all': break; @@ -116,7 +126,7 @@ class OrderListService implements OrderListServiceInterface break; } - $paginate = $builder->orderBy(''.$mainTable.'.created_at', 'desc')->paginate($pagesize); + $paginate = $builder->orderBy(''.$mainTable.'.created_at', 'desc')->paginate($pagesize, ['*'], 'page', 1); $orders = $paginate->toArray(); // $stateTxet = [ diff --git a/app/Service/v3/Interfaces/OrderListServiceInterface.php b/app/Service/v3/Interfaces/OrderListServiceInterface.php index 0855d42..2f0bfe8 100644 --- a/app/Service/v3/Interfaces/OrderListServiceInterface.php +++ b/app/Service/v3/Interfaces/OrderListServiceInterface.php @@ -7,8 +7,8 @@ interface OrderListServiceInterface public function do(); public function check(); public function undo(); - public function onlineByUser($userId, $tab, $page=1, $pagesize=10); - public function onlineByStore($storeId, $tab, $page, $pagesize); + public function onlineByUser($userId, $tab, $page=1, $pagesize=10, $lastId=0); + public function onlineByStore($storeId, $tab, $page, $pagesize, $lastId=0); public function offlineByStore($storeId, $page, $pagesize,$startTime = '',$endTime = ''); public function offlineByUser($userId, $page=1, $pagesize=10); } \ No newline at end of file