You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
3.9 KiB
126 lines
3.9 KiB
<?php
|
|
|
|
namespace App\Service\v3\Implementations;
|
|
|
|
use App\Constants\v3\OrderState;
|
|
use App\Model\v3\OrderMain;
|
|
use App\Model\v3\Order;
|
|
use App\Service\v3\Interfaces\OrderListServiceInterface;
|
|
use Hyperf\Paginator\Paginator;
|
|
|
|
class OrderListService implements OrderListServiceInterface
|
|
{
|
|
|
|
public function do()
|
|
{
|
|
// TODO: Implement do() method.
|
|
}
|
|
|
|
public function check()
|
|
{
|
|
// TODO: Implement check() method.
|
|
}
|
|
|
|
public function undo()
|
|
{
|
|
// TODO: Implement undo() method.
|
|
}
|
|
|
|
public function onlineByUser($userId, $tab, $page=1, $pagesize=10)
|
|
{
|
|
$builder = OrderMain::query()
|
|
->with(['orderGoods', 'market'])
|
|
->where([
|
|
['user_id','=',$userId],
|
|
['type','=',1]
|
|
]);
|
|
switch ($tab) {
|
|
case 'all':
|
|
break;
|
|
case 'completed':
|
|
$builder->whereIn('state', OrderState::FINISH);
|
|
break;
|
|
case 'unpaid':
|
|
$builder->where(['state' => OrderState::UNPAID]);
|
|
break;
|
|
case 'receiving':
|
|
$builder->whereIn('state', OrderState::RECEIVING);
|
|
break;
|
|
case 'refund':
|
|
$builder->whereIn('state', OrderState::REFUND);
|
|
break;
|
|
}
|
|
|
|
$paginate = $builder->paginate($pagesize);
|
|
$orders = $paginate->toArray();
|
|
return ['has_more_pages' => $paginate->hasMorePages(), 'orders' => $orders['data']];
|
|
}
|
|
|
|
public function onlineByStore($storeId, $tab, $page=1, $pagesize=10)
|
|
{
|
|
$builder = OrderMain::query()
|
|
->select('id','global_order_id', 'money', 'state', 'market_id', 'created_at')
|
|
->with(['orders' => function($query) use ($storeId) {
|
|
$query->where('store_id',$storeId)->with('orderGoods');
|
|
}])
|
|
->where([
|
|
'type' => 1
|
|
]);
|
|
switch ($tab) {
|
|
case 'all':
|
|
break;
|
|
case 'completed':
|
|
$builder->whereIn('state', OrderState::FINISH);
|
|
break;
|
|
case 'unpaid':
|
|
$builder->where(['state' => OrderState::UNPAID]);
|
|
break;
|
|
case 'receiving':
|
|
$builder->whereIn('state', OrderState::RECEIVING);
|
|
break;
|
|
case 'refund':
|
|
$builder->whereIn('state', OrderState::REFUND);
|
|
break;
|
|
}
|
|
|
|
$paginate = $builder->paginate($pagesize);
|
|
$orders = $paginate->toArray();
|
|
return ['has_more_pages' => $paginate->hasMorePages(), 'orders' => $orders['data']];
|
|
}
|
|
|
|
public function offlineByStore($storeId, $tab, $page=1, $pagesize=10)
|
|
{
|
|
$builder = Order::Join('lanzu_order_main','lanzu_order.order_main_id','lanzu_order_main.id')
|
|
->where('store_id', $storeId)
|
|
->where('lanzu_order_main.type',4)
|
|
->with('user');
|
|
|
|
$sw = [
|
|
'all'=>'',
|
|
'completed'=> OrderState::FINISH,
|
|
'unpaid'=> OrderState::UNPAID,
|
|
'receiving' => OrderState::RECEIVING,
|
|
'refund' => OrderState::REFUND
|
|
];
|
|
switch ($tab) {
|
|
case 'all':
|
|
break;
|
|
case 'completed':
|
|
$builder->whereIn('state', OrderState::FINISH);
|
|
break;
|
|
case 'unpaid':
|
|
$builder->where(['state' => OrderState::UNPAID]);
|
|
break;
|
|
case 'receiving':
|
|
$builder->whereIn('state', OrderState::RECEIVING);
|
|
break;
|
|
case 'refund':
|
|
$builder->whereIn('state', OrderState::REFUND);
|
|
break;
|
|
}
|
|
|
|
$paginate = $builder->paginate($pagesize);
|
|
$orders = $paginate->toArray();
|
|
return ['has_more_pages' => $paginate->hasMorePages(), 'orders' => $orders['data']];
|
|
}
|
|
}
|