加快load速度
This commit is contained in:
parent
0127e44de5
commit
d3711a5010
@ -92,10 +92,10 @@ class OrderController extends Controller
|
|||||||
$orderStatues = $dicts->get('order_status');
|
$orderStatues = $dicts->get('order_status');
|
||||||
$transactionStatuses = $dicts->get('company_transaction_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->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 = $order->order_status;
|
||||||
$order->order_status_name = $orderStatues[$order->order_status];
|
$order->order_status_name = $orderStatues[$order->order_status];
|
||||||
$order->transaction_status = $order->transaction_status;
|
$order->transaction_status = $order->transaction_status;
|
||||||
|
@ -89,13 +89,13 @@ class OrderService extends Service
|
|||||||
|
|
||||||
Log::info('1', [microtime(true)]);
|
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)]);
|
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);
|
$key = array_search(0, $orderIds);
|
||||||
|
|
||||||
@ -108,28 +108,33 @@ class OrderService extends Service
|
|||||||
$virtualOrders = [];
|
$virtualOrders = [];
|
||||||
// 有订单的从订单中读取公司和套餐
|
// 有订单的从订单中读取公司和套餐
|
||||||
if (!empty($orderIds)) {
|
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)]);
|
Log::info('4', [microtime(true)]);
|
||||||
|
|
||||||
foreach ($cards as &$item) {
|
$companyService = app(CompanyService::class);
|
||||||
$item->sim = (string)$item->sim;
|
$packageService = app(PackageService::class);
|
||||||
$item->company_id = $item->company_id ?? 0;
|
|
||||||
$item->package_id = $item->package_id ?? 0;
|
|
||||||
|
|
||||||
if ($item->virtual_order_id) {
|
foreach ($cards as &$item) {
|
||||||
$virtual = $virtualOrders[$item->virtual_order_id];
|
$item['sim'] = (string)$item['sim'];
|
||||||
$item->company_id = $virtual['company_id'];
|
$item['company_id'] = $item['company_id'] ?? 0;
|
||||||
$item->package_id = $virtual['package_id'];
|
$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['company_name'] = !$item['company_id'] ? '' : $companyService->load($item['company_id'])['name'] ?? '';
|
||||||
$item->package_name = !$item->package_id ? '' : PackageService::load($item->package_id)['name'] ?? '';
|
$item['package_name'] = !$item['package_id'] ? '' : $packageService->load($item['package_id'])['name'] ?? '';
|
||||||
}
|
}
|
||||||
|
|
||||||
Log::info('5', [microtime(true)]);
|
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'];
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -112,7 +112,7 @@ class CompanyService extends Service
|
|||||||
public static function load($id)
|
public static function load($id)
|
||||||
{
|
{
|
||||||
if (!self::$companies) {
|
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];
|
return self::$companies[$id];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user