查询优化

This commit is contained in:
邓皓元 2019-05-10 16:26:36 +08:00
parent db4e65e8f5
commit 0dccbc380b

View File

@ -6,9 +6,11 @@ use App\Core\Service;
use App\Models\Card\Card;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Request;
use App\Models\Virtual\OrderCardPartition;
use Illuminate\Pagination\LengthAwarePaginator;
use App\Domains\Card\Repositories\CardRepository;
use App\Domains\Virtual\Repositories\OrderCardPartitionRepository;
use App\Models\Virtual\OrderCardPartition;
class CardService extends Service
{
@ -40,15 +42,23 @@ class CardService extends Service
$conditions['type'] = 0;
if (isset($conditions['card_status'])) {
$conditions['sim'] = $this->getSimArrayByCardStatus($conditions['card_status'], $limit);
$res = $this->listByCardStatus($conditions['card_status'], $limit);
$total = $res->total();
$conditions['sim'] = $res->pluck('sim')->toArray();
} else {
$total = $this->orderCardPartitionRepository->withConditions($conditions)->applyConditions()->count();
}
$cards = $this->orderCardPartitionRepository->withConditions($conditions)->applyConditions()->paginate($limit);
$page = Request::get('page');
return static::transformer($cards);
$cards = $this->orderCardPartitionRepository->withConditions($conditions)->applyConditions()->forPage($page, $limit)->get();
$cards = static::transformer($cards);
return new LengthAwarePaginator($cards, $total, $limit);
}
public static function getSimArrayByCardStatus(int $card_status, $limit = 0)
public static function listByCardStatus(int $card_status, $limit = 0)
{
switch ($card_status) {
case 0:
@ -90,7 +100,7 @@ class CardService extends Service
break;
}
return array_pluck($res->items(), 'sim');
return $res;
}
/**