diff --git a/app/Observers/ConfigObserver.php b/app/Observers/ConfigObserver.php index bd44f914..4aa9e621 100644 --- a/app/Observers/ConfigObserver.php +++ b/app/Observers/ConfigObserver.php @@ -2,22 +2,17 @@ namespace App\Observers; -use App\Components\Helpers; use App\Models\Config; use Artisan; -use Cache; class ConfigObserver { - public function updated(Config $config): void + public function updated(Config $config) // 更新设定 { - // 域名出现变动,更新路由设定 - if (in_array($config->name, ['subscribe_domain', 'web_api_url', 'website_callback_url'])) { - if (config('app.debug')) { - Artisan::call('optimize:clear'); - } else { - Artisan::call('optimize'); - } + if (config('app.debug')) { + Artisan::call('optimize:clear'); + } else { + Artisan::call('optimize'); } } } diff --git a/app/Providers/SettingServiceProvider.php b/app/Providers/SettingServiceProvider.php index 6f03ea79..955513e1 100644 --- a/app/Providers/SettingServiceProvider.php +++ b/app/Providers/SettingServiceProvider.php @@ -5,6 +5,7 @@ namespace App\Providers; use App\Channels\BarkChannel; use App\Channels\ServerChanChannel; use App\Models\Config; +use Cache; use Illuminate\Support\ServiceProvider; use NotificationChannels\BearyChat\BearyChatChannel; use NotificationChannels\Telegram\TelegramChannel; @@ -35,13 +36,16 @@ class SettingServiceProvider extends ServiceProvider 'ticket_replied_notification', ]); $payments = ['is_AliPay', 'is_QQPay', 'is_WeChatPay', 'is_otherPay']; - $settings = Config::all(); + if (! Cache::has('settings')) { + Cache::forever('settings', Config::whereNotNull('value')->get()); + } + $settings = Cache::get('settings'); $modified = $settings ->whereNotIn('name', $toApp->keys()->merge($notifications)) // 设置一般系统选项 ->pluck('value', 'name') ->merge($settings->whereIn('name', $notifications)->pluck('value', 'name')->map(function ($item) { - return self::setChannel(json_decode($item, true) ?? []); - })) // 设置通知相关选项 + return self::setChannel(json_decode($item, true)); // 设置通知相关选项 + })) ->merge(collect(['is_onlinePay' => $settings->whereIn('name', $payments)->pluck('value')->filter()->isNotEmpty()])) // 设置在线支付开关 ->sortKeys() ->toArray();