ソースを参照

Merge pull request #60 from izhangxm/master

将用户等级修改为可动态调整,并修复账户信息显示bug
胖虎 8 年 前
コミット
5ff123b5ce

+ 2 - 2
.env

@@ -1,9 +1,9 @@
 APP_NAME=Laravel
 APP_ENV=local
-APP_KEY=base64:6nNq+XYCwjwi/FQ/x9tK40ETErxtRUzLWk8Jny9bRa8=
+APP_KEY=base64:+P29JuonB2Q8yy0ENL0k9GVS+S6twoGLTy3r+OT8ES4=
 APP_DEBUG=true
 APP_LOG_LEVEL=debug
-APP_URL=http://localhost
+APP_URL=http://localssrpanel.com
 
 DB_CONNECTION=mysql
 DB_HOST=127.0.0.1

+ 4 - 0
.gitignore

@@ -6,3 +6,7 @@
 /.vagrant
 /.env
 /.env.example
+Homestead.json
+Homestead.yaml
+npm-debug.log
+.DS_Store

+ 86 - 6
app/Http/Controllers/AdminController.php

@@ -6,6 +6,7 @@ use App\Http\Models\Article;
 use App\Http\Models\ArticleLog;
 use App\Http\Models\Config;
 use App\Http\Models\Invite;
+use App\Http\Models\Level;
 use App\Http\Models\OrderGoods;
 use App\Http\Models\ReferralApply;
 use App\Http\Models\ReferralLog;
@@ -19,7 +20,9 @@ use App\Http\Models\User;
 use App\Http\Models\UserSubscribe;
 use App\Http\Models\UserSubscribeLog;
 use App\Http\Models\UserTrafficLog;
+use function GuzzleHttp\Psr7\_parse_message;
 use Illuminate\Http\Request;
+use Mockery\Exception;
 use Redirect;
 use Response;
 
@@ -203,7 +206,7 @@ class AdminController extends BaseController
             $view['method_list'] = $this->methodList();
             $view['protocol_list'] = $this->protocolList();
             $view['obfs_list'] = $this->obfsList();
-
+            $view['level_list'] = Level::get()->sortBy('level');
             return Response::view('admin/addUser', $view);
         }
     }
@@ -292,7 +295,7 @@ class AdminController extends BaseController
             $view['method_list'] = $this->methodList();
             $view['protocol_list'] = $this->protocolList();
             $view['obfs_list'] = $this->obfsList();
-
+            $view['level_list'] = Level::get()->sortBy('level');
             return Response::view('admin/editUser', $view);
         }
     }
@@ -562,7 +565,13 @@ class AdminController extends BaseController
     public function groupList(Request $request)
     {
         $view['groupList'] = SsGroup::paginate(10)->appends($request->except('page'));
+        $level_list = Level::get()->sortBy('level');
 
+        $level_dict=array();
+        foreach ($level_list as $ele){
+            $level_dict[$ele['level']]=$ele['level_name'];
+        }
+        $view['level_dict'] = $level_dict;
         return Response::view('admin/groupList', $view);
     }
 
@@ -580,7 +589,8 @@ class AdminController extends BaseController
 
             return Response::json(['status' => 'success', 'data' => '', 'message' => '添加成功']);
         } else {
-            return Response::view('admin/addGroup');
+            $view['level_list'] = Level::get()->sortBy('level');
+            return Response::view('admin/addGroup',$view);
         }
     }
 
@@ -605,7 +615,7 @@ class AdminController extends BaseController
             }
         } else {
             $view['group'] = SsGroup::where('id', $id)->first();
-
+            $view['level_list'] = Level::get()->sortBy('level');
             return Response::view('admin/editGroup', $view);
         }
     }
@@ -1031,12 +1041,12 @@ TXT;
         exit($this->makeRandStr());
     }
 
-    // 加密方式、混淆、协议列表
+    // 加密方式、混淆、协议、用户等级列表
     public function config(Request $request)
     {
         if ($request->method() == 'POST') {
             $name = $request->get('name');
-            $type = $request->get('type', 1); // 类型:1-加密方式(method)、2-协议(protocol)、3-混淆(obfs)
+            $type = $request->get('type', 1); // 类型:1-加密方式(method)、2-协议(protocol)、3-混淆(obfs)、4 用户列表
             $is_default = $request->get('is_default', 0);
             $sort = $request->get('sort', 0);
 
@@ -1062,6 +1072,7 @@ TXT;
             $view['method_list'] = SsConfig::where('type', 1)->get();
             $view['protocol_list'] = SsConfig::where('type', 2)->get();
             $view['obfs_list'] = SsConfig::where('type', 3)->get();
+            $view['level_list'] = Level::get()->sortBy('level');
 
             return Response::view('admin/config', $view);
         }
@@ -1134,6 +1145,75 @@ TXT;
         return Response::view('admin/analysis', $view);
     }
 
+    //用户等级设置
+    public function updateLevel(Request $request){
+        $id = $request->get('id');
+        $level = $request->get('level');
+        $level_name = $request->get('level_name');
+
+        if (empty($id)) {
+            return Response::json(['status' => 'fail', 'data' => '', 'message' => 'ID不能为空']);
+        }
+        if (empty($level)) {
+            return Response::json(['status' => 'fail', 'data' => '', 'message' => 'level不能为空']);
+        }
+        if (empty($level_name)) {
+            return Response::json(['status' => 'fail', 'data' => '', 'message' => 'levelname不能为空']);
+        }
+        try{
+            Level::where('id',$id)->update(["level"=>$level,"level_name"=>$level_name]);
+            return Response::json(['status' => 'success', 'data' => '', 'message' => '操作成功']);
+        }catch (\Exception $e){
+            return Response::json(['status' => 'fail', 'data' => '', 'message' => '操作失败']);
+        }
+
+    }
+    public function delLevel(Request $request){
+        $id = $request->get('id');
+        if (empty($id)) {
+            return Response::json(['status' => 'fail', 'data' => '', 'message' => 'ID不能为空']);
+        }
+        try{
+            Level::where('id',$id)->delete();
+            return Response::json(['status' => 'success', 'data' => '', 'message' => '操作成功']);
+        }catch (\Exception $e){
+            return Response::json(['status' => 'fail', 'data' => '', 'message' => '操作失败']);
+        }
+
+    }
+    public function addLevel(Request $request){
+        $level = $request->get('level');
+        $level_name = $request->get('level_name');
+        if (empty($level)) {
+            return Response::json(['status' => 'fail', 'data' => '', 'message' => 'level不能为空']);
+        }
+        if (empty($level_name)) {
+            return Response::json(['status' => 'fail', 'data' => '', 'message' => 'levelname不能为空']);
+        }
+
+        try{
+
+            $level_re = Level::where('level',$level)->first();
+
+            if($level_re){
+                return Response::json(['status' => 'fail', 'data' => '', 'message' => '等级已经存在,请勿重复添加']);
+            }
+
+            Level::create([
+                'level'=>$level,
+                'level_name'=>$level_name,
+                'created_at'=>date('Y-m-d H:i:s'),
+                'updated_at'=>date('Y-m-d H:i:s')
+            ]);
+            return Response::json(['status' => 'success', 'data' => '', 'message' => '提交成功']);
+        }catch (\Exception $e){
+            throw $e;
+            return Response::json(['status' => 'fail', 'data' => '', 'message' => '操作失败']);
+
+        }
+
+    }
+
     // 系统设置
     public function system(Request $request)
     {

+ 2 - 1
app/Http/Controllers/UserController.php

@@ -7,6 +7,7 @@ use App\Http\Models\Coupon;
 use App\Http\Models\CouponLog;
 use App\Http\Models\Goods;
 use App\Http\Models\Invite;
+use App\Http\Models\Level;
 use App\Http\Models\Order;
 use App\Http\Models\OrderGoods;
 use App\Http\Models\ReferralApply;
@@ -49,7 +50,7 @@ class UserController extends BaseController
         $user->totalTransfer = $this->flowAutoShow($user->transfer_enable - $user->u - $user->d);
         $user->usedTransfer = $this->flowAutoShow($user->u + $user->d);
         $user->usedPercent = $user->transfer_enable > 0 ? round(($user->u + $user->d) / $user->transfer_enable, 2) : 1;
-
+        $user->level_name=Level::where('level',$user['level'])->first()['level_name'];
         $view['info'] = $user->toArray();
         $view['articleList'] = Article::where('is_del', 0)->orderBy('sort', 'desc')->orderBy('id', 'desc')->paginate(5);
         $view['wechat_qrcode'] = self::$config['wechat_qrcode'];

+ 20 - 0
app/Http/Models/Level.php

@@ -0,0 +1,20 @@
+<?php
+
+namespace App\Http\Models;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * 等级信息
+ * Class Level
+ * @package App\Http\Models
+ */
+class Level extends Model
+{
+    protected $table = 'level';
+    protected $primaryKey = 'id';
+    protected $fillable = [
+        'level',
+        'level_name'
+    ];
+}

+ 2 - 2
config/database.php

@@ -44,8 +44,8 @@ return [
             'host' => '127.0.0.1',
             'port' => '3306',
             'database' => 'ssrpanel',
-            'username' => 'mysql_username',
-            'password' => 'mysql_password',
+            'username' => 'root',
+            'password' => 'root',
             'unix_socket' => '',
             'charset' => 'utf8mb4',
             'collation' => 'utf8mb4_unicode_ci',

+ 3 - 7
resources/views/admin/addGroup.blade.php

@@ -54,13 +54,9 @@
                                     <label class="control-label col-md-3">可见级别</label>
                                     <div class="col-md-6">
                                         <select class="form-control" name="level" id="level" required>
-                                            <option value="1" selected>倔强青铜</option>
-                                            <option value="2">秩序白银</option>
-                                            <option value="3">荣耀黄金</option>
-                                            <option value="4">尊贵铂金</option>
-                                            <option value="5">永恒钻石</option>
-                                            <option value="6">至尊黑曜</option>
-                                            <option value="7">最强王者</option>
+                                            @foreach($level_list as $ele)
+                                                <option value="{{$ele['level']}}">{{$ele['level_name']}}</option>
+                                            @endforeach
                                         </select>
                                         <span class="help-block">对应账号级别可见该分组下的节点(向下兼容)</span>
                                     </div>

+ 5 - 7
resources/views/admin/addUser.blade.php

@@ -98,13 +98,11 @@
                                                 <label for="balance" class="col-md-3 control-label">级别</label>
                                                 <div class="col-md-8">
                                                     <select class="form-control" name="level" id="level">
-                                                        <option value="1" selected>倔强青铜</option>
-                                                        <option value="2">秩序白银</option>
-                                                        <option value="3">荣耀黄金</option>
-                                                        <option value="4">尊贵铂金</option>
-                                                        <option value="5">永恒钻石</option>
-                                                        <option value="6">至尊黑曜</option>
-                                                        <option value="7">最强王者</option>
+
+                                                        @foreach($level_list as $ele)
+                                                            <option value="{{$ele['level']}}">{{$ele['level_name']}}</option>
+                                                        @endforeach
+
                                                     </select>
                                                 </div>
                                             </div>

+ 198 - 6
resources/views/admin/config.blade.php

@@ -29,11 +29,7 @@
                             <i class="icon-info font-dark"></i>
                             <span class="caption-subject bold uppercase"> 通用配置 </span>
                         </div>
-                        <div class="actions">
-                            <div class="btn-group">
-                                <button class="btn sbold blue" data-toggle="modal" data-target="#add_config_modal"> 新增 <i class="fa fa-plus"></i> </button>
-                            </div>
-                        </div>
+
                     </div>
                     <div class="portlet-body">
                         <ul class="nav nav-tabs">
@@ -46,9 +42,18 @@
                             <li @if(Request::get('tab') == '3') class="active" @endif>
                                 <a href="#tab3" data-toggle="tab"> 混淆 </a>
                             </li>
+                            <li @if(Request::get('tab') == '4') class="active" @endif>
+                                <a href="#tab4" data-toggle="tab"> 用户等级 </a>
+                            </li>
                         </ul>
                         <div class="tab-content">
                             <div class="tab-pane fade {{Request::get('tab') == '' || Request::get('tab') == '1' ? 'active in' : ''}}" id="tab1">
+                                <div class="actions">
+                                    <div class="btn-group">
+                                        <button class="btn sbold blue" data-toggle="modal" data-target="#add_config_modal"> 新增 <i class="fa fa-plus"></i> </button>
+                                    </div>
+                                </div>
+
                                 <div class="table-scrollable">
                                     <table class="table table-striped table-bordered table-hover table-checkable order-column">
                                         <thead>
@@ -82,6 +87,11 @@
                                 </div>
                             </div>
                             <div class="tab-pane fade {{Request::get('tab') == '2' ? 'active in' : ''}}" id="tab2">
+                                <div class="actions">
+                                    <div class="btn-group">
+                                        <button class="btn sbold blue" data-toggle="modal" data-target="#add_config_modal"> 新增 <i class="fa fa-plus"></i> </button>
+                                    </div>
+                                </div>
                                 <div class="table-scrollable">
                                     <table class="table table-striped table-bordered table-hover table-checkable order-column">
                                         <thead>
@@ -115,6 +125,11 @@
                                 </div>
                             </div>
                             <div class="tab-pane fade {{Request::get('tab') == '3' ? 'active in' : ''}}" id="tab3">
+                                <div class="actions">
+                                    <div class="btn-group">
+                                        <button class="btn sbold blue" data-toggle="modal" data-target="#add_config_modal"> 新增 <i class="fa fa-plus"></i> </button>
+                                    </div>
+                                </div>
                                 <div class="table-scrollable">
                                     <table class="table table-striped table-bordered table-hover table-checkable order-column">
                                         <thead>
@@ -147,6 +162,45 @@
                                     </table>
                                 </div>
                             </div>
+                            <div class="tab-pane fade {{Request::get('tab') == '4' ? 'active in' : ''}}" id="tab4">
+                                <div class="actions">
+                                    <div class="btn-group">
+                                        <button class="btn sbold blue" data-toggle="modal" data-target="#add_level_modal"> 新增 <i class="fa fa-plus"></i> </button>
+                                    </div>
+                                </div>
+
+                                <div class="table-scrollable">
+
+                                    <table class="table table-striped table-bordered table-hover table-checkable order-column">
+                                        <thead>
+                                        <tr>
+                                            <th> 等级 </th>
+                                            <th> 名称 </th>
+                                            <th> 操作 </th>
+                                        </tr>
+                                        </thead>
+                                        <tbody>
+
+                                        @if($level_list->isEmpty())
+                                            <tr>
+                                                <td colspan="4">暂无数据</td>
+                                            </tr>
+                                        @else
+                                            @foreach($level_list as $lelist)
+                                                <tr class="odd gradeX" >
+                                                    <td> <input id="level_{{$lelist->id}}" name="level" value="{{$lelist->level}}" type="text" class="form-control"> </td>
+                                                    <td> <input id="level_name_{{$lelist->id}}" name="level_name" value="{{$lelist->level_name}}" type="text" class="form-control"></td>
+                                                    <td>
+                                                        <button type="button" class="btn btn-sm blue btn-outline" onclick="updateLevel('4', '{{$lelist->id}}')">修改</button>
+                                                        <button type="button" class="btn btn-sm red btn-outline" onclick="delLevel('4', '{{$lelist->id}}')">删除</button>
+                                                    </td>
+                                                </tr>
+                                            @endforeach
+                                        @endif
+                                        </tbody>
+                                    </table>
+                                </div>
+                            </div>
                         </div>
                         <div class="clearfix margin-top-20"></div>
                         <div id="add_config_modal" class="modal fade" tabindex="-1" data-focus-on="input:first" data-backdrop="static" data-keyboard="false">
@@ -188,6 +242,43 @@
                                 </div>
                             </div>
                         </div>
+
+                        <div id="add_level_modal" class="modal fade" tabindex="-1" data-focus-on="input:first" data-backdrop="static" data-keyboard="false">
+                            <div class="modal-dialog">
+                                <div class="modal-content">
+                                    <div class="modal-header">
+                                        <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
+                                        <h4 class="modal-title">新增配置</h4>
+                                    </div>
+                                    <div class="modal-body">
+                                        <div class="alert alert-danger" style="display: none;" id="level_msg"></div>
+                                        <!-- BEGIN FORM-->
+                                        <form action="#" method="post" class="form-horizontal">
+                                            <div class="form-body">
+                                                <div class="form-group">
+                                                    <label for="level" class="col-md-4 control-label"> 等级 </label>
+                                                    <div class="col-md-6">
+                                                        <input type="text" class="form-control" name="level" id="add_level" placeholder="">
+                                                    </div>
+                                                </div>
+                                                <div class="form-group">
+                                                    <label for="level_name" class="col-md-4 control-label"> 等级名称 </label>
+                                                    <div class="col-md-6">
+                                                        <input type="text" class="form-control" name="level_name" id="add_level_name" placeholder="">
+                                                    </div>
+                                                </div>
+                                            </div>
+                                        </form>
+                                        <!-- END FORM-->
+                                    </div>
+                                    <div class="modal-footer">
+                                        <button type="button" data-dismiss="modal" class="btn dark btn-outline">关闭</button>
+                                        <button type="button" class="btn red btn-outline" onclick="return addLevel(4);">提交</button>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+
                     </div>
                 </div>
                 <!-- END EXAMPLE TABLE PORTLET-->
@@ -207,6 +298,108 @@
             window.location.reload();
         });
 
+        // 添加等级
+        function addLevel(tabId) {
+            var _token = '{{csrf_token()}}';
+
+            var level=$('#add_level').val()
+            var level_name=$('#add_level_name').val()
+
+            if (level == '') {
+                $("#level_msg").show().html("level不能为空");
+                $("#level").focus();
+                return false;
+            }
+            if (level_name == '') {
+                $("#level_msg").show().html("名称不能为空");
+                $("#level_name").focus();
+                return false;
+            }
+
+            $.ajax({
+                url:'{{url('admin/addLevel')}}',
+                type:"POST",
+                data:{_token:_token, level:level, level_name:level_name},
+                beforeSend:function(){
+                    $("#level_msg").show().html("正在添加");
+                },
+                success:function(ret){
+                    if (ret.status == 'fail') {
+                        $("#level_msg").show().html(ret.message);
+                        return false;
+                    }
+
+                    $("#add_level_modal").modal("hide");
+                    window.location.href = '{{url('admin/config?tab=')}}' + tabId;
+                },
+                error:function(){
+                    $("#level_msg").show().html("请求错误,请重试");
+                },
+                complete:function(){}
+            });
+
+        }
+
+
+        // 更新等级
+        function updateLevel(tabId, id) {
+            var _token = '{{csrf_token()}}';
+
+            var level=$('#level_'+id).val()
+            var level_name=$('#level_name_'+id).val()
+
+            $.ajax({
+                type: "POST",
+                url: "{{url('admin/updateLevel')}}",
+                async: false,
+                data: {_token:_token, id: id,level:level,level_name:level_name},
+                dataType: 'json',
+                success: function (ret) {
+                    layer.msg(ret.message, {time:1000}, function() {
+                        if (ret.status == 'success') {
+                            window.location.href = '{{url('admin/config?tab=')}}' + tabId;
+                        }
+                    });
+                }
+            });
+        }
+        // 删除等级
+        function delLevel(tabId, id) {
+            var _token = '{{csrf_token()}}';
+
+            bootbox.confirm({
+                message: "确定删除配置?",
+                buttons: {
+                    confirm: {
+                        label: '确定',
+                        className: 'btn-success'
+                    },
+                    cancel: {
+                        label: '取消',
+                        className: 'btn-danger'
+                    }
+                },
+                callback: function (result) {
+                    if (result) {
+                        $.ajax({
+                            type: "POST",
+                            url: "{{url('admin/delLevel')}}",
+                            async: false,
+                            data: {_token:_token, id: id},
+                            dataType: 'json',
+                            success: function (ret) {
+                                layer.msg(ret.message, {time:1000}, function() {
+                                    if (ret.status == 'success') {
+                                        window.location.href = '{{url('admin/config?tab=')}}' + tabId;
+                                    }
+                                });
+                            }
+                        });
+                    }
+                }
+            });
+        }
+
         // 添加配置
         function addConfig() {
             var _token = '{{csrf_token()}}';
@@ -274,7 +467,6 @@
         // 置为默认
         function setDefault(tabId, id) {
             var _token = '{{csrf_token()}}';
-
             $.ajax({
                 type: "POST",
                 url: "{{url('admin/setDefaultConfig')}}",

+ 4 - 7
resources/views/admin/editGroup.blade.php

@@ -54,13 +54,10 @@
                                     <label class="control-label col-md-3">可见级别</label>
                                     <div class="col-md-6">
                                         <select class="form-control" name="level" id="level" required>
-                                            <option value="1" {{$group->level == 1 ? 'selected' : ''}}>倔强青铜</option>
-                                            <option value="2" {{$group->level == 2 ? 'selected' : ''}}>秩序白银</option>
-                                            <option value="3" {{$group->level == 3 ? 'selected' : ''}}>荣耀黄金</option>
-                                            <option value="4" {{$group->level == 4 ? 'selected' : ''}}>尊贵铂金</option>
-                                            <option value="5" {{$group->level == 5 ? 'selected' : ''}}>永恒钻石</option>
-                                            <option value="6" {{$group->level == 6 ? 'selected' : ''}}>至尊黑曜</option>
-                                            <option value="7" {{$group->level == 7 ? 'selected' : ''}}>最强王者</option>
+                                            @foreach($level_list as $ele)
+                                                <option value="{{$ele['level']}}" {{$group->level == $ele['level'] ? 'selected' : ''}}>{{$ele['level_name']}}</option>
+                                            @endforeach
+
                                         </select>
                                         <span class="help-block">对应账号级别可见该分组下的节点(向下兼容)</span>
                                     </div>

+ 5 - 7
resources/views/admin/editUser.blade.php

@@ -99,13 +99,11 @@
                                                 <label for="balance" class="col-md-3 control-label">级别</label>
                                                 <div class="col-md-8">
                                                     <select class="form-control" name="level" id="level">
-                                                        <option value="1" {{$user->level == 1 ? 'selected' : ''}}>倔强青铜</option>
-                                                        <option value="2" {{$user->level == 2 ? 'selected' : ''}}>秩序白银</option>
-                                                        <option value="3" {{$user->level == 3 ? 'selected' : ''}}>荣耀黄金</option>
-                                                        <option value="4" {{$user->level == 4 ? 'selected' : ''}}>尊贵铂金</option>
-                                                        <option value="5" {{$user->level == 5 ? 'selected' : ''}}>永恒钻石</option>
-                                                        <option value="6" {{$user->level == 6 ? 'selected' : ''}}>至尊黑曜</option>
-                                                        <option value="7" {{$user->level == 7 ? 'selected' : ''}}>最强王者</option>
+
+                                                        @foreach($level_list as $ele)
+                                                            <option value="{{$ele['level']}}" {{$user->level == $ele['level'] ? 'selected' : ''}}>{{$ele['level_name']}}</option>
+                                                        @endforeach
+
                                                     </select>
                                                 </div>
                                             </div>

+ 2 - 15
resources/views/admin/groupList.blade.php

@@ -59,21 +59,8 @@
                                                 <td> {{$group->id}} </td>
                                                 <td> {{$group->name}} </td>
                                                 <td>
-                                                    @if($group->level == 1)
-                                                        <span class="label label-default">倔强青铜</span>
-                                                    @elseif ($group->level == 2)
-                                                        <span class="label label-primary">秩序白银</span>
-                                                    @elseif ($group->level == 3)
-                                                        <span class="label label-info">荣耀黄金</span>
-                                                    @elseif ($group->level == 4)
-                                                        <span class="label label-success">尊贵铂金</span>
-                                                    @elseif ($group->level == 5)
-                                                        <span class="label label-warning">永恒钻石</span>
-                                                    @elseif ($group->level == 6)
-                                                        <span class="label label-danger">至尊黑曜</span>
-                                                    @else
-                                                        <span class="label label-danger">最强王者</span>
-                                                    @endif
+                                                    <span class="label label-warning">{{$level_dict[$group->level]}}</span>
+
                                                 </td>
                                                 <td>
                                                     <button type="button" class="btn btn-sm blue btn-outline" onclick="editGroup('{{$group->id}}')">编辑</button>

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

@@ -133,10 +133,10 @@
                                             </td>
                                             <td>
                                                 <button type="button" class="btn btn-sm blue btn-outline" onclick="editUser('{{$user->id}}')">编辑</button>
-                                                <!--<button type="button" class="btn btn-sm red btn-outline" onclick="delUser('{{$user->id}}')">删除</button>-->
                                                 <button type="button" class="btn btn-sm green btn-outline" onclick="do_export('{{$user->id}}')">配置信息</button>
                                                 <button type="button" class="btn btn-sm purple btn-outline" onclick="do_monitor('{{$user->id}}')">流量监控</button>
                                                 <button type="button" class="btn btn-sm green-meadow btn-outline" onclick="resetTraffic('{{$user->id}}')">重置流量</button>
+                                                <button type="button" class="btn btn-sm red btn-outline" onclick="delUser('{{$user->id}}')">删除</button>
                                             </td>
                                         </tr>
                                         @endforeach

+ 2 - 1
resources/views/user/index.blade.php

@@ -68,7 +68,8 @@
                             <div class="col-md-12">
                                 <ul class="list-group">
                                     <li class="list-group-item">
-                                        等级:{{$user_level[$info['level']]}}
+                                        等级:{{$info['level_name']}}
+                                        {{--等级:{{$user_level[$info['level']]}}--}}
                                     </li>
                                     <li class="list-group-item">
                                         余额:{{$info['balance']}}

+ 3 - 0
routes/web.php

@@ -41,6 +41,9 @@ Route::group(['middleware' => ['user', 'admin']], function() {
     Route::any('admin/config', 'AdminController@config'); // 配置列表
     Route::any('admin/addConfig', 'AdminController@addConfig'); // 添加配置
     Route::post('admin/delConfig', 'AdminController@delConfig'); // 删除配置
+    Route::post('admin/updateLevel', 'AdminController@updateLevel'); // 更新等级
+    Route::post('admin/delLevel', 'AdminController@delLevel'); // 删除等级
+    Route::post('admin/addLevel', 'AdminController@addLevel'); // 增加等级
     Route::post('admin/setDefaultConfig', 'AdminController@setDefaultConfig'); // 设置默认配置
     Route::get('admin/trafficLog', 'AdminController@trafficLog'); // 流量日志
     Route::get('admin/subscribeLog', 'AdminController@subscribeLog'); // 订阅请求日志

+ 24 - 1
sql/db.sql

@@ -111,7 +111,7 @@ CREATE TABLE `user` (
   `enable_time` date DEFAULT NULL COMMENT '开通日期',
   `expire_time` date NOT NULL DEFAULT '2099-01-01' COMMENT '过期时间',
   `remark` text COMMENT '备注',
-  `level` tinyint(4) NOT NULL DEFAULT '1' COMMENT '等级:1-倔强青铜、2-秩序白银、3-荣耀黄金、4-尊贵铂金、5-永恒钻石、6-至尊黑曜、7-最强王者',
+  `level` tinyint(4) NOT NULL DEFAULT '1' COMMENT '等级:可定义名称',
   `is_admin` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否管理员:0-否、1-是',
   `reg_ip` varchar(20) NOT NULL DEFAULT '127.0.0.1' COMMENT '注册IP',
   `last_login` int(11) NOT NULL DEFAULT '0' COMMENT '最后一次登录时间',
@@ -132,6 +132,29 @@ VALUES (1,'admin','e10adc3949ba59abbe56e057f20f883e',10000,'@123',1073741824000,
 /*!40000 ALTER TABLE `user` ENABLE KEYS */;
 UNLOCK TABLES;
 
+-- ----------------------------
+-- Table structure for level
+-- ----------------------------
+DROP TABLE IF EXISTS `level`;
+CREATE TABLE `level` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `level` varchar(10) NOT NULL,
+  `level_name` varchar(100) NOT NULL,
+  `updated_at` datetime NOT NULL DEFAULT '2017-10-26 12:37:51',
+  `created_at` datetime NOT NULL DEFAULT '2017-10-26 12:37:51',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;;
+
+-- ----------------------------
+-- Records of level
+-- ----------------------------
+INSERT INTO `level` VALUES (1, '2', '秩序白银', '2017-10-26 15:57:30', '2017-10-26 12:37:51');
+INSERT INTO `level` VALUES (4, '1', '倔强青铜', '2017-10-26 15:56:52', '2017-10-26 15:38:58');
+INSERT INTO `level` VALUES (5, '3', '荣耀黄金', '2017-10-26 15:41:31', '2017-10-26 15:41:31');
+INSERT INTO `level` VALUES (6, '4', '尊贵铂金', '2017-10-26 15:41:38', '2017-10-26 15:41:38');
+INSERT INTO `level` VALUES (7, '5', '永恒钻石', '2017-10-26 15:41:47', '2017-10-26 15:41:47');
+INSERT INTO `level` VALUES (8, '6', '至尊黑曜', '2017-10-26 15:41:56', '2017-10-26 15:41:56');
+INSERT INTO `level` VALUES (9, '7', '最强王者', '2017-10-26 15:42:02', '2017-10-26 15:42:02');
 
 -- ----------------------------
 -- Table structure for `user_traffic_log`