From d3711a50102ebd432d0186626abef57f5c172453 Mon Sep 17 00:00:00 2001 From: denghy Date: Fri, 29 Mar 2019 11:25:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=BF=ABload=E9=80=9F=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Http/Controllers/OrderController.php | 4 +-- app/Domains/Real/Services/OrderService.php | 35 +++++++++++-------- .../Virtual/Services/CompanyService.php | 2 +- 3 files changed, 23 insertions(+), 18 deletions(-) diff --git a/app/Domains/Company/Http/Controllers/OrderController.php b/app/Domains/Company/Http/Controllers/OrderController.php index 16659b25..0443449f 100644 --- a/app/Domains/Company/Http/Controllers/OrderController.php +++ b/app/Domains/Company/Http/Controllers/OrderController.php @@ -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; diff --git a/app/Domains/Real/Services/OrderService.php b/app/Domains/Real/Services/OrderService.php index d2a8a4ae..00e73a2e 100644 --- a/app/Domains/Real/Services/OrderService.php +++ b/app/Domains/Real/Services/OrderService.php @@ -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']; + })); } } diff --git a/app/Domains/Virtual/Services/CompanyService.php b/app/Domains/Virtual/Services/CompanyService.php index 144469e4..0e501210 100644 --- a/app/Domains/Virtual/Services/CompanyService.php +++ b/app/Domains/Virtual/Services/CompanyService.php @@ -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];