|
|
@ -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']]; |
|
|
} |
|
|
} |
|
|
|