From be817022e09a73a490e9553402a58807cc66e210 Mon Sep 17 00:00:00 2001 From: denghy Date: Tue, 26 Feb 2019 17:34:48 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A1=E8=B4=B9=E8=A7=84=E5=88=99=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=E5=A5=97=E9=A4=90=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Domains/Card/Services/CardService.php | 18 +++++++++++++++++ .../Card/Tests/Services/CardServiceTest.php | 13 ++++++++++++ .../Virtual/Services/FlowPoolService.php | 20 +++++++++++++++---- 3 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 app/Domains/Card/Services/CardService.php create mode 100644 app/Domains/Card/Tests/Services/CardServiceTest.php diff --git a/app/Domains/Card/Services/CardService.php b/app/Domains/Card/Services/CardService.php new file mode 100644 index 00000000..9e422459 --- /dev/null +++ b/app/Domains/Card/Services/CardService.php @@ -0,0 +1,18 @@ +assertTrue(true); + } +} diff --git a/app/Domains/Virtual/Services/FlowPoolService.php b/app/Domains/Virtual/Services/FlowPoolService.php index a13d8cfc..fce9dd5d 100644 --- a/app/Domains/Virtual/Services/FlowPoolService.php +++ b/app/Domains/Virtual/Services/FlowPoolService.php @@ -653,27 +653,39 @@ class FlowPoolService extends Service $item->products = $products; + $products = array_keyBy($products, 'product_id'); + if ($settings = $allSettings[$item->id]) { foreach ($settings as $setting) { + $minimum_settings = array_keyBy($setting->minimum_settings ?? [], 'product_id'); + if ($setting->start_at <= $month && $setting->end_at >= $month) { $setting_status = 1; - $minimum_settings = array_keyBy($setting->minimum_settings ?? [], 'product_id'); foreach ($products as $product) { if (!isset($minimum_settings[$product['product_id']])) { + $setting_status = 0; $minimum_settings[$product['product_id']] = [ 'product_id' => $product['product_id'], 'product_name' => $product['product_name'], 'flows' => 0, 'price' => 0 ]; - } else { - $minimum_settings[$product['product_id']]['product_name'] = $product['product_name']; } } - $setting->minimum_settings = array_values($minimum_settings); + foreach ($minimum_settings as $product_id => $minimum_setting) { + if (!isset($products[$product_id])) { + unset($minimum_settings[$product_id]); + } + } } + + foreach ($minimum_settings as $product_id => $minimum_setting) { + $minimum_settings[$product_id]['product_name'] = ProductService::load($product['product_id'])['name']; + } + + $setting->minimum_settings = array_values($minimum_settings); } } else { $settings = collect();