diff --git a/app/Services/ServerService.php b/app/Services/ServerService.php index 058500a4..2edddc54 100644 --- a/app/Services/ServerService.php +++ b/app/Services/ServerService.php @@ -27,17 +27,17 @@ class ServerService for ($i = 0; $i < count($v2ray); $i++) { $v2ray[$i]['type'] = 'v2ray'; $groupId = $v2ray[$i]['group_id']; + if (strpos($v2ray[$i]['port'], '-') !== false) { + $v2ray[$i]['port'] = Helper::randomPort($v2ray[$i]['port']); + } if (in_array($user->group_id, $groupId)) { if ($v2ray[$i]['parent_id']) { $v2ray[$i]['last_check_at'] = Cache::get(CacheKey::get('SERVER_V2RAY_LAST_CHECK_AT', $v2ray[$i]['parent_id'])); } else { $v2ray[$i]['last_check_at'] = Cache::get(CacheKey::get('SERVER_V2RAY_LAST_CHECK_AT', $v2ray[$i]['id'])); } - array_push($servers, $v2ray[$i]->toArray()); - } - if (strpos($v2ray[$i]['port'], '-') !== false) { - $v2ray[$i]['port'] = Helper::randomPort($v2ray[$i]['port']); } + array_push($servers, $v2ray[$i]->toArray()); } @@ -55,17 +55,17 @@ class ServerService for ($i = 0; $i < count($trojan); $i++) { $trojan[$i]['type'] = 'trojan'; $groupId = $trojan[$i]['group_id']; + if (strpos($trojan[$i]['port'], '-') !== false) { + $trojan[$i]['port'] = Helper::randomPort($trojan[$i]['port']); + } if (in_array($user->group_id, $groupId)) { if ($trojan[$i]['parent_id']) { $trojan[$i]['last_check_at'] = Cache::get(CacheKey::get('SERVER_TROJAN_LAST_CHECK_AT', $trojan[$i]['parent_id'])); } else { $trojan[$i]['last_check_at'] = Cache::get(CacheKey::get('SERVER_TROJAN_LAST_CHECK_AT', $trojan[$i]['id'])); } - array_push($servers, $trojan[$i]->toArray()); - } - if (strpos($trojan[$i]['port'], '-') !== false) { - $trojan[$i]['port'] = Helper::randomPort($trojan[$i]['port']); } + array_push($servers, $trojan[$i]->toArray()); } return $servers; } @@ -81,17 +81,17 @@ class ServerService for ($i = 0; $i < count($shadowsocks); $i++) { $shadowsocks[$i]['type'] = 'shadowsocks'; $groupId = $shadowsocks[$i]['group_id']; + if (strpos($shadowsocks[$i]['port'], '-') !== false) { + $shadowsocks[$i]['port'] = Helper::randomPort($shadowsocks[$i]['port']); + } if (in_array($user->group_id, $groupId)) { if ($shadowsocks[$i]['parent_id']) { $shadowsocks[$i]['last_check_at'] = Cache::get(CacheKey::get('SERVER_SHADOWSOCKS_LAST_CHECK_AT', $shadowsocks[$i]['parent_id'])); } else { $shadowsocks[$i]['last_check_at'] = Cache::get(CacheKey::get('SERVER_SHADOWSOCKS_LAST_CHECK_AT', $shadowsocks[$i]['id'])); } - array_push($servers, $shadowsocks[$i]->toArray()); - } - if (strpos($shadowsocks[$i]['port'], '-') !== false) { - $shadowsocks[$i]['port'] = Helper::randomPort($shadowsocks[$i]['port']); } + array_push($servers, $shadowsocks[$i]->toArray()); } return $servers; } diff --git a/database/install.sql b/database/install.sql index d081e907..1a02be0f 100644 --- a/database/install.sql +++ b/database/install.sql @@ -254,7 +254,7 @@ CREATE TABLE `v2_server_v2ray` ( `name` varchar(255) CHARACTER SET utf8mb4 NOT NULL, `parent_id` int(11) DEFAULT NULL, `host` varchar(255) NOT NULL, - `port` int(11) NOT NULL, + `port` char(11) NOT NULL, `server_port` int(11) NOT NULL, `tls` tinyint(4) NOT NULL DEFAULT '0', `tags` varchar(255) DEFAULT NULL, @@ -372,4 +372,4 @@ CREATE TABLE `v2_user` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- 2022-02-07 07:04:34 +-- 2022-02-16 19:16:57 diff --git a/database/update.sql b/database/update.sql index 03c3a70d..a4104ed2 100644 --- a/database/update.sql +++ b/database/update.sql @@ -486,3 +486,6 @@ ALTER TABLE `v2_notice` ALTER TABLE `v2_order` ADD `actual_commission_balance` int(11) NULL COMMENT '实际支付佣金' AFTER `commission_balance`; + +ALTER TABLE `v2_server_v2ray` + CHANGE `port` `port` char(11) NOT NULL AFTER `host`;