Pārlūkot izejas kodu

1.新注册用户默认初始标签
2.界面美化

bingo 8 gadi atpakaļ
vecāks
revīzija
f5a88498df

+ 35 - 44
app/Http/Controllers/AdminController.php

@@ -1773,11 +1773,42 @@ class AdminController extends Controller
     // 订单列表
     public function orderList(Request $request)
     {
-        $username = $request->get('username');
-        $status = $request->get('status');
+        $username = trim($request->get('username'));
+        $is_coupon = $request->get('is_coupon');
+        $is_expire = $request->get('is_expire');
+        $pay_way = $request->get('pay_way');
+        $status = intval($request->get('status'));
+
+        $query = Order::query()->with(['user', 'goods', 'coupon'])->orderBy('oid', 'desc');
+
+        if ($username) {
+            $query->whereHas('user', function ($q) use ($username) {
+                $q->where('username', 'like', '%' . $username . '%');
+            });
+        }
+
+        if ($is_coupon != '') {
+            if ($is_coupon) {
+                $query->where('coupon_id', '<>', 0);
+            } else {
+                $query->where('coupon_id', 0);
+            }
+        }
+
+        if ($is_expire != '') {
+            $query->where('is_expire', $is_expire);
+        }
 
-        $orderList = Order::query()->with(['user', 'goods', 'coupon'])->orderBy('oid', 'desc')->paginate(10);
-        foreach ($orderList as $order) {
+        if ($pay_way != '') {
+            $query->where('pay_way', $pay_way);
+        }
+
+        if ($status != '') {
+            $query->where('status', $status);
+        }
+
+        $orderList = $query->paginate(10);
+        foreach ($orderList as &$order) {
             $order->totalOriginalPrice = $order->totalOriginalPrice / 100;
             $order->totalPrice = $order->totalPrice / 100;
         }
@@ -1905,46 +1936,6 @@ class AdminController extends Controller
         return Response::view('admin/userBanLogList', $view);
     }
 
-    // 用户消费记录
-    public function userOrderList(Request $request)
-    {
-        $username = trim($request->get('username'));
-        $is_expire = $request->get('is_expire');
-        $is_coupon = $request->get('is_coupon');
-
-        $query = Order::query()->with(['user', 'goods', 'coupon'])->orderBy('oid', 'desc');
-
-        if ($username) {
-            $query->whereHas('user', function ($q) use ($username) {
-                $q->where('username', 'like', '%' . $username . '%');
-            });
-        }
-
-        if ($is_expire != '') {
-            $query->where('is_expire', $is_expire);
-        }
-
-        if ($is_coupon != '') {
-            if ($is_coupon) {
-                $query->where('coupon_id', '<>', 0);
-            } else {
-                $query->where('coupon_id', 0);
-            }
-        }
-
-        $list = $query->paginate(10);
-        if (!$list->isEmpty()) {
-            foreach ($list as &$vo) {
-                $vo->totalOriginalPrice = $vo->totalOriginalPrice / 100;
-                $vo->totalPrice = $vo->totalPrice / 100;
-            }
-        }
-
-        $view['list'] = $list;
-
-        return Response::view('admin/userOrderList', $view);
-    }
-
     // 转换成某个用户的身份
     public function switchToUser(Request $request)
     {

+ 8 - 8
readme.md

@@ -14,12 +14,13 @@
 12.强大的后台一键配置功能
 13.屏蔽常见爬虫、屏蔽机器人
 14.支持单端口多用户
-15.支持节点订阅功能,可一键封禁账号订阅地址
+15.支持节点订阅功能,可自由更换订阅地址、封禁账号订阅地址
 16.节点宕机提醒(邮件、ServerChan微信提醒)
 17.支持多国语言,自带英文语言包
 18.订阅防投毒机制
 19.自动释放端口机制,防止端口被大量长期占用
-20.封IP段
+20.封特定国家、地区、封IP段
+21.支持有赞云支付
 ````
 
 ## 演示&交流
@@ -27,7 +28,7 @@
 官方站:http://www.ssrpanel.com
 演示站:http://demo.ssrpanel.com (用户名:admin 密码:123456,请勿修改密码)
 telegram订阅频道:https://t.me/ssrpanel
-telegram千人讨论群已解散,不用加了,有问题提issues
+telegram千人讨论群已解散,有问题提issues
 ````
 
 ## 捐赠
@@ -38,7 +39,7 @@ telegram千人讨论群已解散,不用加了,有问题提issues
 部署面板必须得用到VPS
 强烈推荐使用1G以上内存的KVM架构的VPS
 做节点则只需要512M+内存的KVM即可,但是还是推荐使用1G+内存的KVM
-强烈不建议使用OVZ(OpenVZ),一无法加速二容易崩溃,512M以下内存的容易经常性宕机(低内存KVM也宕机)
+强烈不建议使用OVZ(OpenVZ),一无法加速二容易崩溃,512M以下内存的容易经常性宕机(低内存KVM也容易宕机)
 ````
 
 ## 安装
@@ -128,13 +129,11 @@ service php-fpm restart
 ## 定时任务
 ````
 crontab加入如下命令(请自行修改php、ssrpanel路径):
-* * * * * php /home/wwwroot/ssrpanel/artisan schedule:run >> /dev/null 2>&1
+* * * * * php /home/wwwroot/SSRPanel/artisan schedule:run >> /dev/null 2>&1
 
 注意运行权限,必须跟ssrpanel项目权限一致:
 例如用lnmp的话默认权限用户组是 www:www,则添加定时任务是这样的:
 crontab -e -u www
-
-如果用crontab -e 默认是root权限,则整个ssrpanel项目也要用root:root用户组
 ````
 
 ## 邮件配置
@@ -282,7 +281,7 @@ vim user-config.json
 
 ## 校时
 ````
-如果架构是“面板机-数据库机-多节点机”,请务必保持各个服务器之间的时间一致,否则会产生:节点的在线数不准确、产生最后使用时间异常、单端口多用户功能失效等。
+如果架构是“面板机-数据库机-多节点机”,请务必保持各个服务器之间的时间一致,否则会产生:节点的在线数不准确、最后使用时间异常、单端口多用户功能失效等。
 推荐统一使用CST时间并安装校时服务:
 vim /etc/sysconfig/clock 把值改为 Asia/Shanghai
 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
@@ -293,6 +292,7 @@ ntpdate cn.pool.ntp.org
 ````
 
 ## 致敬
+- [@shadowsocks](https://github.com/shadowsocks)
 - [@breakwa11](https://github.com/breakwa11)
 - [@glzjin](https://github.com/esdeathlove)
 - [@orvice](https://github.com/orvice)

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

@@ -374,9 +374,9 @@
 
         // 服务条款
         function showTnc() {
-            var content = '1请勿直接复制黏贴以下配置,SSR(R)会报错的;'
-                + '<br>2、确保服务器时间为CST或UTC;'
-                + '<br>3请看<a href="https://github.com/ssrpanel/SSRPanel/wiki/%E5%8D%95%E7%AB%AF%E5%8F%A3%E5%A4%9A%E7%94%A8%E6%88%B7%E7%9A%84%E5%9D%91" target="_blank">WIKI</a>;'
+            var content = '1.请勿直接复制黏贴以下配置,SSR(R)会报错的;'
+                + '<br>2.确保服务器时间为CST;'
+                + '<br>3.具体请看<a href="https://github.com/ssrpanel/SSRPanel/wiki/%E5%8D%95%E7%AB%AF%E5%8F%A3%E5%A4%9A%E7%94%A8%E6%88%B7%E7%9A%84%E5%9D%91" target="_blank">WIKI</a>;'
                 + '<br>'
                 + '<br>additional_ports" : {'
                 + '<br>&ensp;&ensp;&ensp;&ensp;"80": {'

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

@@ -17,7 +17,7 @@
                     </div>
                 @endif
                 <!-- BEGIN PORTLET-->
-                <div class="portlet light form-fit bordered">
+                <div class="portlet light bordered">
                     <div class="portlet-title">
                         <div class="caption">
                             <span class="caption-subject font-darm sbold uppercase">编辑文章</span>

+ 3 - 3
resources/views/admin/editNode.blade.php

@@ -374,9 +374,9 @@
 
         // 服务条款
         function showTnc() {
-            var content = '1请勿直接复制黏贴以下配置,SSR(R)会报错的;'
-                + '<br>2、确保服务器时间为CST或UTC;'
-                + '<br>3请看<a href="https://github.com/ssrpanel/SSRPanel/wiki/%E5%8D%95%E7%AB%AF%E5%8F%A3%E5%A4%9A%E7%94%A8%E6%88%B7%E7%9A%84%E5%9D%91" target="_blank">WIKI</a>;'
+            var content = '1.请勿直接复制黏贴以下配置,SSR(R)会报错的;'
+                + '<br>2.确保服务器时间为CST;'
+                + '<br>3.具体请看<a href="https://github.com/ssrpanel/SSRPanel/wiki/%E5%8D%95%E7%AB%AF%E5%8F%A3%E5%A4%9A%E7%94%A8%E6%88%B7%E7%9A%84%E5%9D%91" target="_blank">WIKI</a>;'
                 + '<br>'
                 + '<br>"additional_ports" : {'
                 + '<br>&ensp;&ensp;&ensp;&ensp;"80": {'

+ 0 - 6
resources/views/admin/layouts.blade.php

@@ -181,12 +181,6 @@
                                 <span class="title">用户列表</span>
                             </a>
                         </li>
-                        <li class="nav-item {{in_array(Request::path(), ['admin/userOrderList']) ? 'active open' : ''}}">
-                            <a href="{{url('admin/userOrderList')}}" class="nav-link ">
-                                <i class="fa fa-money"></i>
-                                <span class="title">消费记录</span>
-                            </a>
-                        </li>
                         <li class="nav-item {{in_array(Request::path(), ['admin/userBalanceLogList']) ? 'active open' : ''}}">
                             <a href="{{url('admin/userBalanceLogList')}}" class="nav-link ">
                                 <i class="fa fa-money"></i>

+ 47 - 10
resources/views/admin/orderList.blade.php

@@ -16,6 +16,45 @@
                         </div>
                     </div>
                     <div class="portlet-body">
+                        <div class="row">
+                            <div class="col-md-2 col-sm-2">
+                                <input type="text" class="col-md-4 form-control input-sm" name="username" value="{{Request::get('username')}}" id="username" placeholder="用户名" onkeydown="if(event.keyCode==13){do_search();}">
+                            </div>
+                            <div class="col-md-2 col-sm-2">
+                                <select class="form-control input-sm" name="is_expire" id="is_expire" onchange="doSearch()">
+                                    <option value="" @if(Request::get('is_expire') == '') selected @endif>过期</option>
+                                    <option value="0" @if(Request::get('is_expire') == '0') selected @endif>否</option>
+                                    <option value="1" @if(Request::get('is_expire') == '1') selected @endif>是</option>
+                                </select>
+                            </div>
+                            <div class="col-md-2 col-sm-2">
+                                <select class="form-control input-sm" name="is_coupon" id="is_coupon" onchange="doSearch()">
+                                    <option value="" @if(Request::get('is_coupon') == '') selected @endif>使用优惠券</option>
+                                    <option value="0" @if(Request::get('is_coupon') == '0') selected @endif>否</option>
+                                    <option value="1" @if(Request::get('is_coupon') == '1') selected @endif>是</option>
+                                </select>
+                            </div>
+                            <div class="col-md-2 col-sm-2">
+                                <select class="form-control input-sm" name="pay_way" id="pay_way" onchange="doSearch()">
+                                    <option value="" @if(Request::get('pay_way') == '') selected @endif>支付方式</option>
+                                    <option value="1" @if(Request::get('pay_way') == '1') selected @endif>余额支付</option>
+                                    <option value="2" @if(Request::get('pay_way') == '2') selected @endif>有赞云支付</option>
+                                </select>
+                            </div>
+                            <div class="col-md-2 col-sm-2">
+                                <select class="form-control input-sm" name="status" id="status" onchange="doSearch()">
+                                    <option value="" @if(Request::get('status') == '') selected @endif>订单状态</option>
+                                    <option value="-1" @if(Request::get('status') == '-1') selected @endif>已关闭</option>
+                                    <option value="0" @if(Request::get('status') == '0') selected @endif>待支付</option>
+                                    <option value="1" @if(Request::get('status') == '1') selected @endif>已支付待确认</option>
+                                    <option value="2" @if(Request::get('status') == '2') selected @endif>已完成</option>
+                                </select>
+                            </div>
+                            <div class="col-md-2 col-sm-2">
+                                <button type="button" class="btn btn-sm blue" onclick="doSearch();">查询</button>
+                                <button type="button" class="btn btn-sm grey" onclick="doReset();">重置</button>
+                            </div>
+                        </div>
                         <div class="table-scrollable table-scrollable-borderless">
                             <table class="table table-hover table-light">
                                 <thead>
@@ -90,22 +129,20 @@
     <script src="/js/layer/layer.js" type="text/javascript"></script>
 
     <script type="text/javascript">
-        // 审核
-        function doAudit(id) {
-            window.open('{{url('admin/applyDetail?id=')}}' + id);
-        }
-
         // 搜索
-        function do_search() {
+        function doSearch() {
             var username = $("#username").val();
-            var status = $("#status option:checked").val();
+            var is_expire = $("#is_expire").val();
+            var is_coupon = $("#is_coupon").val();
+            var pay_way = $("#pay_way").val();
+            var status = $("#status").val();
 
-            window.location.href = '{{url('admin/applyList')}}' + '?username=' + username + '&status=' + status;
+            window.location.href = '{{url('admin/orderList')}}' + '?username=' + username + '&is_expire=' + is_expire + '&is_coupon=' + is_coupon + '&pay_way=' + pay_way + '&status=' + status;
         }
 
         // 重置
-        function do_reset() {
-            window.location.href = '{{url('admin/applyList')}}';
+        function doReset() {
+            window.location.href = '{{url('admin/orderList')}}';
         }
     </script>
 @endsection

+ 85 - 9
resources/views/admin/system.blade.php

@@ -651,6 +651,7 @@
                 });
             });
         });
+	
         // 启用、禁用随机端口
         $('#is_rand_port').on({
             'switchChange.bootstrapSwitch': function(event, state) {
@@ -970,6 +971,11 @@
         function setTrafficBanValue() {
             var traffic_ban_value = $("#traffic_ban_value").val();
 
+            if (traffic_ban_value < 0) {
+                layer.msg('不能小于0', {time:1000});
+                return ;
+            }
+
             $.post("{{url('admin/setConfig')}}", {_token:'{{csrf_token()}}', name:'traffic_ban_value', value:traffic_ban_value}, function (ret) {
                 layer.msg(ret.message, {time:1000}, function() {
                     if (ret.status == 'fail') {
@@ -983,6 +989,11 @@
         function setTrafficBanTime() {
             var traffic_ban_time = $("#traffic_ban_time").val();
 
+            if (traffic_ban_time < 0) {
+                layer.msg('不能小于0', {time:1000});
+                return ;
+            }
+
             $.post("{{url('admin/setConfig')}}", {_token:'{{csrf_token()}}', name:'traffic_ban_time', value:traffic_ban_time}, function (ret) {
                 layer.msg(ret.message, {time:1000}, function() {
                     if (ret.status == 'fail') {
@@ -1022,6 +1033,11 @@
         function setSubscribeBanTimes() {
             var subscribe_ban_times = $("#subscribe_ban_times").val();
 
+            if (subscribe_ban_times < 0) {
+                layer.msg('不能小于0', {time:1000});
+                return ;
+            }
+
             $.post("{{url('admin/setConfig')}}", {_token:'{{csrf_token()}}', name:'subscribe_ban_times', value:subscribe_ban_times}, function (ret) {
                 layer.msg(ret.message, {time:1000}, function() {
                     if (ret.status == 'fail') {
@@ -1163,7 +1179,12 @@
 
         // 设置注册时默认有效期
         function setDefaultDays() {
-            var default_days = $("#default_days").val();
+            var default_days = parseInt($("#default_days").val());
+
+            if (default_days < 0) {
+                layer.msg('不能小于0', {time:1000});
+                return ;
+            }
 
             $.post("{{url('admin/setConfig')}}", {_token:'{{csrf_token()}}', name:'default_days', value:default_days}, function (ret) {
                 layer.msg(ret.message, {time:1000}, function() {
@@ -1176,7 +1197,12 @@
 
         // 设置注册时默认流量
         function setDefaultTraffic() {
-            var default_traffic = $("#default_traffic").val();
+            var default_traffic = parseInt($("#default_traffic").val());
+
+            if (default_traffic < 0) {
+                layer.msg('不能小于0', {time:1000});
+                return ;
+            }
 
             $.post("{{url('admin/setConfig')}}", {_token:'{{csrf_token()}}', name:'default_traffic', value:default_traffic}, function (ret) {
                 layer.msg(ret.message, {time:1000}, function() {
@@ -1189,7 +1215,12 @@
 
         // 设置可生成邀请码数量
         function setInviteNum() {
-            var invite_num = $("#invite_num").val();
+            var invite_num = parseInt($("#invite_num").val());
+
+            if (invite_num < 0) {
+                layer.msg('不能小于0', {time:1000});
+                return ;
+            }
 
             $.post("{{url('admin/setConfig')}}", {_token:'{{csrf_token()}}', name:'invite_num', value:invite_num}, function (ret) {
                 layer.msg(ret.message, {time:1000}, function() {
@@ -1204,6 +1235,11 @@
         function setResetPasswordTimes() {
             var reset_password_times = $("#reset_password_times").val();
 
+            if (reset_password_times < 0) {
+                layer.msg('不能小于0', {time:1000});
+                return ;
+            }
+
             $.post("{{url('admin/setConfig')}}", {_token:'{{csrf_token()}}', name:'reset_password_times', value:reset_password_times}, function (ret) {
                 layer.msg(ret.message, {time:1000}, function() {
                     if (ret.status == 'fail') {
@@ -1215,7 +1251,12 @@
 
         // 设置激活用户次数
         function setActiveTimes() {
-            var active_times = $("#active_times").val();
+            var active_times = parseInt($("#active_times").val());
+
+            if (active_times < 0) {
+                layer.msg('不能小于0', {time:1000});
+                return ;
+            }
 
             $.post("{{url('admin/setConfig')}}", {_token:'{{csrf_token()}}', name:'active_times', value:active_times}, function (ret) {
                 layer.msg(ret.message, {time:1000}, function() {
@@ -1226,7 +1267,7 @@
             });
         }
 
-        // 设置激活用户次数
+        // 设置节点订阅地址
         function setSubscribeDomain() {
             var subscribe_domain = $("#subscribe_domain").val();
 
@@ -1241,7 +1282,12 @@
 
         // 设置节点订阅随机展示节点数
         function setSubscribeMax() {
-            var subscribe_max = $("#subscribe_max").val();
+            var subscribe_max = parseInt($("#subscribe_max").val());
+
+            if (subscribe_max < 0) {
+                layer.msg('不能小于0', {time:1000});
+                return ;
+            }
 
             $.post("{{url('admin/setConfig')}}", {_token:'{{csrf_token()}}', name:'subscribe_max', value:subscribe_max}, function (ret) {
                 layer.msg(ret.message, {time:1000}, function() {
@@ -1256,6 +1302,11 @@
         function setTrafficWarningPercent() {
             var traffic_warning_percent = $("#traffic_warning_percent").val();
 
+            if (traffic_warning_percent < 0) {
+                layer.msg('不能小于0', {time:1000});
+                return ;
+            }
+
             $.post("{{url('admin/setConfig')}}", {_token:'{{csrf_token()}}', name:'traffic_warning_percent', value:traffic_warning_percent}, function (ret) {
                 layer.msg(ret.message, {time:1000}, function() {
                     if (ret.status == 'fail') {
@@ -1267,7 +1318,12 @@
 
         // 设置用户过期提醒阈值
         function setExpireDays() {
-            var expire_days = $("#expire_days").val();
+            var expire_days = parseInt($("#expire_days").val());
+
+            if (expire_days < 0) {
+                layer.msg('不能小于0', {time:1000});
+                return ;
+            }
 
             $.post("{{url('admin/setConfig')}}", {_token:'{{csrf_token()}}', name:'expire_days', value:expire_days}, function (ret) {
                 layer.msg(ret.message, {time:1000}, function() {
@@ -1306,7 +1362,12 @@
 
         // 登录加积分的时间间隔
         function setLoginAddScoreRange() {
-            var login_add_score_range = $("#login_add_score_range").val();
+            var login_add_score_range = parseInt($("#login_add_score_range").val());
+
+            if (login_add_score_range < 0) {
+                layer.msg('不能小于0', {time:1000});
+                return ;
+            }
 
             $.post("{{url('admin/setConfig')}}", {_token:'{{csrf_token()}}', name:'login_add_score_range', value:login_add_score_range}, function (ret) {
                 layer.msg(ret.message, {time:1000}, function() {
@@ -1319,7 +1380,12 @@
 
         // 设置根据推广链接注册送流量
         function setReferralTraffic() {
-            var referral_traffic = $("#referral_traffic").val();
+            var referral_traffic = parseInt($("#referral_traffic").val());
+
+            if (referral_traffic < 0) {
+                layer.msg('不能小于0', {time:1000});
+                return ;
+            }
 
             $.post("{{url('admin/setConfig')}}", {_token:'{{csrf_token()}}', name:'referral_traffic', value:referral_traffic}, function (ret) {
                 layer.msg(ret.message, {time:1000}, function() {
@@ -1334,6 +1400,11 @@
         function setReferralPercent() {
             var referral_percent = $("#referral_percent").val();
 
+            if (referral_percent < 0) {
+                layer.msg('不能小于0', {time:1000});
+                return ;
+            }
+
             $.post("{{url('admin/setReferralPercent')}}", {_token:'{{csrf_token()}}', value:referral_percent}, function (ret) {
                 layer.msg(ret.message, {time:1000}, function() {
                     if (ret.status == 'fail') {
@@ -1347,6 +1418,11 @@
         function setReferralMoney() {
             var referral_money = $("#referral_money").val();
 
+            if (referral_money < 0) {
+                layer.msg('不能小于0', {time:1000});
+                return ;
+            }
+
             $.post("{{url('admin/setConfig')}}", {_token:'{{csrf_token()}}', name:'referral_money', value:referral_money}, function (ret) {
                 layer.msg(ret.message, {time:1000}, function() {
                     if (ret.status == 'fail') {

+ 0 - 116
resources/views/admin/userOrderList.blade.php

@@ -1,116 +0,0 @@
-@extends('admin.layouts')
-
-@section('css')
-    <link href="/assets/global/plugins/datatables/datatables.min.css" rel="stylesheet" type="text/css" />
-    <link href="/assets/global/plugins/datatables/plugins/bootstrap/datatables.bootstrap.css" rel="stylesheet" type="text/css" />
-@endsection
-@section('title', '控制面板')
-@section('content')
-    <!-- BEGIN CONTENT BODY -->
-    <div class="page-content" style="padding-top:0;">
-        <!-- BEGIN PAGE BASE CONTENT -->
-        <div class="row">
-            <div class="col-md-12">
-                <!-- BEGIN EXAMPLE TABLE PORTLET-->
-                <div class="portlet light bordered">
-                    <div class="portlet-title">
-                        <div class="caption font-dark">
-                            <span class="caption-subject bold uppercase"> 消费记录 </span>
-                        </div>
-                    </div>
-                    <div class="portlet-body">
-                        <div class="row">
-                            <div class="col-md-2 col-sm-2">
-                                <input type="text" class="col-md-4 form-control input-sm" name="username" value="{{Request::get('username')}}" id="username" placeholder="用户名" onkeydown="if(event.keyCode==13){do_search();}">
-                            </div>
-                            <div class="col-md-2 col-sm-2">
-                                <select class="form-control input-sm" name="is_expire" id="is_expire" onchange="doSearch()">
-                                    <option value="" @if(Request::get('is_expire') == '') selected @endif>过期</option>
-                                    <option value="0" @if(Request::get('is_expire') == '0') selected @endif>否</option>
-                                    <option value="1" @if(Request::get('is_expire') == '1') selected @endif>是</option>
-                                </select>
-                            </div>
-                            <div class="col-md-2 col-sm-2">
-                                <select class="form-control input-sm" name="is_coupon" id="is_coupon" onchange="doSearch()">
-                                    <option value="" @if(Request::get('is_coupon') == '') selected @endif>使用优惠券</option>
-                                    <option value="0" @if(Request::get('is_coupon') == '0') selected @endif>否</option>
-                                    <option value="1" @if(Request::get('is_coupon') == '1') selected @endif>是</option>
-                                </select>
-                            </div>
-                            <div class="col-md-2 col-sm-2">
-                                <button type="button" class="btn btn-sm blue" onclick="doSearch();">查询</button>
-                                <button type="button" class="btn btn-sm grey" onclick="doReset();">重置</button>
-                            </div>
-                        </div>
-                        <div class="table-scrollable table-scrollable-borderless">
-                            <table class="table table-hover table-light">
-                                <thead>
-                                <tr>
-                                    <th> # </th>
-                                    <th> 用户名 </th>
-                                    <th> 服务 </th>
-                                    <th> 原价 </th>
-                                    <th> 实付 </th>
-                                    <th> 优惠券 </th>
-                                    <th> 过期时间 </th>
-                                    <th> 操作时间 </th>
-                                </tr>
-                                </thead>
-                                <tbody>
-                                    @if($list->isEmpty())
-                                        <tr>
-                                            <td colspan="8">暂无数据</td>
-                                        </tr>
-                                    @else
-                                        @foreach($list as $vo)
-                                            <tr class="odd gradeX">
-                                                <td> {{$vo->oid}} </td>
-                                                <td> {{empty($vo->user) ? '【用户已删除】' : $vo->user->username}} </td>
-                                                <td> {{empty($vo->goods) ? '【商品已删除】' : $vo->goods->name}} </td>
-                                                <td> {{$vo->totalOriginalPrice}} </td>
-                                                <td> {{$vo->totalPrice}} </td>
-                                                <td> {{empty($vo->coupon) ? '' : $vo->coupon->name . ' - ' . $vo->coupon->sn}} </td>
-                                                <td> {{$vo->is_expire ? '已过期' : $vo->expire_at}} </td>
-                                                <td> {{$vo->created_at}} </td>
-                                            </tr>
-                                        @endforeach
-                                    @endif
-                                </tbody>
-                            </table>
-                        </div>
-                        <div class="row">
-                            <div class="col-md-4 col-sm-4">
-                                <div class="dataTables_info" role="status" aria-live="polite">共 {{$list->total()}} 条记录</div>
-                            </div>
-                            <div class="col-md-8 col-sm-8">
-                                <div class="dataTables_paginate paging_bootstrap_full_number pull-right">
-                                    {{ $list->links() }}
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-                <!-- END EXAMPLE TABLE PORTLET-->
-            </div>
-        </div>
-        <!-- END PAGE BASE CONTENT -->
-    </div>
-    <!-- END CONTENT BODY -->
-@endsection
-@section('script')
-    <script type="text/javascript">
-        // 搜索
-        function doSearch() {
-            var username = $("#username").val();
-            var is_expire = $("#is_expire").val();
-            var is_coupon = $("#is_coupon").val();
-
-            window.location.href = '{{url('admin/userOrderList')}}' + '?username=' + username + '&is_expire=' + is_expire + '&is_coupon=' + is_coupon;
-        }
-
-        // 重置
-        function doReset() {
-            window.location.href = '{{url('admin/userOrderList')}}';
-        }
-    </script>
-@endsection

+ 0 - 1
routes/web.php

@@ -72,7 +72,6 @@ Route::group(['middleware' => ['forbidden', 'user', 'admin']], function () {
     Route::post('admin/setQrcode', 'AdminController@setQrcode'); // 设置充值二维码
     Route::post('admin/resetUserTraffic', 'AdminController@resetUserTraffic'); // 重置用户流量
     Route::post('admin/handleUserBalance', 'AdminController@handleUserBalance'); // 余额充值
-    Route::get('admin/userOrderList', 'AdminController@userOrderList'); // 用户消费记录
     Route::get('admin/userBalanceLogList', 'AdminController@userBalanceLogList'); // 余额变动日志
     Route::get('admin/userBanLogList', 'AdminController@userBanLogList'); // 用户封禁记录
     Route::get('admin/makePort', 'AdminController@makePort'); // 生成端口

+ 1 - 0
sql/db.sql

@@ -322,6 +322,7 @@ INSERT INTO `config` VALUES ('50', 'is_youzan', 0);
 INSERT INTO `config` VALUES ('51', 'youzan_client_id', '');
 INSERT INTO `config` VALUES ('52', 'youzan_client_secret', '');
 INSERT INTO `config` VALUES ('53', 'kdt_id', '');
+INSERT INTO `config` VALUES ('54', 'initial_labels_for_user', '');
 
 
 -- ----------------------------

+ 2 - 0
sql/update/20180321.sql

@@ -0,0 +1,2 @@
+-- 注册默认的标签
+INSERT INTO `config` VALUES ('54', 'initial_labels_for_user', '');