加快load速度

This commit is contained in:
邓皓元 2019-03-29 11:25:11 +08:00
parent 0127e44de5
commit d3711a5010
3 changed files with 23 additions and 18 deletions

View File

@ -92,10 +92,10 @@ class OrderController extends Controller
$orderStatues = $dicts->get('order_status');
$transactionStatuses = $dicts->get('company_transaction_status');
$order->package = PackageService::load($order->package_id);
$package = PackageService::load($order->package_id);
$order->pay_channel = CommonService::namePayChannel($order->pay_channel);
$order->carrier_operator = $carrierOperators[$order->package->carrier_operator];
$order->carrier_operator = $carrierOperators[$package['carrier_operator']];
$order->order_status = $order->order_status;
$order->order_status_name = $orderStatues[$order->order_status];
$order->transaction_status = $order->transaction_status;

View File

@ -89,13 +89,13 @@ class OrderService extends Service
Log::info('1', [microtime(true)]);
$cards = $this->orderCardPartitionRepository->withVirtual($conditions)->currentModel()->get();
$cards = $this->orderCardPartitionRepository->withVirtual($conditions)->currentModel()->get()->toArray();
Log::info('2', [microtime(true)]);
$tmpCards = $cards->groupBy('virtual_order_id');
$tmpCards = array_groupBy($cards, 'virtual_order_id');
$orderIds = $tmpCards->keys()->unique()->toArray();
$orderIds = array_unique(array_keys($tmpCards));
$key = array_search(0, $orderIds);
@ -108,28 +108,33 @@ class OrderService extends Service
$virtualOrders = [];
// 有订单的从订单中读取公司和套餐
if (!empty($orderIds)) {
$virtualOrders = app(VirtualOrderRepository::class)->withConditions(['id' => $orderIds])->get()->keyBy('id');
$virtualOrders = app(VirtualOrderRepository::class)->withConditions(['id' => $orderIds])->get()->keyBy('id')->toArray();
}
Log::info('4', [microtime(true)]);
foreach ($cards as &$item) {
$item->sim = (string)$item->sim;
$item->company_id = $item->company_id ?? 0;
$item->package_id = $item->package_id ?? 0;
$companyService = app(CompanyService::class);
$packageService = app(PackageService::class);
if ($item->virtual_order_id) {
$virtual = $virtualOrders[$item->virtual_order_id];
$item->company_id = $virtual['company_id'];
$item->package_id = $virtual['package_id'];
foreach ($cards as &$item) {
$item['sim'] = (string)$item['sim'];
$item['company_id'] = $item['company_id'] ?? 0;
$item['package_id'] = $item['package_id'] ?? 0;
if ($item['virtual_order_id']) {
$virtual = $virtualOrders[$item['virtual_order_id']];
$item['company_id'] = $virtual['company_id'];
$item['package_id'] = $virtual['package_id'];
}
$item->company_name = !$item->company_id ? '' : CompanyService::load($item->company_id)['name'] ?? '';
$item->package_name = !$item->package_id ? '' : PackageService::load($item->package_id)['name'] ?? '';
$item['company_name'] = !$item['company_id'] ? '' : $companyService->load($item['company_id'])['name'] ?? '';
$item['package_name'] = !$item['package_id'] ? '' : $packageService->load($item['package_id'])['name'] ?? '';
}
Log::info('5', [microtime(true)]);
return $cards->sortBy('sim')->sortBy('order_id')->values();
return array_values(array_sort($cards, function ($value) {
return $value['order_id'] . '-' . $value['sim'];
}));
}
}

View File

@ -112,7 +112,7 @@ class CompanyService extends Service
public static function load($id)
{
if (!self::$companies) {
self::$companies = app(CompanyRepository::class)->select(['id', 'name', 'status'])->withTrashed()->get()->keyBy('id');
self::$companies = app(CompanyRepository::class)->select(['id', 'name', 'status'])->withTrashed()->get()->keyBy('id')->toArray();
}
return self::$companies[$id];