alroyso пре 1 месец
родитељ
комит
728d1d946d
5 измењених фајлова са 110 додато и 65 уклоњено
  1. 1 1
      .idea/dataSources.local.xml
  2. 61 49
      .idea/workspace.xml
  3. 1 1
      app/Components/IP.php
  4. 14 13
      app/Jobs/VNet/reloadNode.php
  5. 33 1
      app/Observers/NodeObserver.php

+ 1 - 1
.idea/dataSources.local.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="dataSourceStorageLocal" created-in="PS-243.21565.202">
+  <component name="dataSourceStorageLocal" created-in="PS-251.23774.466">
     <data-source name="api_niubiyun_xyz@158.247.203.230" uuid="1e09a6f5-c562-4514-a27d-37e0d8ac0291">
       <database-info product="MySQL" version="5.7.43-log" jdbc-version="4.2" driver-name="MySQL Connector/J" driver-version="mysql-connector-j-8.2.0 (Revision: 06a1f724497fd81c6a659131fda822c9e5085b6c)" dbms="MYSQL" exact-version="5.7.43" exact-driver-version="8.2">
         <extra-name-characters>#@</extra-name-characters>

+ 61 - 49
.idea/workspace.xml

@@ -5,10 +5,11 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="09451f28-815a-407f-8951-727d305b50a4" name="Changes" comment="Changes">
+      <change beforePath="$PROJECT_DIR$/.idea/dataSources.local.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources.local.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/app/Console/Commands/AutoStatisticsUserHourlyTraffic.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Console/Commands/AutoStatisticsUserHourlyTraffic.php" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/app/Http/Controllers/Admin/LogsController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Admin/LogsController.php" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/resources/views/admin/logs/traffic.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/admin/logs/traffic.blade.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/Components/IP.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Components/IP.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/Jobs/VNet/reloadNode.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Jobs/VNet/reloadNode.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/Observers/NodeObserver.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Observers/NodeObserver.php" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -248,50 +249,50 @@
   <component name="SharedIndexes">
     <attachedChunks>
       <set>
-        <option value="bundled-js-predefined-d6986cc7102b-e768b9ed790e-JavaScript-PS-243.21565.202" />
-        <option value="bundled-php-predefined-a98d8de5180a-5fbe0c30323e-com.jetbrains.php.sharedIndexes-PS-243.21565.202" />
-        <option value="php-brick_math-5543a6ebd44f-b08b85f5" />
-        <option value="php-doctrine_dbal-5543a6ebd44f-045582c6" />
-        <option value="php-doctrine_inflector-5543a6ebd44f-c145f861" />
-        <option value="php-fakerphp_faker-5543a6ebd44f-bceac8b2" />
-        <option value="php-guzzlehttp_guzzle-5543a6ebd44f-53660bbb" />
-        <option value="php-guzzlehttp_promises-5543a6ebd44f-0560acd8" />
-        <option value="php-lcobucci_jwt-5543a6ebd44f-a356ecc1" />
-        <option value="php-league_commonmark-5543a6ebd44f-f6e0e2ae" />
-        <option value="php-markbaker_matrix-5543a6ebd44f-366b8431" />
-        <option value="php-mockery_mockery-5543a6ebd44f-c3d54e04" />
-        <option value="php-monolog_monolog-5543a6ebd44f-60d6c1df" />
-        <option value="php-nesbot_carbon-5543a6ebd44f-ef03f426" />
-        <option value="php-nikic_php_parser-5543a6ebd44f-b657ee4f" />
-        <option value="php-nunomaduro_collision-5543a6ebd44f-dcf3162f" />
-        <option value="php-opis_closure-5543a6ebd44f-6f01ba7f" />
-        <option value="php-paragonie_random_compat-5543a6ebd44f-6c3ba42c" />
-        <option value="php-phar_io_version-5543a6ebd44f-bf2c7010" />
-        <option value="php-phpoffice_phpspreadsheet-5543a6ebd44f-f874df27" />
-        <option value="php-phpseclib_phpseclib-5543a6ebd44f-a9f0a110" />
-        <option value="php-phpunit_php_code_coverage-5543a6ebd44f-dd8f229f" />
-        <option value="php-phpunit_phpunit-5543a6ebd44f-2d939331" />
-        <option value="php-psy_psysh-5543a6ebd44f-72a6f463" />
-        <option value="php-ramsey_uuid-5543a6ebd44f-cd9256cc" />
-        <option value="php-react_promise-5543a6ebd44f-c730e9a8" />
-        <option value="php-sebastian_comparator-5543a6ebd44f-2fefc3d7" />
-        <option value="php-swiftmailer_swiftmailer-5543a6ebd44f-e049fa78" />
-        <option value="php-symfony_console-5543a6ebd44f-5ce23daf" />
-        <option value="php-symfony_error_handler-5543a6ebd44f-334d6960" />
-        <option value="php-symfony_event_dispatcher-5543a6ebd44f-b72d948a" />
-        <option value="php-symfony_filesystem-5543a6ebd44f-89ec7074" />
-        <option value="php-symfony_finder-5543a6ebd44f-7b1a1db5" />
-        <option value="php-symfony_http_foundation-5543a6ebd44f-870b7b9c" />
-        <option value="php-symfony_http_kernel-5543a6ebd44f-859a8986" />
-        <option value="php-symfony_mime-5543a6ebd44f-5356abc8" />
-        <option value="php-symfony_polyfill_iconv-5543a6ebd44f-bbf54f7e" />
-        <option value="php-symfony_process-5543a6ebd44f-78ef7d72" />
-        <option value="php-symfony_routing-5543a6ebd44f-8b11e301" />
-        <option value="php-symfony_string-5543a6ebd44f-0bf900ec" />
-        <option value="php-symfony_translation-5543a6ebd44f-0ec7883a" />
-        <option value="php-symfony_var_dumper-5543a6ebd44f-083fc93e" />
-        <option value="php-symfony_yaml-5543a6ebd44f-16419819" />
-        <option value="php-voku_portable_ascii-5543a6ebd44f-0f088a03" />
+        <option value="bundled-js-predefined-d6986cc7102b-f27c65a3e318-JavaScript-PS-251.23774.466" />
+        <option value="bundled-php-predefined-a98d8de5180a-aaeaa8632555-com.jetbrains.php.sharedIndexes-PS-251.23774.466" />
+        <option value="php-brick_math-88dc7a6578bb-2380d189" />
+        <option value="php-doctrine_dbal-88dc7a6578bb-648b6b59" />
+        <option value="php-doctrine_inflector-88dc7a6578bb-8ba3ac6d" />
+        <option value="php-fakerphp_faker-88dc7a6578bb-e4e0e85b" />
+        <option value="php-guzzlehttp_guzzle-88dc7a6578bb-211423ec" />
+        <option value="php-guzzlehttp_promises-88dc7a6578bb-f77d31dd" />
+        <option value="php-lcobucci_jwt-88dc7a6578bb-bcf3876e" />
+        <option value="php-league_commonmark-88dc7a6578bb-a013c5e9" />
+        <option value="php-markbaker_matrix-88dc7a6578bb-99c37fe6" />
+        <option value="php-mockery_mockery-88dc7a6578bb-4ab6fb81" />
+        <option value="php-monolog_monolog-88dc7a6578bb-9f8d379d" />
+        <option value="php-nesbot_carbon-88dc7a6578bb-b6809529" />
+        <option value="php-nikic_php_parser-88dc7a6578bb-2002d54b" />
+        <option value="php-nunomaduro_collision-88dc7a6578bb-b6f9d96d" />
+        <option value="php-opis_closure-88dc7a6578bb-4a4945d9" />
+        <option value="php-paragonie_random_compat-88dc7a6578bb-7e40019c" />
+        <option value="php-phar_io_version-88dc7a6578bb-a5205a86" />
+        <option value="php-phpoffice_phpspreadsheet-88dc7a6578bb-26465a92" />
+        <option value="php-phpseclib_phpseclib-88dc7a6578bb-92910f65" />
+        <option value="php-phpunit_php_code_coverage-88dc7a6578bb-4f4cabdc" />
+        <option value="php-phpunit_phpunit-88dc7a6578bb-6084b743" />
+        <option value="php-psy_psysh-88dc7a6578bb-0c3d7659" />
+        <option value="php-ramsey_uuid-88dc7a6578bb-c7300e20" />
+        <option value="php-react_promise-88dc7a6578bb-e4364bb0" />
+        <option value="php-sebastian_comparator-88dc7a6578bb-5f59a757" />
+        <option value="php-swiftmailer_swiftmailer-88dc7a6578bb-015d47cf" />
+        <option value="php-symfony_console-88dc7a6578bb-f1618567" />
+        <option value="php-symfony_error_handler-88dc7a6578bb-caf0a9c9" />
+        <option value="php-symfony_event_dispatcher-88dc7a6578bb-7177d18e" />
+        <option value="php-symfony_filesystem-88dc7a6578bb-a3e5d138" />
+        <option value="php-symfony_finder-88dc7a6578bb-9174cf89" />
+        <option value="php-symfony_http_foundation-88dc7a6578bb-39c56a8d" />
+        <option value="php-symfony_http_kernel-88dc7a6578bb-e1e80760" />
+        <option value="php-symfony_mime-88dc7a6578bb-0f49a78b" />
+        <option value="php-symfony_polyfill_iconv-88dc7a6578bb-7f403a99" />
+        <option value="php-symfony_process-88dc7a6578bb-f8093e33" />
+        <option value="php-symfony_routing-88dc7a6578bb-914fd000" />
+        <option value="php-symfony_string-88dc7a6578bb-40c2d112" />
+        <option value="php-symfony_translation-88dc7a6578bb-e349ebeb" />
+        <option value="php-symfony_var_dumper-88dc7a6578bb-ef22a8f5" />
+        <option value="php-symfony_yaml-88dc7a6578bb-c03d0b05" />
+        <option value="php-voku_portable_ascii-88dc7a6578bb-d5d7ac61" />
       </set>
     </attachedChunks>
   </component>
@@ -389,7 +390,10 @@
       <workItem from="1746180473097" duration="1874000" />
       <workItem from="1746240782987" duration="12486000" />
       <workItem from="1746684360963" duration="4587000" />
-      <workItem from="1746762309565" duration="2899000" />
+      <workItem from="1746762309565" duration="2911000" />
+      <workItem from="1747105950306" duration="155000" />
+      <workItem from="1747106234117" duration="3338000" />
+      <workItem from="1747287007120" duration="1030000" />
     </task>
     <task id="LOCAL-00001" summary="Changes">
       <option name="closed" value="true" />
@@ -727,7 +731,15 @@
       <option name="project" value="LOCAL" />
       <updated>1746256658398</updated>
     </task>
-    <option name="localTasksCounter" value="43" />
+    <task id="LOCAL-00043" summary="Changes">
+      <option name="closed" value="true" />
+      <created>1746784784178</created>
+      <option name="number" value="00043" />
+      <option name="presentableId" value="LOCAL-00043" />
+      <option name="project" value="LOCAL" />
+      <updated>1746784784178</updated>
+    </task>
+    <option name="localTasksCounter" value="44" />
     <servers />
   </component>
   <component name="TypeScriptGeneratedFilesManager">

+ 1 - 1
app/Components/IP.php

@@ -35,7 +35,7 @@ class IP
     // 通过api.ip.sb查询IP地址的详细信息
     public static function IPSB($ip)
     {
-        $response = Http::timeout(15)->get('https://api.ip.sb/geoip/'.$ip);
+        $response = Http::timeout(60)->get('https://api.ip.sb/geoip/'.$ip);
 
         if ($response->ok()) {
             return $response->json();

+ 14 - 13
app/Jobs/VNet/reloadNode.php

@@ -62,24 +62,25 @@ class reloadNode implements ShouldQueue
 
     public function send($host, $secret, $data): bool
     {
-        $request = Http::baseUrl($host)->withoutVerifying()->timeout(15)->withHeaders(['secret' => $secret]);
+        // $request = Http::baseUrl($host)->withoutVerifying()->timeout(15)->withHeaders(['secret' => $secret]);
 
-        $response = $request->post('api/v2/node/reload', $data);
-        $message = $response->json();
-        if ($message && Arr::has($message, ['success', 'content']) && $response->ok()) {
-            if ($message['success'] === 'false') {
-                Log::warning('【重载节点】失败:'.$host.' 反馈:'.$message['content']);
+        // $response = $request->post('api/v2/node/reload', $data);
+        // $message = $response->json();
+        // if ($message && Arr::has($message, ['success', 'content']) && $response->ok()) {
+        //     if ($message['success'] === 'false') {
+        //         Log::warning('【重载节点】失败:'.$host.' 反馈:'.$message['content']);
 
-                return false;
-            }
+        //         return false;
+        //     }
 
-            Log::info('【重载节点】成功:'.$host.' 反馈:'.$message['content']);
+        //     Log::info('【重载节点】成功:'.$host.' 反馈:'.$message['content']);
 
-            return true;
-        }
-        Log::warning('【重载节点】失败:'.$host);
+        //     return true;
+        // }
+        // Log::warning('【重载节点】失败:'.$host);
 
-        return false;
+        // return false;
+        return true; // 直接返回成功
     }
 
     // 队列失败处理

+ 33 - 1
app/Observers/NodeObserver.php

@@ -13,7 +13,16 @@ class NodeObserver
 {
     public function saved(Node $node): void
     {
-        $node->refresh_geo();
+        //$node->refresh_geo();
+//        Log::info('节点保存事件触发', [
+//            'node_id' => $node->id,
+//            'node_name' => $node->name,
+//            'node_type' => $node->type,
+//            'is_new' => $node->wasRecentlyCreated,
+//            'attributes' => $node->getAttributes(),
+//            'changes' => $node->getChanges(),
+//            'original' => $node->getOriginal()
+//        ]);
     }
 
     public function created(Node $node): void
@@ -34,9 +43,21 @@ class NodeObserver
 
     public function updated(Node $node): void
     {
+        Log::info('节点更新开始', [
+            'node_id' => $node->id,
+            'node_name' => $node->name,
+            'node_type' => $node->type,
+            'changes' => $node->getChanges(),
+            'original' => $node->getOriginal()
+        ]);
+
         if ($node->is_ddns === 0 && sysConfig('ddns_mode')) {
             $changes = $node->getChanges();
             if (Arr::hasAny($changes, ['ip', 'ipv6', 'server'])) {
+                Log::info('节点DDNS更新', [
+                    'node_id' => $node->id,
+                    'changes' => $changes
+                ]);
                 if (Arr::exists($changes, 'server')) {
                     DDNS::destroy($node->getOriginal('server'));
                     if ($node->ip) {
@@ -69,8 +90,19 @@ class NodeObserver
         }
 
         if ($node->type === 4) {
+            Log::info('准备重载VNet节点', [
+                'node_id' => $node->id,
+                'node_name' => $node->name,
+                'server' => $node->server ?: $node->ip,
+                'push_port' => $node->push_port
+            ]);
             reloadNode::dispatch($node);
         }
+
+        Log::info('节点更新完成', [
+            'node_id' => $node->id,
+            'node_name' => $node->name
+        ]);
     }
 
     public function deleted(Node $node): void