From 19a141a9c99e5ad53d310aea20bdc844f9b4f36c Mon Sep 17 00:00:00 2001 From: Edward Yang Date: Fri, 1 Jul 2022 18:18:45 +0800 Subject: [PATCH] fixed plugin status --- beike/Repositories/SettingRepo.php | 6 +---- beike/Shop/Providers/ShopServiceProvider.php | 26 +++++++++++++------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/beike/Repositories/SettingRepo.php b/beike/Repositories/SettingRepo.php index 8291648a..12e54429 100644 --- a/beike/Repositories/SettingRepo.php +++ b/beike/Repositories/SettingRepo.php @@ -43,11 +43,7 @@ class SettingRepo public static function getPluginStatus($pluginCode): bool { - $status = Setting::query() - ->where('type', 'plugin') - ->where('space', $pluginCode) - ->where('name', 'status') - ->value('value'); + $status = setting("bk.{$pluginCode}"); return (bool)$status; } diff --git a/beike/Shop/Providers/ShopServiceProvider.php b/beike/Shop/Providers/ShopServiceProvider.php index 66dec545..a48cb1fc 100644 --- a/beike/Shop/Providers/ShopServiceProvider.php +++ b/beike/Shop/Providers/ShopServiceProvider.php @@ -33,16 +33,24 @@ class ShopServiceProvider extends ServiceProvider protected function loadSettings() { - $settings = Setting::all(['name', 'value', 'json']) - ->keyBy('name') - ->transform(function ($setting) { - if ($setting->json) { - return \json_decode($setting->value, true); + $settings = Setting::all(['type', 'space', 'name', 'value', 'json']) + ->groupBy('space'); + + $result = []; + foreach ($settings as $space => $groupSettings) { + $space = $space ?: 'system'; + foreach ($groupSettings as $groupSetting) { + $name = $groupSetting->name; + $value = $groupSetting->value; + if ($groupSetting->json) { + + $result[$space][$name] = json_encode($value); + } else { + $result[$space][$name] = $value; } - return $setting->value; - }) - ->toArray(); - config(['bk' => $settings]); + } + } + config(['bk' => $result]); } protected function registerGuard()