46 lines
1.5 KiB
PHP
46 lines
1.5 KiB
PHP
<?php
|
|
namespace App\Domains\Company\Http\Controllers;
|
|
|
|
use App\Core\Controller;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Carbon;
|
|
use App\Domains\Virtual\Repositories\OrderCardPartitionRepository;
|
|
|
|
class CardController extends Controller
|
|
{
|
|
protected $request;
|
|
protected $account;
|
|
protected $orderCardPartitionRepository;
|
|
|
|
/**
|
|
* 构造函数,自动注入.
|
|
*/
|
|
public function __construct(Request $request, OrderCardPartitionRepository $orderCardPartitionRepository)
|
|
{
|
|
$this->request = $request;
|
|
$this->account = $request->user('company');
|
|
$this->orderCardPartitionRepository = $orderCardPartitionRepository;
|
|
}
|
|
|
|
/**
|
|
* 订单列表
|
|
*/
|
|
public function index()
|
|
{
|
|
$conditions = $this->request->all();
|
|
$conditions['company_id'] = $this->account->company_id;
|
|
$conditions['type'] = [0, 1];
|
|
$limit = $conditions['limit'] ?? 20;
|
|
|
|
$cards = $this->orderCardPartitionRepository->selectRaw('distinct on (sim) sim')->withConditions($conditions)->paginate($limit);
|
|
|
|
$services = $this->orderCardPartitionRepository->select('MIN(service_start_at),MAX(service_end_at)')
|
|
->withConditions(['sim' => $cards->pluck('sim')->toArray()])->groupBy('sim')->get();
|
|
|
|
$time = Carbon::now()->format('Y-m-d H:i:s');
|
|
|
|
$packages = $this->orderCardPartitionRepository->selectRaw('distinct on (sim) package_id')
|
|
->where('service_start_at', '<=', $time);
|
|
}
|
|
}
|