Browse Source

商户当面付、线上订单列表

master
weigang 5 years ago
parent
commit
8b4e4b575d
  1. 122
      app/Service/v3/Implementations/OrderListService.php

122
app/Service/v3/Implementations/OrderListService.php

@ -9,6 +9,7 @@ use App\Model\v3\Order;
use App\Service\v3\Interfaces\BadgeServiceInterface; use App\Service\v3\Interfaces\BadgeServiceInterface;
use App\Service\v3\Interfaces\OrderListServiceInterface; use App\Service\v3\Interfaces\OrderListServiceInterface;
use Hyperf\Di\Annotation\Inject; use Hyperf\Di\Annotation\Inject;
use Hyperf\Utils\ApplicationContext;
class OrderListService implements OrderListServiceInterface class OrderListService implements OrderListServiceInterface
{ {
@ -67,74 +68,75 @@ class OrderListService implements OrderListServiceInterface
public function onlineByStore($storeId, $tab, $page=1, $pagesize=10) public function onlineByStore($storeId, $tab, $page=1, $pagesize=10)
{ {
$builder = Order::join('lanzu_order_main','lanzu_order.order_main_id','lanzu_order_main.global_order_id')
->select(
'lanzu_order.*',
'lanzu_order_main.state',
'lanzu_order_main.address',
'lanzu_order_main.name',
'lanzu_order_main.delivery_time_note',
'lanzu_order_main.shipping_type',
'lanzu_order_main.global_order_id',
'lanzu_order_main.lat',
'lanzu_order_main.lng'
)
->with('orderGoods')
->where('lanzu_order.store_id', $storeId)
->where('lanzu_order_main.type',1);
$sw = [
'all'=>'',
'completed'=> OrderState::FINISH,
'unpaid'=> OrderState::UNPAID,
'receiving' => OrderState::RECEIVING,
'refund' => OrderState::REFUND
];
// $builder = Order::join('lanzu_order_main','lanzu_order.order_main_id','lanzu_order_main.global_order_id')
// ->select(
// 'lanzu_order.*',
// 'lanzu_order_main.state',
// 'lanzu_order_main.address',
// 'lanzu_order_main.name',
// 'lanzu_order_main.delivery_time_note',
// 'lanzu_order_main.shipping_type',
// 'lanzu_order_main.global_order_id',
// 'lanzu_order_main.lat',
// 'lanzu_order_main.lng'
// )
// ->with('orderGoods')
// ->where('lanzu_order.store_id', $storeId)
// ->where('lanzu_order_main.type',1);
$mainTable = ApplicationContext::getContainer()->get(OrderMain::class)->getTable();
$childTable = ApplicationContext::getContainer()->get(Order::class)->getTable();
$builder = Order::query()
->select(''.$childTable.'.*')
->join($mainTable, ''.$childTable.'.order_main_id', '=', ''.$mainTable.'.global_order_id')
->with(['orderMain', 'orderGoods'])
->where(['store_id' => $storeId, ''.$mainTable.'.type' => OrderType::ONLINE]);
switch ($tab) { switch ($tab) {
case 'all': case 'all':
break; break;
case 'paid': case 'paid':
$builder->where('lanzu_order_main.state', OrderState::PAID);
$builder->where(''.$mainTable.'.state', OrderState::PAID);
break; break;
case 'delivery': case 'delivery':
$builder->where(['lanzu_order_main.state' => OrderState::DELIVERY]);
$builder->where([''.$mainTable.'.state' => OrderState::DELIVERY]);
break; break;
case 'finish': case 'finish':
$builder->whereIn('lanzu_order_main.state', OrderState::FINISH);
$builder->whereIn(''.$mainTable.'.state', OrderState::FINISH);
break; break;
case 'refund': case 'refund':
$builder->whereIn('lanzu_order_main.state', OrderState::REFUND);
$builder->whereIn(''.$mainTable.'.state', OrderState::REFUND);
break; break;
} }
$paginate = $builder->orderBy('lanzu_order_main.created_at', 'desc')->paginate($pagesize);
$paginate = $builder->orderBy(''.$mainTable.'.created_at', 'desc')->paginate($pagesize);
$orders = $paginate->toArray(); $orders = $paginate->toArray();
$stateTxet = [
OrderState::UNPAID => '待付款',
OrderState::PAID => '待接单',
OrderState::DELIVERY => '待送达',
OrderState::COMPLETED => '已完成',
OrderState::EVALUATED => '已评价',
OrderState::CANCELED => '已取消',
OrderState::REJECTION => '已拒单',
OrderState::REFUNDING => '退款中',
OrderState::REFUNDED => '已退款',
OrderState::REFUND_REFUSE => '拒绝退款'
];
// $stateTxet = [
// OrderState::UNPAID => '待付款',
// OrderState::PAID => '待接单',
// OrderState::DELIVERY => '待送达',
// OrderState::COMPLETED => '已完成',
// OrderState::EVALUATED => '已评价',
// OrderState::CANCELED => '已取消',
// OrderState::REJECTION => '已拒单',
// OrderState::REFUNDING => '退款中',
// OrderState::REFUNDED => '已退款',
// OrderState::REFUND_REFUSE => '拒绝退款'
// ];
$res = ['has_more_pages' => $paginate->hasMorePages(), 'orders' => $orders['data']]; $res = ['has_more_pages' => $paginate->hasMorePages(), 'orders' => $orders['data']];
foreach ($res['orders'] as &$v){
switch ($v['shipping_type']) {
case 1:
$v['delivery_text'] = '服务站配送';
break;
case 2:
$v['delivery_text'] = '达达配送';
break;
}
$v['state_text'] = $stateTxet[$v['state']];
}
// foreach ($res['orders'] as &$v){
// switch ($v['shipping_type']) {
// case 1:
// $v['delivery_text'] = '服务站配送';
// break;
// case 2:
// $v['delivery_text'] = '达达配送';
// break;
// }
// $v['state_text'] = $stateTxet[$v['state']];
// }
$this->badgeService->clearStoreOrder($storeId, $tab); $this->badgeService->clearStoreOrder($storeId, $tab);
@ -143,16 +145,24 @@ class OrderListService implements OrderListServiceInterface
public function offlineByStore($storeId, $page=1, $pagesize=10 ,$start_time = '',$end_time = '') public function offlineByStore($storeId, $page=1, $pagesize=10 ,$start_time = '',$end_time = '')
{ {
$builder = Order::join('lanzu_order_main','lanzu_order.order_main_id','lanzu_order_main.global_order_id')
->where('store_id', $storeId)
->where('lanzu_order_main.type',4)
// $builder = Order::join('lanzu_order_main','lanzu_order.order_main_id','lanzu_order_main.global_order_id')
// ->where('store_id', $storeId)
// ->where('lanzu_order_main.type',4)
// ->with('user');
$mainTable = ApplicationContext::getContainer()->get(OrderMain::class)->getTable();
$childTable = ApplicationContext::getContainer()->get(Order::class)->getTable();
$builder = OrderMain::query()
->select(''.$mainTable.'.*', ''.$childTable.'.order_num')
->join($childTable, ''.$childTable.'.order_main_id', '=', ''.$mainTable.'.global_order_id')
->where([''.$childTable.'.store_id' => $storeId, ''.$mainTable.'.type' => OrderType::OFFLINE])
->with('user'); ->with('user');
if(!empty($start_time) && !empty($end_time)){ if(!empty($start_time) && !empty($end_time)){
$builder->whereBetween('lanzu_order_main.created_at',[strtotime($start_time.' 00:00:00'),strtotime($end_time.' 23:59:59')]);
$builder->whereBetween(''.$mainTable.'.created_at',[strtotime($start_time.' 00:00:00'),strtotime($end_time.' 23:59:59')]);
} }
$paginate = $builder->orderBy('lanzu_order_main.created_at', 'desc')->paginate($pagesize);
$paginate = $builder->orderBy(''.$mainTable.'.created_at', 'desc')->paginate($pagesize);
$orders = $paginate->toArray(); $orders = $paginate->toArray();
return ['has_more_pages' => $paginate->hasMorePages(), 'orders' => $orders['data']]; return ['has_more_pages' => $paginate->hasMorePages(), 'orders' => $orders['data']];
} }

Loading…
Cancel
Save