Browse Source

分页和状态处理冲突

master
weigang 5 years ago
parent
commit
a70d124e4c
  1. 4
      app/Controller/v3/OrderListController.php
  2. 1
      app/Request/v3/UserOrderListRequest.php
  3. 18
      app/Service/v3/Implementations/OrderListService.php
  4. 4
      app/Service/v3/Interfaces/OrderListServiceInterface.php

4
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);
}

1
app/Request/v3/UserOrderListRequest.php

@ -19,6 +19,7 @@ class UserOrderListRequest extends BaseFormRequest
'tab' => '',
'page' => 'required|nonempty',
'pagesize' => 'required|nonempty',
'last_id' => ''
];
}

18
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 = [

4
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);
}
Loading…
Cancel
Save