update: server sort

This commit is contained in:
v2board 2023-01-30 20:12:01 +08:00
parent 7f25fb674f
commit 1957dab114
2 changed files with 26 additions and 25 deletions

View File

@ -24,22 +24,22 @@ class ManageController extends Controller
{ {
ini_set('post_max_size', '1m'); ini_set('post_max_size', '1m');
DB::beginTransaction(); DB::beginTransaction();
foreach ($request->input('sorts') as $k => $v) { foreach ($request->input('sorts') ?? [] as $k => $v) {
switch ($v['key']) { switch ($v['key']) {
case 'shadowsocks': case 'shadowsocks':
if (!ServerShadowsocks::find($v['value'])->update(['sort' => $k + 1])) { if (!ServerShadowsocks::find($v['value'])->update(['sort' => $v['sort']])) {
DB::rollBack(); DB::rollBack();
abort(500, '保存失败'); abort(500, '保存失败');
} }
break; break;
case 'v2ray': case 'v2ray':
if (!ServerV2ray::find($v['value'])->update(['sort' => $k + 1])) { if (!ServerV2ray::find($v['value'])->update(['sort' => $v['sort']])) {
DB::rollBack(); DB::rollBack();
abort(500, '保存失败'); abort(500, '保存失败');
} }
break; break;
case 'trojan': case 'trojan':
if (!ServerTrojan::find($v['value'])->update(['sort' => $k + 1])) { if (!ServerTrojan::find($v['value'])->update(['sort' => $v['sort']])) {
DB::rollBack(); DB::rollBack();
abort(500, '保存失败'); abort(500, '保存失败');
} }

View File

@ -151,43 +151,44 @@ class ServerService
public function getAllShadowsocks() public function getAllShadowsocks()
{ {
$server = ServerShadowsocks::orderBy('sort', 'ASC')->get(); $servers = ServerShadowsocks::orderBy('sort', 'ASC')
for ($i = 0; $i < count($server); $i++) { ->get()
$server[$i]['type'] = 'shadowsocks'; ->toArray();
foreach ($servers as $k => $v) {
$servers[$k]['type'] = 'shadowsocks';
} }
return $server->toArray(); return $servers;
} }
public function getAllV2ray() public function getAllV2ray()
{ {
$server = ServerV2ray::orderBy('sort', 'ASC')->get(); $servers = ServerV2ray::orderBy('sort', 'ASC')
for ($i = 0; $i < count($server); $i++) { ->get()
$server[$i]['type'] = 'v2ray'; ->toArray();
foreach ($servers as $k => $v) {
$servers[$k]['type'] = 'v2ray';
} }
return $server->toArray(); return $servers;
} }
public function getAllTrojan() public function getAllTrojan()
{ {
$server = ServerTrojan::orderBy('sort', 'ASC')->get(); $servers = ServerTrojan::orderBy('sort', 'ASC')
for ($i = 0; $i < count($server); $i++) { ->get()
$server[$i]['type'] = 'trojan'; ->toArray();
foreach ($servers as $k => $v) {
$servers[$k]['type'] = 'trojan';
} }
return $server->toArray(); return $servers;
} }
private function mergeData(&$servers) private function mergeData(&$servers)
{ {
foreach ($servers as $k => $v) { foreach ($servers as $k => $v) {
$serverType = strtoupper($servers[$k]['type']); $serverType = strtoupper($v['type']);
$servers[$k]['online'] = Cache::get(CacheKey::get("SERVER_{$serverType}_ONLINE_USER", $servers[$k]['parent_id'] ? $servers[$k]['parent_id'] : $servers[$k]['id'])); $servers[$k]['online'] = Cache::get(CacheKey::get("SERVER_{$serverType}_ONLINE_USER", $v['parent_id'] ?? $v['id']));
if ($servers[$k]['parent_id']) { $servers[$k]['last_check_at'] = Cache::get(CacheKey::get("SERVER_{$serverType}_LAST_CHECK_AT", $v['parent_id'] ?? $v['id']));
$servers[$k]['last_check_at'] = Cache::get(CacheKey::get("SERVER_{$serverType}_LAST_CHECK_AT", $servers[$k]['parent_id'])); $servers[$k]['last_push_at'] = Cache::get(CacheKey::get("SERVER_{$serverType}_LAST_PUSH_AT", $v['parent_id'] ?? $v['id']));
$servers[$k]['last_push_at'] = Cache::get(CacheKey::get("SERVER_{$serverType}_LAST_PUSH_AT", $servers[$k]['parent_id']));
} else {
$servers[$k]['last_check_at'] = Cache::get(CacheKey::get("SERVER_{$serverType}_LAST_CHECK_AT", $servers[$k]['id']));
$servers[$k]['last_push_at'] = Cache::get(CacheKey::get("SERVER_{$serverType}_LAST_PUSH_AT", $servers[$k]['id']));
}
if ((time() - 300) >= $servers[$k]['last_check_at']) { if ((time() - 300) >= $servers[$k]['last_check_at']) {
$servers[$k]['available_status'] = 0; $servers[$k]['available_status'] = 0;
} else if ((time() - 300) >= $servers[$k]['last_push_at']) { } else if ((time() - 300) >= $servers[$k]['last_push_at']) {