1
0
Эх сурвалжийг харах

💪🏼 Improve Layout Blade & Observers

BrettonYe 1 жил өмнө
parent
commit
bf70441779

+ 1 - 1
.env.example

@@ -1,5 +1,5 @@
 APP_NAME=ProxyPanel
 APP_NAME=ProxyPanel
-APP_ENV=local
+APP_ENV=production
 APP_KEY=
 APP_KEY=
 APP_DEBUG=
 APP_DEBUG=
 APP_DEMO=
 APP_DEMO=

+ 3 - 0
app/Models/Config.php

@@ -2,11 +2,14 @@
 
 
 namespace App\Models;
 namespace App\Models;
 
 
+use App\Observers\ConfigObserver;
+use Illuminate\Database\Eloquent\Attributes\ObservedBy;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Database\Eloquent\Model;
 
 
 /**
 /**
  * 系统配置.
  * 系统配置.
  */
  */
+#[ObservedBy([ConfigObserver::class])]
 class Config extends Model
 class Config extends Model
 {
 {
     public $timestamps = false;
     public $timestamps = false;

+ 3 - 0
app/Models/Node.php

@@ -3,7 +3,9 @@
 namespace App\Models;
 namespace App\Models;
 
 
 use App\Casts\data_rate;
 use App\Casts\data_rate;
+use App\Observers\NodeObserver;
 use App\Utils\IP;
 use App\Utils\IP;
+use Illuminate\Database\Eloquent\Attributes\ObservedBy;
 use Illuminate\Database\Eloquent\Casts\Attribute;
 use Illuminate\Database\Eloquent\Casts\Attribute;
 use Illuminate\Database\Eloquent\Collection;
 use Illuminate\Database\Eloquent\Collection;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Database\Eloquent\Model;
@@ -16,6 +18,7 @@ use Log;
 /**
 /**
  * 节点配置信息.
  * 节点配置信息.
  */
  */
+#[ObservedBy([NodeObserver::class])]
 class Node extends Model
 class Node extends Model
 {
 {
     protected $table = 'node';
     protected $table = 'node';

+ 3 - 0
app/Models/Order.php

@@ -3,8 +3,10 @@
 namespace App\Models;
 namespace App\Models;
 
 
 use App\Casts\money;
 use App\Casts\money;
+use App\Observers\OrderObserver;
 use App\Utils\Helpers;
 use App\Utils\Helpers;
 use Auth;
 use Auth;
+use Illuminate\Database\Eloquent\Attributes\ObservedBy;
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Database\Eloquent\Relations\BelongsTo;
 use Illuminate\Database\Eloquent\Relations\BelongsTo;
@@ -14,6 +16,7 @@ use Kyslik\ColumnSortable\Sortable;
 /**
 /**
  * 订单.
  * 订单.
  */
  */
+#[ObservedBy([OrderObserver::class])]
 class Order extends Model
 class Order extends Model
 {
 {
     use Sortable;
     use Sortable;

+ 3 - 0
app/Models/ReferralApply.php

@@ -3,8 +3,10 @@
 namespace App\Models;
 namespace App\Models;
 
 
 use App\Casts\money;
 use App\Casts\money;
+use App\Observers\ReferralApplyObserver;
 use App\Utils\Helpers;
 use App\Utils\Helpers;
 use Auth;
 use Auth;
+use Illuminate\Database\Eloquent\Attributes\ObservedBy;
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Database\Eloquent\Casts\Attribute;
 use Illuminate\Database\Eloquent\Casts\Attribute;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Database\Eloquent\Model;
@@ -13,6 +15,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
 /**
 /**
  * 返利申请.
  * 返利申请.
  */
  */
+#[ObservedBy([ReferralApplyObserver::class])]
 class ReferralApply extends Model
 class ReferralApply extends Model
 {
 {
     protected $table = 'referral_apply';
     protected $table = 'referral_apply';

+ 3 - 0
app/Models/Ticket.php

@@ -2,7 +2,9 @@
 
 
 namespace App\Models;
 namespace App\Models;
 
 
+use App\Observers\TicketObserver;
 use Auth;
 use Auth;
+use Illuminate\Database\Eloquent\Attributes\ObservedBy;
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Database\Eloquent\Relations\BelongsTo;
 use Illuminate\Database\Eloquent\Relations\BelongsTo;
@@ -11,6 +13,7 @@ use Illuminate\Database\Eloquent\Relations\HasMany;
 /**
 /**
  * 工单.
  * 工单.
  */
  */
+#[ObservedBy([TicketObserver::class])]
 class Ticket extends Model
 class Ticket extends Model
 {
 {
     protected $table = 'ticket';
     protected $table = 'ticket';

+ 3 - 0
app/Models/User.php

@@ -4,10 +4,12 @@ namespace App\Models;
 
 
 use App\Casts\data_rate;
 use App\Casts\data_rate;
 use App\Casts\money;
 use App\Casts\money;
+use App\Observers\UserObserver;
 use App\Utils\Helpers;
 use App\Utils\Helpers;
 use App\Utils\QQInfo;
 use App\Utils\QQInfo;
 use DB;
 use DB;
 use Hash;
 use Hash;
+use Illuminate\Database\Eloquent\Attributes\ObservedBy;
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Database\Eloquent\Factories\HasFactory;
 use Illuminate\Database\Eloquent\Factories\HasFactory;
 use Illuminate\Database\Eloquent\Relations\BelongsTo;
 use Illuminate\Database\Eloquent\Relations\BelongsTo;
@@ -24,6 +26,7 @@ use Spatie\Permission\Traits\HasRoles;
 /**
 /**
  * 用户信息.
  * 用户信息.
  */
  */
+#[ObservedBy([UserObserver::class])]
 class User extends Authenticatable
 class User extends Authenticatable
 {
 {
     use HasApiTokens, HasFactory, HasRoles, Notifiable, Sortable;
     use HasApiTokens, HasFactory, HasRoles, Notifiable, Sortable;

+ 3 - 0
app/Models/UserGroup.php

@@ -2,6 +2,8 @@
 
 
 namespace App\Models;
 namespace App\Models;
 
 
+use App\Observers\UserGroupObserver;
+use Illuminate\Database\Eloquent\Attributes\ObservedBy;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Database\Eloquent\Relations\BelongsToMany;
 use Illuminate\Database\Eloquent\Relations\BelongsToMany;
 use Illuminate\Database\Eloquent\Relations\HasMany;
 use Illuminate\Database\Eloquent\Relations\HasMany;
@@ -9,6 +11,7 @@ use Illuminate\Database\Eloquent\Relations\HasMany;
 /**
 /**
  * 用户分组控制.
  * 用户分组控制.
  */
  */
+#[ObservedBy([UserGroupObserver::class])]
 class UserGroup extends Model
 class UserGroup extends Model
 {
 {
     public $timestamps = false;
     public $timestamps = false;

+ 24 - 0
app/Observers/ReferralApplyObserver.php

@@ -0,0 +1,24 @@
+<?php
+
+namespace App\Observers;
+
+use Cache;
+
+class ReferralApplyObserver
+{
+    /**
+     * Handle the ReferralApply "created" event.
+     */
+    public function created(): void
+    {
+        Cache::forget('open_referral_apply_count');
+    }
+
+    /**
+     * Handle the ReferralApply "updated" event.
+     */
+    public function updated(): void
+    {
+        Cache::forget('open_referral_apply_count');
+    }
+}

+ 18 - 0
app/Observers/TicketObserver.php

@@ -0,0 +1,18 @@
+<?php
+
+namespace App\Observers;
+
+use Cache;
+
+class TicketObserver
+{
+    public function created(): void
+    {
+        Cache::forget('open_ticket_count');
+    }
+
+    public function updated(): void
+    {
+        Cache::forget('open_ticket_count');
+    }
+}

+ 0 - 16
app/Providers/AppServiceProvider.php

@@ -2,16 +2,6 @@
 
 
 namespace App\Providers;
 namespace App\Providers;
 
 
-use App\Models\Config;
-use App\Models\Node;
-use App\Models\Order;
-use App\Models\User;
-use App\Models\UserGroup;
-use App\Observers\ConfigObserver;
-use App\Observers\NodeObserver;
-use App\Observers\OrderObserver;
-use App\Observers\UserGroupObserver;
-use App\Observers\UserObserver;
 use DB;
 use DB;
 use File;
 use File;
 use Illuminate\Pagination\Paginator;
 use Illuminate\Pagination\Paginator;
@@ -47,11 +37,5 @@ class AppServiceProvider extends ServiceProvider
         if (config('session.secure')) {
         if (config('session.secure')) {
             URL::forceScheme('https');
             URL::forceScheme('https');
         }
         }
-
-        Config::observe(ConfigObserver::class);
-        Node::observe(NodeObserver::class);
-        Order::observe(OrderObserver::class);
-        UserGroup::observe(UserGroupObserver::class);
-        User::observe(UserObserver::class);
     }
     }
 }
 }

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
public/vendor/horizon/app.js


+ 1 - 1
public/vendor/horizon/img/sprite.svg

@@ -612,7 +612,7 @@
     <symbol viewBox="0 0 20 20" id="zondicon-search">
     <symbol viewBox="0 0 20 20" id="zondicon-search">
         <path d="M12.9 14.32a8 8 0 1 1 1.41-1.41l5.35 5.33-1.42 1.42-5.33-5.34zM8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12z"/>
         <path d="M12.9 14.32a8 8 0 1 1 1.41-1.41l5.35 5.33-1.42 1.42-5.33-5.34zM8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12z"/>
     </symbol>
     </symbol>
-    <symbol viewBox="0 0 20 20" id="zondicon-send">
+    <symbol viewBox="0 0 20 20" id="zondicon-sendRequest">
         <path d="M0 0l20 10L0 20V0zm0 8v4l10-2L0 8z"/>
         <path d="M0 0l20 10L0 20V0zm0 8v4l10-2L0 8z"/>
     </symbol>
     </symbol>
     <symbol viewBox="0 0 20 20" id="zondicon-servers">
     <symbol viewBox="0 0 20 20" id="zondicon-servers">

+ 1 - 1
public/vendor/horizon/mix-manifest.json

@@ -1,5 +1,5 @@
 {
 {
-    "/app.js": "/app.js?id=7e1968acfd75b8dc843675097962e3ce",
+    "/app.js": "/app.js?id=b4f3f08e60211bd6948ec35e5e9de9a1",
     "/app-dark.css": "/app-dark.css?id=15c72df05e2b1147fa3e4b0670cfb435",
     "/app-dark.css": "/app-dark.css?id=15c72df05e2b1147fa3e4b0670cfb435",
     "/app.css": "/app.css?id=4d6a1a7fe095eedc2cb2a4ce822ea8a5",
     "/app.css": "/app.css?id=4d6a1a7fe095eedc2cb2a4ce822ea8a5",
     "/img/favicon.png": "/img/favicon.png?id=1542bfe8a0010dcbee710da13cce367f",
     "/img/favicon.png": "/img/favicon.png?id=1542bfe8a0010dcbee710da13cce367f",

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 3 - 3
public/vendor/telescope/app-dark.css


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 3 - 3
public/vendor/telescope/app.css


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
public/vendor/telescope/app.js


+ 3 - 3
public/vendor/telescope/mix-manifest.json

@@ -1,5 +1,5 @@
 {
 {
-    "/app.js": "/app.js?id=743dfad5fd68f166e4d683df8449c953",
-    "/app-dark.css": "/app-dark.css?id=a9022d8e130bf3ec3a93350be9bf858e",
-    "/app.css": "/app.css?id=b89676ee10846bfd767c6836074db724"
+    "/app.js": "/app.js?id=613c227dfb4d6e1fc4db1b1a90513610",
+    "/app-dark.css": "/app-dark.css?id=b11fa9a28e9d3aeb8c92986f319b3c44",
+    "/app.css": "/app.css?id=b3ccfbe68f24cff776f83faa8dead721"
 }
 }

+ 11 - 7
resources/views/admin/layouts.blade.php

@@ -162,11 +162,13 @@
                             <span class="site-menu-title">{{ trans('admin.menu.customer_service.attribute') }}</span>
                             <span class="site-menu-title">{{ trans('admin.menu.customer_service.attribute') }}</span>
                             @can('admin.ticket.index')
                             @can('admin.ticket.index')
                                 @php
                                 @php
-                                    $openTicket = App\Models\Ticket::whereStatus(0)->count()
+                                    $openTicket = Cache::rememberForever('open_ticket_count', static function (){
+                                        return App\Models\Ticket::whereStatus(0)->count();
+                                    })
                                 @endphp
                                 @endphp
-                                @if($openTicket > 0)
+                                @if($openTicket)
                                     <div class="site-menu-badge">
                                     <div class="site-menu-badge">
-                                        <span class="badge badge-pill badge-success">{{$openTicket}}</span>
+                                        <span class="badge badge-pill badge-success">{{ $openTicket }}</span>
                                     </div>
                                     </div>
                                 @endif
                                 @endif
                             @endcan
                             @endcan
@@ -178,7 +180,7 @@
                                         <span class="site-menu-title">{{ trans('admin.menu.customer_service.ticket') }}</span>
                                         <span class="site-menu-title">{{ trans('admin.menu.customer_service.ticket') }}</span>
                                         @if($openTicket > 0)
                                         @if($openTicket > 0)
                                             <div class="site-menu-label">
                                             <div class="site-menu-label">
-                                                <span class="badge badge-danger badge-round mr-25">{{$openTicket}}</span>
+                                                <span class="badge badge-danger badge-round mr-25">{{ $openTicket }}</span>
                                             </div>
                                             </div>
                                         @endif
                                         @endif
                                     </a>
                                     </a>
@@ -308,11 +310,13 @@
                             <span class="site-menu-title">{{ trans('admin.menu.promotion.attribute') }}</span>
                             <span class="site-menu-title">{{ trans('admin.menu.promotion.attribute') }}</span>
                             @can('admin.aff.index')
                             @can('admin.aff.index')
                                 @php
                                 @php
-                                    $openApply = App\Models\ReferralApply::whereStatus(0)->count()
+                                    $openApply = Cache::rememberForever('open_referral_apply_count', static function (){
+                                        return App\Models\ReferralApply::whereStatus(0)->count();
+                                    })
                                 @endphp
                                 @endphp
-                                @if($openApply > 0)
+                                @if($openApply)
                                     <div class="site-menu-badge">
                                     <div class="site-menu-badge">
-                                        <span class="badge badge-pill badge-success">{{$openApply}}</span>
+                                        <span class="badge badge-pill badge-success">{{ $openApply }}</span>
                                     </div>
                                     </div>
                                 @endif
                                 @endif
                             @endcan
                             @endcan

+ 1 - 1
resources/views/user/layouts.blade.php

@@ -55,6 +55,7 @@
                                 </a>
                                 </a>
                             @endforeach
                             @endforeach
                         </div>
                         </div>
+                    </li>
                     <li class="nav-item dropdown">
                     <li class="nav-item dropdown">
                         <a href="javascript:void(0)" class="nav-link" data-toggle="dropdown" data-animation="scale-up"
                         <a href="javascript:void(0)" class="nav-link" data-toggle="dropdown" data-animation="scale-up"
                            aria-expanded="false" role="button">
                            aria-expanded="false" role="button">
@@ -69,7 +70,6 @@
                             @endforeach
                             @endforeach
                         </div>
                         </div>
                     </li>
                     </li>
-                    </li>
                     <li class="nav-item dropdown">
                     <li class="nav-item dropdown">
                         <a href="#" aria-expanded="false" class="nav-link navbar-avatar" data-animation="scale-up"
                         <a href="#" aria-expanded="false" class="nav-link navbar-avatar" data-animation="scale-up"
                            data-toggle="dropdown" role="button">
                            data-toggle="dropdown" role="button">

+ 2 - 4
routes/web.php

@@ -9,11 +9,9 @@ use App\Http\Controllers\TelegramController;
 use App\Http\Controllers\User\SubscribeController;
 use App\Http\Controllers\User\SubscribeController;
 
 
 if (config('app.key') && config('settings')) {
 if (config('app.key') && config('settings')) {
-    Route::domain(sysConfig('subscribe_domain') ?: sysConfig('website_url'))
-        ->get('s/{code}', [SubscribeController::class, 'getSubscribeByCode'])->name('sub'); // 节点订阅地址
+    Route::domain(sysConfig('subscribe_domain') ?: sysConfig('website_url'))->get('s/{code}', [SubscribeController::class, 'getSubscribeByCode'])->name('sub'); // 节点订阅地址
 
 
-    Route::domain(sysConfig('website_callback_url') ?: sysConfig('website_url'))
-        ->match(['get', 'post'], 'callback/notify', [PaymentController::class, 'notify'])->name('payment.notify'); //支付回调
+    Route::domain(sysConfig('website_callback_url') ?: sysConfig('website_url'))->match(['get', 'post'], 'callback/notify', [PaymentController::class, 'notify'])->name('payment.notify'); //支付回调
 }
 }
 
 
 Route::post('api/telegram/webhook', [TelegramController::class, 'webhook'])->middleware('telegram'); // Telegram fallback
 Route::post('api/telegram/webhook', [TelegramController::class, 'webhook'])->middleware('telegram'); // Telegram fallback

+ 1 - 3
update.sh

@@ -5,9 +5,7 @@ source ./scripts/lib.sh
 
 
 # 更新代码
 # 更新代码
 echo -e "\e[34m========= Checking server environment... | 检查服务器环境... =========\e[0m"
 echo -e "\e[34m========= Checking server environment... | 检查服务器环境... =========\e[0m"
-git fetch -f
-git reset -q --hard origin/master
-git pull
+git fetch -f && git reset -q --hard origin/master && git pull
 
 
 # 检查Composer
 # 检查Composer
 echo -e "\e[34m========= Checking Composer... | 检查Composer... =========\e[0m"
 echo -e "\e[34m========= Checking Composer... | 检查Composer... =========\e[0m"

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно