瀏覽代碼

节点阻断警报改为一次性 通知

Bretton 5 年之前
父節點
當前提交
5052015622

+ 2 - 2
app/Console/Commands/AutoJob.php

@@ -233,8 +233,8 @@ class AutoJob extends Command
 			$nodeList = SsNode::query()->where('is_transit', 0)->where('status', 1)->get();
 			foreach($nodeList as $node){
 				// 10分钟内无节点负载信息则认为是后端炸了
-				$nodeTTL = SsNodeInfo::query()->where('node_id', $node->id)->where('log_time', '>=', strtotime("-10 minutes"))->orderBy('id', 'desc')->first();
-				if(!$nodeTTL){
+				$nodeTTL = SsNodeInfo::query()->where('node_id', $node->id)->where('log_time', '>=', strtotime("-10 minutes"))->orderBy('id', 'desc')->doesntExist();
+				if($nodeTTL){
 					ServerChan::send('节点异常警告', "节点**{$node->name}【{$node->ip}】**异常:**心跳异常,可能离线了**");
 				}
 			}

+ 42 - 43
app/Console/Commands/NodeBlockedDetection.php

@@ -29,13 +29,7 @@ class NodeBlockedDetection extends Command
 	{
 		$jobStartTime = microtime(TRUE);
 		if(self::$systemConfig['nodes_detection']){
-			if(!Cache::has('LastCheckTime')){
-				$this->checkNodes();
-			}elseif(Cache::get('LastCheckTime') <= time()){
-				$this->checkNodes();
-			}else{
-				Log::info('下次节点阻断检测时间:'.date('Y-m-d H:i:s', Cache::get('LastCheckTime')));
-			}
+			$this->checkNodes();
 		}
 
 		$jobEndTime = microtime(TRUE);
@@ -48,8 +42,11 @@ class NodeBlockedDetection extends Command
 	private function checkNodes()
 	{
 		$nodeList = SsNode::query()->where('is_transit', 0)->where('status', 1)->where('detectionType', '>', 0)->get();
+		$sendText = FALSE;
+		$message = "| 线路 | 协议 | 状态 |\r\n| ------ | ------ | ------ |\r\n";
+		$additionalMessage = '';
 		foreach($nodeList as $node){
-			$title = "【{$node->name}】阻断警告";
+			$info = FALSE;
 			if($node->detectionType == 0){
 				continue;
 			}
@@ -60,40 +57,37 @@ class NodeBlockedDetection extends Command
 					$node->ip = $ip;
 				}else{
 					Log::warning("【节点阻断检测】检测".$node->server."时,IP获取失败".$ip." | ".$node->server);
-					$this->notifyMaster($title, "节点**{$node->name}**:** IP获取失败 **", $node->name, $node->server);
+					$this->notifyMaster("{$node->name}动态IP获取失败", "节点**{$node->name}**:** IP获取失败 **");
 				}
 			}
-			$sendText = FALSE;
-			$text = "| 协议 | 状态 |\r\n| :------ | :------ |\r\n";
 			if($node->detectionType != 1){
 				$icmpCheck = $this->networkCheck($node->ip, TRUE, FALSE);
-				if($icmpCheck != FALSE){
-					$text .= "| ICMP | ".$icmpCheck."|\r\n";
-					if($icmpCheck != '通讯正常'){
-						$sendText = TRUE;
-					}
+				if($icmpCheck != FALSE && $icmpCheck != "通讯正常"){
+					$message .= "| ".$node->name." | ICMP | ".$icmpCheck." |\r\n";
+					$sendText = TRUE;
+					$info = TRUE;
 				}
 			}
-			sleep(3);
+
 			if($node->detectionType != 2){
 				$tcpCheck = $this->networkCheck($node->ip, FALSE, $node->single? $node->port : FALSE);
-				if($tcpCheck != FALSE){
-					$text .= "| TCP | ".$tcpCheck."|\r\n";
-					if($tcpCheck != '通讯正常'){
-						$sendText = TRUE;
-					}
+				if($tcpCheck != FALSE && $tcpCheck != "通讯正常"){
+					$message .= "| ".$node->name." | TCP | ".$tcpCheck." |\r\n";
+					$sendText = TRUE;
+					$info = TRUE;
 				}
 			}
 
-			// 异常才发通知消息
-			if($sendText){
+			// 节点检测次数
+			if($info){
 				if(self::$systemConfig['numberOfWarningTimes']){
 					// 已通知次数
 					$cacheKey = 'numberOfWarningTimes'.$node->id;
 					if(Cache::has($cacheKey)){
 						$times = Cache::get($cacheKey);
 					}else{
-						Cache::put($cacheKey, 1, 43200); // 最多设置提醒12次,每次1小时间隔
+						// 键将保留12小时,多10分钟防意外
+						Cache::put($cacheKey, 1, 83800);
 						$times = 1;
 					}
 
@@ -102,34 +96,31 @@ class NodeBlockedDetection extends Command
 					}else{
 						Cache::forget($cacheKey);
 						SsNode::query()->where('id', $node->id)->update(['status' => 0]);
-						$text .= "\r\n**节点自动进入维护状态**\r\n";
+						$additionalMessage .= "\r\n**节点【{$node->name}】自动进入维护状态**\r\n";
 					}
 				}
-				$this->notifyMaster($title, "**{$node->name} - 【{$node->ip}】**: \r\n\r\n".$text, $node->name, $node->server);
-				Log::info("【节点阻断检测】{$node->name} - 【{$node->ip}】: \r\n".$text);
 			}
-			sleep(3);
 		}
 
-		// 随机生成下次检测时间
-		$nextCheckTime = time()+3600;
-		Cache::put('LastCheckTime', $nextCheckTime, 3600);
+		//只有在出现阻断线路时,才会发出警报
+		if($sendText){
+			$this->notifyMaster("节点阻断警告", "**阻断日志**: \r\n\r\n".$message.$additionalMessage);
+			Log::info("阻断日志: \r\n".$message.$additionalMessage);
+		}
 	}
 
 	/**
 	 * 通知管理员
 	 *
-	 * @param string $title      消息标题
-	 * @param string $content    消息内容
-	 * @param string $nodeName   节点名称
-	 * @param string $nodeServer 节点域名
+	 * @param string $title   消息标题
+	 * @param string $content 消息内容
 	 *
 	 */
-	private function notifyMaster($title, $content, $nodeName, $nodeServer)
+	private function notifyMaster($title, $content)
 	{
 		if(self::$systemConfig['webmaster_email']){
 			$logId = Helpers::addEmailLog(self::$systemConfig['webmaster_email'], $title, $content);
-			Mail::to(self::$systemConfig['webmaster_email'])->send(new nodeCrashWarning($logId, $nodeName, $nodeServer));
+			Mail::to(self::$systemConfig['webmaster_email'])->send(new nodeCrashWarning($logId));
 		}
 		ServerChan::send($title, $content);
 	}
@@ -155,7 +146,15 @@ class NodeBlockedDetection extends Command
 
 				return FALSE;
 			}elseif(!$ret['success']){
-				Log::warning("【".$checkName."阻断检测】检测".$ip."时,返回".json_encode($ret));
+				if($ret['error'] == "execute timeout (3s)"){
+					sleep(10);
+
+					return $this->networkCheck($ip, $type, $port);
+				}else{
+					Log::warning("【".$checkName."阻断检测】检测".$ip.($port? : '')."时,返回".json_encode($ret));
+
+				}
+
 
 				return FALSE;
 			}
@@ -166,13 +165,13 @@ class NodeBlockedDetection extends Command
 		}
 
 		if($ret['firewall-enable'] && $ret['firewall-disable']){
-			return '通讯正常'; // 正常
+			return "通讯正常"; // 正常
 		}elseif($ret['firewall-enable'] && !$ret['firewall-disable']){
-			return '海外阻断'; // 国外访问异常
+			return "海外阻断"; // 国外访问异常
 		}elseif(!$ret['firewall-enable'] && $ret['firewall-disable']){
-			return '国内阻断'; // 被墙
+			return "国内阻断"; // 被墙
 		}else{
-			return '机器宕机'; // 服务器宕机
+			return "机器宕机"; // 服务器宕机
 		}
 	}
 }

+ 1 - 1
app/Console/Kernel.php

@@ -55,7 +55,7 @@ class Kernel extends ConsoleKernel
 		$schedule->command('autoJob')->everyMinute();
 		$schedule->command('serviceTimer')->everyTenMinutes();
 		$schedule->command('autoClearLog')->everyThirtyMinutes();
-		$schedule->command('nodeBlockedDetection')->everyThirtyMinutes();
+		$schedule->command('nodeBlockedDetection')->hourly();
 		$schedule->command('autoStatisticsNodeHourlyTraffic')->hourly();
 		$schedule->command('autoStatisticsUserHourlyTraffic')->hourly();
 		$schedule->command('userTrafficAbnormalAutoWarning')->hourly();

+ 2 - 9
app/Mail/nodeCrashWarning.php

@@ -14,22 +14,15 @@ class nodeCrashWarning extends Mailable implements ShouldQueue
 	use Queueable, SerializesModels;
 
 	protected $id; // 邮件记录ID
-	protected $nodeName; // 节点名称
-	protected $nodeServer; // 节点地址
 
-	public function __construct($id, $nodeName, $nodeServer)
+	public function __construct($id)
 	{
 		$this->id = $id;
-		$this->nodeName = $nodeName;
-		$this->nodeServer = $nodeServer;
 	}
 
 	public function build()
 	{
-		return $this->view('emails.nodeCrashWarning')->subject('节点离线警告')->with([
-			'nodeName'   => $this->nodeName,
-			'nodeServer' => $this->nodeServer
-		]);
+		return $this->view('emails.nodeCrashWarning')->subject('节点离线警告');
 	}
 
 	// 发件失败处理

+ 141 - 137
composer.lock

@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "099f2beb3a38bdaa54d8cfffec172967",
+    "content-hash": "dd0a90c52ce518345ffab5a1c54f7be8",
     "packages": [
         {
             "name": "barryvdh/laravel-debugbar",
@@ -214,16 +214,16 @@
         },
         {
             "name": "caouecs/laravel-lang",
-            "version": "4.0.8",
+            "version": "4.0.9",
             "source": {
                 "type": "git",
                 "url": "https://github.com/caouecs/Laravel-lang.git",
-                "reference": "b508ae398fc1a8453a6877229e57460dd07ecfa2"
+                "reference": "99b43723eff9a454c1c7e7124e5b1fa560a97c81"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/caouecs/Laravel-lang/zipball/b508ae398fc1a8453a6877229e57460dd07ecfa2",
-                "reference": "b508ae398fc1a8453a6877229e57460dd07ecfa2",
+                "url": "https://api.github.com/repos/caouecs/Laravel-lang/zipball/99b43723eff9a454c1c7e7124e5b1fa560a97c81",
+                "reference": "99b43723eff9a454c1c7e7124e5b1fa560a97c81",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -262,7 +262,7 @@
                 "laravel",
                 "lpm"
             ],
-            "time": "2019-12-19T09:38:31+00:00"
+            "time": "2020-02-02T13:13:33+00:00"
         },
         {
             "name": "composer/ca-bundle",
@@ -328,16 +328,16 @@
         },
         {
             "name": "composer/composer",
-            "version": "1.9.2",
+            "version": "1.9.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/composer/composer.git",
-                "reference": "7a04aa0201ddaa0b3cf64d41022bd8cdcd7fafeb"
+                "reference": "1291a16ce3f48bfdeca39d64fca4875098af4d7b"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/composer/composer/zipball/7a04aa0201ddaa0b3cf64d41022bd8cdcd7fafeb",
-                "reference": "7a04aa0201ddaa0b3cf64d41022bd8cdcd7fafeb",
+                "url": "https://api.github.com/repos/composer/composer/zipball/1291a16ce3f48bfdeca39d64fca4875098af4d7b",
+                "reference": "1291a16ce3f48bfdeca39d64fca4875098af4d7b",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -410,7 +410,7 @@
                 "dependency",
                 "package"
             ],
-            "time": "2020-01-14T15:30:32+00:00"
+            "time": "2020-02-04T11:58:49+00:00"
         },
         {
             "name": "composer/semver",
@@ -1105,16 +1105,16 @@
         },
         {
             "name": "egulias/email-validator",
-            "version": "2.1.14",
+            "version": "2.1.15",
             "source": {
                 "type": "git",
                 "url": "https://github.com/egulias/EmailValidator.git",
-                "reference": "c4b8d12921999d8a561004371701dbc2e05b5ece"
+                "reference": "e834eea5306d85d67de5a05db5882911d5b29357"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/c4b8d12921999d8a561004371701dbc2e05b5ece",
-                "reference": "c4b8d12921999d8a561004371701dbc2e05b5ece",
+                "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/e834eea5306d85d67de5a05db5882911d5b29357",
+                "reference": "e834eea5306d85d67de5a05db5882911d5b29357",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -1125,7 +1125,8 @@
             },
             "require": {
                 "doctrine/lexer": "^1.0.1",
-                "php": ">=5.5"
+                "php": ">=5.5",
+                "symfony/polyfill-intl-idn": "^1.10"
             },
             "require-dev": {
                 "dominicsayers/isemail": "^3.0.7",
@@ -1164,7 +1165,7 @@
                 "validation",
                 "validator"
             ],
-            "time": "2020-01-05T14:11:20+00:00"
+            "time": "2020-01-20T21:40:59+00:00"
         },
         {
             "name": "erusev/parsedown",
@@ -1826,16 +1827,16 @@
         },
         {
             "name": "jaybizzle/crawler-detect",
-            "version": "v1.2.90",
+            "version": "v1.2.92",
             "source": {
                 "type": "git",
                 "url": "https://github.com/JayBizzle/Crawler-Detect.git",
-                "reference": "35f963386e6a189697fe4b14dc91fb42b17fda4b"
+                "reference": "eb167049d7de1e5320138186b9dcb2e5f9df260d"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/JayBizzle/Crawler-Detect/zipball/35f963386e6a189697fe4b14dc91fb42b17fda4b",
-                "reference": "35f963386e6a189697fe4b14dc91fb42b17fda4b",
+                "url": "https://api.github.com/repos/JayBizzle/Crawler-Detect/zipball/eb167049d7de1e5320138186b9dcb2e5f9df260d",
+                "reference": "eb167049d7de1e5320138186b9dcb2e5f9df260d",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -1877,7 +1878,7 @@
                 "crawlerdetect",
                 "php crawler detect"
             ],
-            "time": "2019-12-08T20:03:27+00:00"
+            "time": "2020-02-07T20:28:07+00:00"
         },
         {
             "name": "jenssegers/agent",
@@ -2251,16 +2252,16 @@
         },
         {
             "name": "league/flysystem",
-            "version": "1.0.63",
+            "version": "1.0.64",
             "source": {
                 "type": "git",
                 "url": "https://github.com/thephpleague/flysystem.git",
-                "reference": "8132daec326565036bc8e8d1876f77ec183a7bd6"
+                "reference": "d13c43dbd4b791f815215959105a008515d1a2e0"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/8132daec326565036bc8e8d1876f77ec183a7bd6",
-                "reference": "8132daec326565036bc8e8d1876f77ec183a7bd6",
+                "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/d13c43dbd4b791f815215959105a008515d1a2e0",
+                "reference": "d13c43dbd4b791f815215959105a008515d1a2e0",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -2278,7 +2279,7 @@
             },
             "require-dev": {
                 "phpspec/phpspec": "^3.4",
-                "phpunit/phpunit": "^5.7.10"
+                "phpunit/phpunit": "^5.7.26"
             },
             "suggest": {
                 "ext-fileinfo": "Required for MimeType",
@@ -2337,7 +2338,7 @@
                 "sftp",
                 "storage"
             ],
-            "time": "2020-01-04T16:30:31+00:00"
+            "time": "2020-02-05T18:14:17+00:00"
         },
         {
             "name": "markbaker/complex",
@@ -2997,16 +2998,16 @@
         },
         {
             "name": "nesbot/carbon",
-            "version": "2.28.0",
+            "version": "2.29.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/briannesbitt/Carbon.git",
-                "reference": "e2bcbcd43e67ee6101d321d5de916251d2870ca8"
+                "reference": "e509be5bf2d703390e69e14496d9a1168452b0a2"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/e2bcbcd43e67ee6101d321d5de916251d2870ca8",
-                "reference": "e2bcbcd43e67ee6101d321d5de916251d2870ca8",
+                "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/e509be5bf2d703390e69e14496d9a1168452b0a2",
+                "reference": "e509be5bf2d703390e69e14496d9a1168452b0a2",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -3023,7 +3024,7 @@
             "require-dev": {
                 "friendsofphp/php-cs-fixer": "^2.14 || ^3.0",
                 "kylekatarnls/multi-tester": "^1.1",
-                "phpmd/phpmd": "dev-php-7.1-compatibility",
+                "phpmd/phpmd": "^2.8",
                 "phpstan/phpstan": "^0.11",
                 "phpunit/phpunit": "^7.5 || ^8.0",
                 "squizlabs/php_codesniffer": "^3.4"
@@ -3069,7 +3070,7 @@
                 "datetime",
                 "time"
             ],
-            "time": "2019-12-16T16:30:25+00:00"
+            "time": "2020-01-21T09:36:43+00:00"
         },
         {
             "name": "nikic/php-parser",
@@ -4073,16 +4074,16 @@
         },
         {
             "name": "riverslei/payment",
-            "version": "v4.1.7",
+            "version": "v5.0.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/helei112g/payment.git",
-                "reference": "94ecb0306288e3d8f60bbcc1a3a5e045c5bfa588"
+                "reference": "cea25ef54cbcf7a1707a7ce1940ed5cfcda195e3"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/helei112g/payment/zipball/94ecb0306288e3d8f60bbcc1a3a5e045c5bfa588",
-                "reference": "94ecb0306288e3d8f60bbcc1a3a5e045c5bfa588",
+                "url": "https://api.github.com/repos/helei112g/payment/zipball/cea25ef54cbcf7a1707a7ce1940ed5cfcda195e3",
+                "reference": "cea25ef54cbcf7a1707a7ce1940ed5cfcda195e3",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -4093,13 +4094,16 @@
             },
             "require": {
                 "ext-bcmath": "*",
+                "ext-json": "*",
                 "ext-mbstring": "*",
+                "ext-openssl": "*",
+                "ext-simplexml": "*",
+                "ext-xml": "*",
                 "guzzlehttp/guzzle": "~6.0",
-                "php": ">=5.6"
+                "php": ">=7.0"
             },
             "require-dev": {
-                "codeception/codeception": "*",
-                "endroid/qrcode": "~1.9"
+                "codeception/codeception": "*"
             },
             "type": "library",
             "autoload": {
@@ -4113,13 +4117,13 @@
             ],
             "authors": [
                 {
-                    "name": "helei",
+                    "name": "Leo",
                     "email": "dayugog@gmail.com",
-                    "homepage": "https://helei112g.github.io/categories/payment-3/"
+                    "homepage": "https://dayutalk.cn"
                 }
             ],
             "description": "支付宝支付、微信支付、招商一网通支付php SDK。方便快速接入,最完整的开源支付 php sdk",
-            "homepage": "https://helei112g.github.io/categories/payment-3/",
+            "homepage": "http://helei112g.github.io/payment",
             "keywords": [
                 "alipay",
                 "weixin",
@@ -4129,7 +4133,7 @@
                 "支付宝支付",
                 "集成支付接口SDK"
             ],
-            "time": "2018-05-23T12:01:20+00:00"
+            "time": "2020-02-03T07:50:08+00:00"
         },
         {
             "name": "seld/jsonlint",
@@ -4238,16 +4242,16 @@
         },
         {
             "name": "spatie/laravel-permission",
-            "version": "3.5.0",
+            "version": "3.6.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/spatie/laravel-permission.git",
-                "reference": "e9c08249ec3c24258531d0f967bd3d5559e0f79e"
+                "reference": "0a063ce206c7545737d19c1beda12003fc66e4e9"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/e9c08249ec3c24258531d0f967bd3d5559e0f79e",
-                "reference": "e9c08249ec3c24258531d0f967bd3d5559e0f79e",
+                "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/0a063ce206c7545737d19c1beda12003fc66e4e9",
+                "reference": "0a063ce206c7545737d19c1beda12003fc66e4e9",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -4257,14 +4261,14 @@
                 ]
             },
             "require": {
-                "illuminate/auth": "^5.8|^6.0",
-                "illuminate/container": "^5.8|^6.0",
-                "illuminate/contracts": "^5.8|^6.0",
-                "illuminate/database": "^5.8|^6.0",
+                "illuminate/auth": "^5.8|^6.0|^7.0",
+                "illuminate/container": "^5.8|^6.0|^7.0",
+                "illuminate/contracts": "^5.8|^6.0|^7.0",
+                "illuminate/database": "^5.8|^6.0|^7.0",
                 "php": "^7.2"
             },
             "require-dev": {
-                "orchestra/testbench": "^3.8|^4.0",
+                "orchestra/testbench": "^3.8|^4.0|^5.0",
                 "phpunit/phpunit": "^8.0",
                 "predis/predis": "^1.1"
             },
@@ -4308,7 +4312,7 @@
                 "security",
                 "spatie"
             ],
-            "time": "2020-01-07T16:34:21+00:00"
+            "time": "2020-01-17T16:18:51+00:00"
         },
         {
             "name": "swiftmailer/swiftmailer",
@@ -4380,16 +4384,16 @@
         },
         {
             "name": "symfony/console",
-            "version": "v4.4.2",
+            "version": "v4.4.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/console.git",
-                "reference": "82437719dab1e6bdd28726af14cb345c2ec816d0"
+                "reference": "f512001679f37e6a042b51897ed24a2f05eba656"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/console/zipball/82437719dab1e6bdd28726af14cb345c2ec816d0",
-                "reference": "82437719dab1e6bdd28726af14cb345c2ec816d0",
+                "url": "https://api.github.com/repos/symfony/console/zipball/f512001679f37e6a042b51897ed24a2f05eba656",
+                "reference": "f512001679f37e6a042b51897ed24a2f05eba656",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -4458,20 +4462,20 @@
             ],
             "description": "Symfony Console Component",
             "homepage": "https://symfony.com",
-            "time": "2019-12-17T10:32:23+00:00"
+            "time": "2020-01-25T12:44:29+00:00"
         },
         {
             "name": "symfony/css-selector",
-            "version": "v5.0.2",
+            "version": "v5.0.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/css-selector.git",
-                "reference": "19d29e7098b7b2c3313cb03902ca30f100dcb837"
+                "reference": "ff60c90cb7950b592ebc84ad1289d0345bf24f9f"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/css-selector/zipball/19d29e7098b7b2c3313cb03902ca30f100dcb837",
-                "reference": "19d29e7098b7b2c3313cb03902ca30f100dcb837",
+                "url": "https://api.github.com/repos/symfony/css-selector/zipball/ff60c90cb7950b592ebc84ad1289d0345bf24f9f",
+                "reference": "ff60c90cb7950b592ebc84ad1289d0345bf24f9f",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -4517,20 +4521,20 @@
             ],
             "description": "Symfony CssSelector Component",
             "homepage": "https://symfony.com",
-            "time": "2019-11-18T17:27:11+00:00"
+            "time": "2020-01-04T14:08:26+00:00"
         },
         {
             "name": "symfony/debug",
-            "version": "v4.4.2",
+            "version": "v4.4.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/debug.git",
-                "reference": "5c4c1db977dc70bb3250e1308d3e8c6341aa38f5"
+                "reference": "20236471058bbaa9907382500fc14005c84601f0"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/debug/zipball/5c4c1db977dc70bb3250e1308d3e8c6341aa38f5",
-                "reference": "5c4c1db977dc70bb3250e1308d3e8c6341aa38f5",
+                "url": "https://api.github.com/repos/symfony/debug/zipball/20236471058bbaa9907382500fc14005c84601f0",
+                "reference": "20236471058bbaa9907382500fc14005c84601f0",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -4579,20 +4583,20 @@
             ],
             "description": "Symfony Debug Component",
             "homepage": "https://symfony.com",
-            "time": "2019-12-16T14:46:54+00:00"
+            "time": "2020-01-25T12:44:29+00:00"
         },
         {
             "name": "symfony/error-handler",
-            "version": "v4.4.2",
+            "version": "v4.4.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/error-handler.git",
-                "reference": "6d7d7712a6ff5215ec26215672293b154f1db8c1"
+                "reference": "d2721499ffcaf246a743e01cdf6696d3d5dd74c1"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/error-handler/zipball/6d7d7712a6ff5215ec26215672293b154f1db8c1",
-                "reference": "6d7d7712a6ff5215ec26215672293b154f1db8c1",
+                "url": "https://api.github.com/repos/symfony/error-handler/zipball/d2721499ffcaf246a743e01cdf6696d3d5dd74c1",
+                "reference": "d2721499ffcaf246a743e01cdf6696d3d5dd74c1",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -4641,20 +4645,20 @@
             ],
             "description": "Symfony ErrorHandler Component",
             "homepage": "https://symfony.com",
-            "time": "2019-12-16T14:46:54+00:00"
+            "time": "2020-01-27T09:48:47+00:00"
         },
         {
             "name": "symfony/event-dispatcher",
-            "version": "v4.4.2",
+            "version": "v4.4.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/event-dispatcher.git",
-                "reference": "b3c3068a72623287550fe20b84a2b01dcba2686f"
+                "reference": "9e3de195e5bc301704dd6915df55892f6dfc208b"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b3c3068a72623287550fe20b84a2b01dcba2686f",
-                "reference": "b3c3068a72623287550fe20b84a2b01dcba2686f",
+                "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9e3de195e5bc301704dd6915df55892f6dfc208b",
+                "reference": "9e3de195e5bc301704dd6915df55892f6dfc208b",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -4717,7 +4721,7 @@
             ],
             "description": "Symfony EventDispatcher Component",
             "homepage": "https://symfony.com",
-            "time": "2019-11-28T13:33:56+00:00"
+            "time": "2020-01-10T21:54:01+00:00"
         },
         {
             "name": "symfony/event-dispatcher-contracts",
@@ -4785,16 +4789,16 @@
         },
         {
             "name": "symfony/filesystem",
-            "version": "v4.4.2",
+            "version": "v4.4.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/filesystem.git",
-                "reference": "40c2606131d56eff6f193b6e2ceb92414653b591"
+                "reference": "266c9540b475f26122b61ef8b23dd9198f5d1cfd"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/filesystem/zipball/40c2606131d56eff6f193b6e2ceb92414653b591",
-                "reference": "40c2606131d56eff6f193b6e2ceb92414653b591",
+                "url": "https://api.github.com/repos/symfony/filesystem/zipball/266c9540b475f26122b61ef8b23dd9198f5d1cfd",
+                "reference": "266c9540b475f26122b61ef8b23dd9198f5d1cfd",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -4837,20 +4841,20 @@
             ],
             "description": "Symfony Filesystem Component",
             "homepage": "https://symfony.com",
-            "time": "2019-11-26T23:16:41+00:00"
+            "time": "2020-01-21T08:20:44+00:00"
         },
         {
             "name": "symfony/finder",
-            "version": "v4.4.2",
+            "version": "v4.4.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/finder.git",
-                "reference": "ce8743441da64c41e2a667b8eb66070444ed911e"
+                "reference": "3a50be43515590faf812fbd7708200aabc327ec3"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/finder/zipball/ce8743441da64c41e2a667b8eb66070444ed911e",
-                "reference": "ce8743441da64c41e2a667b8eb66070444ed911e",
+                "url": "https://api.github.com/repos/symfony/finder/zipball/3a50be43515590faf812fbd7708200aabc327ec3",
+                "reference": "3a50be43515590faf812fbd7708200aabc327ec3",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -4892,20 +4896,20 @@
             ],
             "description": "Symfony Finder Component",
             "homepage": "https://symfony.com",
-            "time": "2019-11-17T21:56:56+00:00"
+            "time": "2020-01-04T13:00:46+00:00"
         },
         {
             "name": "symfony/http-foundation",
-            "version": "v4.4.2",
+            "version": "v4.4.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/http-foundation.git",
-                "reference": "fcae1cff5b57b2a9c3aabefeb1527678705ddb62"
+                "reference": "491a20dfa87e0b3990170593bc2de0bb34d828a5"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/http-foundation/zipball/fcae1cff5b57b2a9c3aabefeb1527678705ddb62",
-                "reference": "fcae1cff5b57b2a9c3aabefeb1527678705ddb62",
+                "url": "https://api.github.com/repos/symfony/http-foundation/zipball/491a20dfa87e0b3990170593bc2de0bb34d828a5",
+                "reference": "491a20dfa87e0b3990170593bc2de0bb34d828a5",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -4953,20 +4957,20 @@
             ],
             "description": "Symfony HttpFoundation Component",
             "homepage": "https://symfony.com",
-            "time": "2019-12-19T15:57:49+00:00"
+            "time": "2020-01-31T09:11:17+00:00"
         },
         {
             "name": "symfony/http-kernel",
-            "version": "v4.4.2",
+            "version": "v4.4.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/http-kernel.git",
-                "reference": "fe310d2e95cd4c356836c8ecb0895a46d97fede2"
+                "reference": "62116a9c8fb15faabb158ad9cb785c353c2572e5"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/http-kernel/zipball/fe310d2e95cd4c356836c8ecb0895a46d97fede2",
-                "reference": "fe310d2e95cd4c356836c8ecb0895a46d97fede2",
+                "url": "https://api.github.com/repos/symfony/http-kernel/zipball/62116a9c8fb15faabb158ad9cb785c353c2572e5",
+                "reference": "62116a9c8fb15faabb158ad9cb785c353c2572e5",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -5049,20 +5053,20 @@
             ],
             "description": "Symfony HttpKernel Component",
             "homepage": "https://symfony.com",
-            "time": "2019-12-19T16:23:40+00:00"
+            "time": "2020-01-31T12:45:06+00:00"
         },
         {
             "name": "symfony/mime",
-            "version": "v5.0.2",
+            "version": "v5.0.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/mime.git",
-                "reference": "0e6a4ced216e49d457eddcefb61132173a876d79"
+                "reference": "2a3c7fee1f1a0961fa9cf360d5da553d05095e59"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/mime/zipball/0e6a4ced216e49d457eddcefb61132173a876d79",
-                "reference": "0e6a4ced216e49d457eddcefb61132173a876d79",
+                "url": "https://api.github.com/repos/symfony/mime/zipball/2a3c7fee1f1a0961fa9cf360d5da553d05095e59",
+                "reference": "2a3c7fee1f1a0961fa9cf360d5da553d05095e59",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -5117,7 +5121,7 @@
                 "mime",
                 "mime-type"
             ],
-            "time": "2019-11-30T14:12:50+00:00"
+            "time": "2020-01-04T14:08:26+00:00"
         },
         {
             "name": "symfony/polyfill-ctype",
@@ -5508,16 +5512,16 @@
         },
         {
             "name": "symfony/process",
-            "version": "v4.4.2",
+            "version": "v4.4.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/process.git",
-                "reference": "b84501ad50adb72a94fb460a5b5c91f693e99c9b"
+                "reference": "f5697ab4cb14a5deed7473819e63141bf5352c36"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/process/zipball/b84501ad50adb72a94fb460a5b5c91f693e99c9b",
-                "reference": "b84501ad50adb72a94fb460a5b5c91f693e99c9b",
+                "url": "https://api.github.com/repos/symfony/process/zipball/f5697ab4cb14a5deed7473819e63141bf5352c36",
+                "reference": "f5697ab4cb14a5deed7473819e63141bf5352c36",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -5559,20 +5563,20 @@
             ],
             "description": "Symfony Process Component",
             "homepage": "https://symfony.com",
-            "time": "2019-12-06T10:06:46+00:00"
+            "time": "2020-01-09T09:50:08+00:00"
         },
         {
             "name": "symfony/routing",
-            "version": "v4.4.2",
+            "version": "v4.4.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/routing.git",
-                "reference": "628bcafae1b2043969378dcfbf9c196539a38722"
+                "reference": "7bf4e38573728e317b926ca4482ad30470d0e86a"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/routing/zipball/628bcafae1b2043969378dcfbf9c196539a38722",
-                "reference": "628bcafae1b2043969378dcfbf9c196539a38722",
+                "url": "https://api.github.com/repos/symfony/routing/zipball/7bf4e38573728e317b926ca4482ad30470d0e86a",
+                "reference": "7bf4e38573728e317b926ca4482ad30470d0e86a",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -5641,7 +5645,7 @@
                 "uri",
                 "url"
             ],
-            "time": "2019-12-12T12:53:52+00:00"
+            "time": "2020-01-08T17:29:02+00:00"
         },
         {
             "name": "symfony/service-contracts",
@@ -5709,16 +5713,16 @@
         },
         {
             "name": "symfony/translation",
-            "version": "v4.4.2",
+            "version": "v4.4.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/translation.git",
-                "reference": "f7669f48a9633bf8139bc026c755e894b7206677"
+                "reference": "f5d2ac46930238b30a9c2f1b17c905f3697d808c"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/translation/zipball/f7669f48a9633bf8139bc026c755e894b7206677",
-                "reference": "f7669f48a9633bf8139bc026c755e894b7206677",
+                "url": "https://api.github.com/repos/symfony/translation/zipball/f5d2ac46930238b30a9c2f1b17c905f3697d808c",
+                "reference": "f5d2ac46930238b30a9c2f1b17c905f3697d808c",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -5787,7 +5791,7 @@
             ],
             "description": "Symfony Translation Component",
             "homepage": "https://symfony.com",
-            "time": "2019-12-12T12:53:52+00:00"
+            "time": "2020-01-15T13:29:06+00:00"
         },
         {
             "name": "symfony/translation-contracts",
@@ -5854,16 +5858,16 @@
         },
         {
             "name": "symfony/var-dumper",
-            "version": "v4.4.2",
+            "version": "v4.4.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/var-dumper.git",
-                "reference": "be330f919bdb395d1e0c3f2bfb8948512d6bdd99"
+                "reference": "46b53fd714568af343953c039ff47b67ce8af8d6"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/var-dumper/zipball/be330f919bdb395d1e0c3f2bfb8948512d6bdd99",
-                "reference": "be330f919bdb395d1e0c3f2bfb8948512d6bdd99",
+                "url": "https://api.github.com/repos/symfony/var-dumper/zipball/46b53fd714568af343953c039ff47b67ce8af8d6",
+                "reference": "46b53fd714568af343953c039ff47b67ce8af8d6",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -5932,7 +5936,7 @@
                 "debug",
                 "dump"
             ],
-            "time": "2019-12-18T13:41:29+00:00"
+            "time": "2020-01-25T12:44:29+00:00"
         },
         {
             "name": "tijsverkoyen/css-to-inline-styles",
@@ -6366,16 +6370,16 @@
         },
         {
             "name": "myclabs/deep-copy",
-            "version": "1.9.4",
+            "version": "1.9.5",
             "source": {
                 "type": "git",
                 "url": "https://github.com/myclabs/DeepCopy.git",
-                "reference": "579bb7356d91f9456ccd505f24ca8b667966a0a7"
+                "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/579bb7356d91f9456ccd505f24ca8b667966a0a7",
-                "reference": "579bb7356d91f9456ccd505f24ca8b667966a0a7",
+                "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef",
+                "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -6416,7 +6420,7 @@
                 "object",
                 "object graph"
             ],
-            "time": "2019-12-15T19:12:40+00:00"
+            "time": "2020-01-17T21:11:47+00:00"
         },
         {
             "name": "nunomaduro/collision",
@@ -6773,16 +6777,16 @@
         },
         {
             "name": "phpspec/prophecy",
-            "version": "1.10.1",
+            "version": "v1.10.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/phpspec/prophecy.git",
-                "reference": "cbe1df668b3fe136bcc909126a0f529a78d4cbbc"
+                "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/phpspec/prophecy/zipball/cbe1df668b3fe136bcc909126a0f529a78d4cbbc",
-                "reference": "cbe1df668b3fe136bcc909126a0f529a78d4cbbc",
+                "url": "https://api.github.com/repos/phpspec/prophecy/zipball/b4400efc9d206e83138e2bb97ed7f5b14b831cd9",
+                "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9",
                 "shasum": "",
                 "mirrors": [
                     {
@@ -6795,8 +6799,8 @@
                 "doctrine/instantiator": "^1.0.2",
                 "php": "^5.3|^7.0",
                 "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0",
-                "sebastian/comparator": "^1.2.3|^2.0|^3.0",
-                "sebastian/recursion-context": "^1.0|^2.0|^3.0"
+                "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0",
+                "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0"
             },
             "require-dev": {
                 "phpspec/phpspec": "^2.5 || ^3.2",
@@ -6838,7 +6842,7 @@
                 "spy",
                 "stub"
             ],
-            "time": "2019-12-22T21:05:45+00:00"
+            "time": "2020-01-20T15:57:02+00:00"
         },
         {
             "name": "phpunit/php-code-coverage",

+ 1 - 1
resources/views/admin/addNode.blade.php

@@ -470,7 +470,7 @@
                         swal.fire({title: ret.message, type: 'success', timer: 1000, showConfirmButton: false})
                             .then(() => window.location.href = '/admin/nodeList')
                     } else {
-                        swal.fire({title: ret.message, type: "error"}).then(() => window.location.reload())
+                        swal.fire({title: ret.message, type: "error"})
                     }
                 }
             });

+ 6 - 30
resources/views/user/index.blade.php

@@ -133,40 +133,16 @@
 							</div>
 						</div>
 					</div>
-					<div class="col-xl-4 col-lg-6 pb-30">
-						<div class="card card-shadow text-center h-full">
-							<div class="card-block">
-								@if(\App\Components\Helpers::systemConfig()['is_push_bear'] && \App\Components\Helpers::systemConfig()['push_bear_qrcode'])
+					@if(\App\Components\Helpers::systemConfig()['is_push_bear'] && \App\Components\Helpers::systemConfig()['push_bear_qrcode'])
+						<div class="col-xl-4 col-lg-6 pb-30">
+							<div class="card card-shadow text-center h-full">
+								<div class="card-block">
 									<h4 class="card-title"><i class="wb-bell mr-10 yellow-600"></i>微信公告推送</h4>
 									<p class="card-text" id="subscribe_qrcode"></p>
-								@else
-									<h4 class="card-title"><i class="wb-bell mr-10 yellow-600"></i>交流群</h4>
-								@endif
-								@if($not_paying_user)
-									<p class="card-link btn btn-sm btn-primary"><i class="wb-lock mr-5"></i>购买服务后解锁</p>
-								@else
-									<div class="btn-group">
-										<a class="card-link btn btn-sm btn-pill-left btn-info" href="https://jq.qq.com/?_wv=1027&k=52AI188" target="_blank" rel="noopener">
-											<i class="fa fa-qq"></i> QQ群</a>
-										<a class="card-link btn btn-sm btn-pill-right btn-success" href="https://t.me/otakucloud" target="_blank" rel="noopener">TG群
-											<i class="fa fa-paper-plane"></i></a>
-									</div>
-								@endif
-							</div>
-						</div>
-					</div>
-					<!--
-					<div class="col-xl-4 col-lg-6 pb-30">
-						<div class="card card-shadow">
-							<div class="card-block p-20">
-								<h4 class="card-title"><i class="wb-info-circle blue-600 mr-10"></i>账号信息</h4>
-								  TO Do
-								 添加 权限 信息
-								 添加 账号 总流量 信息
+								</div>
 							</div>
 						</div>
-					</div>
-					-->
+					@endif
 				</div>
 				<div class="row" data-plugin="matchHeight" data-by-row="true">
 					<div class="col-xxl-6 mb-35">

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

@@ -14,7 +14,7 @@
 	<meta name="description" content="">
 	<meta name="keywords" content="">
 	<meta name="author" content="兔姬菌">
-	<meta name="copyright" content="2017-2019©兔姬菌">
+	<meta name="copyright" content="2017-2020©兔姬菌">
 	<link href="{{asset('favicon.ico')}}" rel="shortcut icon apple-touch-icon">
 	<!-- 样式表/Stylesheets -->
 	<link href="/assets/global/css/bootstrap.min.css" type="text/css" rel="stylesheet">
@@ -201,7 +201,7 @@
 	@yield('content')
 </div>
 <footer class="site-footer">
-	<div class="site-footer-legal"> Copyright &copy; 2017 - 2019
+	<div class="site-footer-legal"> Copyright &copy; 2017 - 2020
 		<a href="{{\App\Components\Helpers::systemConfig()['website_url']}}" target="_blank">{{\App\Components\Helpers::systemConfig()['website_name']}}</a> | 基于<a href="https://github.com/ZBrettonYe/SSRPanel_OtakuMod">{{config('version.name')}}</a> 版本: {{config('version.number')}}  开发
 	</div>
 	<div class="site-footer-right">