admin пре 7 година
родитељ
комит
024a4fe744

+ 21 - 3
app/Http/Controllers/AdminController.php

@@ -608,6 +608,7 @@ class AdminController extends Controller
                 $ssNode->monitor_url = $request->get('monitor_url') ? $request->get('monitor_url') : '';
                 $ssNode->is_subscribe = intval($request->get('is_subscribe'));
                 $ssNode->is_nat = intval($request->get('is_nat'));
+                $ssNode->is_udp = intval($request->get('is_udp'));
                 $ssNode->ssh_port = $request->get('ssh_port') ? intval($request->get('ssh_port')) : 22;
                 $ssNode->is_tcp_check = intval($request->get('is_tcp_check'));
                 $ssNode->compatible = intval($request->get('type')) == 2 ? 0 : (intval($request->get('is_nat')) ? 0 : intval($request->get('compatible')));
@@ -725,6 +726,7 @@ class AdminController extends Controller
                     'monitor_url'     => $request->get('monitor_url') ? $request->get('monitor_url') : '',
                     'is_subscribe'    => intval($request->get('is_subscribe')),
                     'is_nat'          => intval($request->get('is_nat')),
+                    'is_udp'          => intval($request->get('is_udp')),
                     'ssh_port'        => intval($request->get('ssh_port')),
                     'is_tcp_check'    => intval($request->get('is_tcp_check')),
                     'compatible'      => intval($request->get('type')) == 2 ? 0 : (intval($request->get('is_nat')) ? 0 : intval($request->get('compatible'))),
@@ -2387,7 +2389,10 @@ EOF;
     {
         $username = trim($request->get('username'));
         $status = $request->get('status');
-        $port = $request->get('port');
+        $port = intval($request->get('port'));
+        $wechat = trim($request->get('wechat'));
+        $qq = trim($request->get('qq'));
+        $enable = intval($request->get('enable'));
 
         $query = User::query();
 
@@ -2399,14 +2404,27 @@ EOF;
             $query->where('status', intval($status));
         }
 
-        if ($port) {
+        if (!empty($wechat)) {
+            $query->where('wechat', 'like', '%' . $wechat . '%');
+        }
+
+        if (!empty($qq)) {
+            $query->where('qq', 'like', '%' . $qq . '%');
+        }
+
+        if (!empty($port)) {
             $query->where('port', intval($port));
         }
 
+        if ($enable != '') {
+            $query->where('enable', intval($enable));
+        }
+
         $userList = $query->paginate(15);
         if (!$userList->isEmpty()) {
             foreach ($userList as &$user) {
-                $user->onlineIPList = SsNodeIp::query()->with(['node', 'user'])->where('port', $user->port)->where('type', 'tcp')->orderBy('id', 'desc')->limit(5)->get();
+                // 最近10条在线IP记录,如果后端设置为60秒上报一次,则为10分钟内的在线IP
+                $user->onlineIPList = SsNodeIp::query()->with(['node', 'user'])->where('port', $user->port)->where('type', 'tcp')->orderBy('id', 'desc')->limit(10)->get();
             }
         }
 

+ 18 - 0
resources/views/admin/addNode.blade.php

@@ -167,6 +167,22 @@
                                                         </div>
                                                     </div>
                                                 </div>
+                                                <div class="form-group">
+                                                    <label for="is_udp" class="col-md-3 control-label">UDP</label>
+                                                    <div class="col-md-8">
+                                                        <div class="mt-radio-inline">
+                                                            <label class="mt-radio">
+                                                                <input type="radio" name="is_udp" value="1" checked> 允许
+                                                                <span></span>
+                                                            </label>
+                                                            <label class="mt-radio">
+                                                                <input type="radio" name="is_udp" value="0"> 不允许
+                                                                <span></span>
+                                                            </label>
+                                                        </div>
+                                                        <span class="help-block"> 禁止UDP,则无法用于加速游戏 </span>
+                                                    </div>
+                                                </div>
                                                 <div class="form-group">
                                                     <label for="is_tcp_check" class="col-md-3 control-label">TCP阻断检测</label>
                                                     <div class="col-md-8">
@@ -508,6 +524,7 @@
             var monitor_url = $('#monitor_url').val();
             var is_subscribe = $("input:radio[name='is_subscribe']:checked").val();
             var is_nat = $("input:radio[name='is_nat']:checked").val();
+            var is_udp = $("input:radio[name='is_udp']:checked").val();
             var ssh_port = $('#ssh_port').val();
             var compatible = $("input:radio[name='compatible']:checked").val();
             var single = $("input:radio[name='single']:checked").val();
@@ -556,6 +573,7 @@
                     monitor_url: monitor_url,
                     is_subscribe: is_subscribe,
                     is_nat: is_nat,
+                    is_udp: is_udp,
                     ssh_port: ssh_port,
                     compatible: compatible,
                     single: single,

+ 18 - 0
resources/views/admin/editNode.blade.php

@@ -170,6 +170,22 @@
                                                         </div>
                                                     </div>
                                                 </div>
+                                                <div class="form-group">
+                                                    <label for="is_udp" class="col-md-3 control-label">UDP</label>
+                                                    <div class="col-md-8">
+                                                        <div class="mt-radio-inline">
+                                                            <label class="mt-radio">
+                                                                <input type="radio" name="is_udp" value="1" {{$node->is_udp ? 'checked' : ''}}> 允许
+                                                                <span></span>
+                                                            </label>
+                                                            <label class="mt-radio">
+                                                                <input type="radio" name="is_udp" value="0" {{!$node->is_udp ? 'checked' : ''}}> 不允许
+                                                                <span></span>
+                                                            </label>
+                                                        </div>
+                                                        <span class="help-block"> 禁止UDP,则无法用于加速游戏 </span>
+                                                    </div>
+                                                </div>
                                                 <div class="form-group">
                                                     <label for="is_tcp_check" class="col-md-3 control-label">TCP阻断检测</label>
                                                     <div class="col-md-8">
@@ -513,6 +529,7 @@
             var monitor_url = $('#monitor_url').val();
             var is_subscribe = $("input:radio[name='is_subscribe']:checked").val();
             var is_nat = $("input:radio[name='is_nat']:checked").val();
+            var is_udp = $("input:radio[name='is_udp']:checked").val();
             var ssh_port = $('#ssh_port').val();
             var compatible = $("input:radio[name='compatible']:checked").val();
             var single = $("input:radio[name='single']:checked").val();
@@ -562,6 +579,7 @@
                     monitor_url: monitor_url,
                     is_subscribe: is_subscribe,
                     is_nat: is_nat,
+                    is_udp: is_udp,
                     ssh_port: ssh_port,
                     compatible: compatible,
                     single: single,

+ 1 - 11
resources/views/admin/userOnlineIPList.blade.php

@@ -109,7 +109,7 @@
                                                             @foreach($user->onlineIPList as $vo)
                                                                 <tr>
                                                                     <td>{{$vo->created_at}}</td>
-                                                                    <td>{{$vo->node->name}}</td>
+                                                                    <td>{{$vo->node ? $vo->node->name : '【节点已删除】'}}</td>
                                                                     <td>{{$vo->type}}</td>
                                                                     <td>{{$vo->ip}}</td>
                                                                 </tr>
@@ -157,15 +157,5 @@
 
             window.location.href = '{{url('admin/userOnlineIPList')}}' + '?username=' + username + '&wechat=' + wechat + '&qq=' + qq + '&port=' + port + '&status=' + status + '&enable=' + enable;
         }
-
-        // 修正table的dropdown
-        $('.table-scrollable').on('show.bs.dropdown', function () {
-            $('.table-scrollable').css( "overflow", "inherit" );
-        });
-
-        $('.table-scrollable').on('hide.bs.dropdown', function () {
-            $('.table-scrollable').css( "overflow", "auto" );
-        });
-
     </script>
 @endsection

+ 1 - 0
sql/db.sql

@@ -44,6 +44,7 @@ CREATE TABLE `ss_node` (
   `monitor_url` VARCHAR(255) NULL DEFAULT NULL COMMENT '监控地址',
   `is_subscribe` TINYINT(4) NULL DEFAULT '1' COMMENT '是否允许用户订阅该节点:0-否、1-是',
   `is_nat` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '是否为NAT机:0-否、1-是',
+  `is_udp` TINYINT(4) NOT NULL DEFAULT '1' COMMENT '是否允许UDP:0-否、1-是',
   `ssh_port` SMALLINT(6) UNSIGNED NOT NULL DEFAULT '22' COMMENT 'SSH端口',
   `is_tcp_check` TINYINT(4) NOT NULL DEFAULT '1' COMMENT '是否开启检测: 0-不开启、1-开启',
   `compatible` TINYINT(4) NULL DEFAULT '0' COMMENT '兼容SS',

+ 3 - 0
sql/update/20190124.sql

@@ -0,0 +1,3 @@
+-- 节点是否允许UDP
+ALTER TABLE `ss_node`
+	ADD COLUMN `is_udp` TINYINT(4) NOT NULL DEFAULT '1' COMMENT '是否允许UDP:0-否、1-是' AFTER `is_nat`;