diff --git a/app/Service/v3/Implementations/OrderListService.php b/app/Service/v3/Implementations/OrderListService.php index a65e6eb..1ed2b75 100644 --- a/app/Service/v3/Implementations/OrderListService.php +++ b/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\OrderListServiceInterface; use Hyperf\Di\Annotation\Inject; +use Hyperf\Utils\ApplicationContext; class OrderListService implements OrderListServiceInterface { @@ -67,74 +68,75 @@ class OrderListService implements OrderListServiceInterface 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) { case 'all': break; case 'paid': - $builder->where('lanzu_order_main.state', OrderState::PAID); + $builder->where(''.$mainTable.'.state', OrderState::PAID); break; case 'delivery': - $builder->where(['lanzu_order_main.state' => OrderState::DELIVERY]); + $builder->where([''.$mainTable.'.state' => OrderState::DELIVERY]); break; case 'finish': - $builder->whereIn('lanzu_order_main.state', OrderState::FINISH); + $builder->whereIn(''.$mainTable.'.state', OrderState::FINISH); break; case 'refund': - $builder->whereIn('lanzu_order_main.state', OrderState::REFUND); + $builder->whereIn(''.$mainTable.'.state', OrderState::REFUND); break; } - $paginate = $builder->orderBy('lanzu_order_main.created_at', 'desc')->paginate($pagesize); + $paginate = $builder->orderBy(''.$mainTable.'.created_at', 'desc')->paginate($pagesize); $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']]; - 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); @@ -143,16 +145,24 @@ class OrderListService implements OrderListServiceInterface 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'); 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(); return ['has_more_pages' => $paginate->hasMorePages(), 'orders' => $orders['data']]; }