Procházet zdrojové kódy

1.修正在线支付无法自动打标签问题
2.节点可以设置是否允许订阅
3.注册带返利链接bug修正
4.日韩语言包改名
5.修正订阅地址列表bug

bingo před 7 roky
rodič
revize
406c57529f
32 změnil soubory, kde provedl 157 přidání a 73 odebrání
  1. 27 3
      app/Console/Commands/AutoDecGoodsTrafficJob.php
  2. 4 1
      app/Http/Controllers/AdminController.php
  3. 21 0
      app/Http/Controllers/Api/YzyController.php
  4. 7 0
      app/Http/Controllers/RegisterController.php
  5. 3 1
      app/Http/Controllers/SubscribeController.php
  6. 0 0
      resources/lang/ja/404.php
  7. 0 0
      resources/lang/ja/active.php
  8. 0 0
      resources/lang/ja/home.php
  9. 0 0
      resources/lang/ja/login.php
  10. 0 0
      resources/lang/ja/register.php
  11. 0 0
      resources/lang/ko/404.php
  12. 0 0
      resources/lang/ko/active.php
  13. 0 0
      resources/lang/ko/home.php
  14. 0 0
      resources/lang/ko/login.php
  15. 0 0
      resources/lang/ko/register.php
  16. 17 1
      resources/views/admin/addNode.blade.php
  17. 18 2
      resources/views/admin/editNode.blade.php
  18. 1 0
      resources/views/admin/labelList.blade.php
  19. 2 1
      resources/views/admin/nodeList.blade.php
  20. 2 2
      resources/views/admin/subscribeLog.blade.php
  21. 1 1
      resources/views/admin/userBalanceLogList.blade.php
  22. 1 1
      resources/views/admin/userBanLogList.blade.php
  23. 1 1
      resources/views/emailLog/logList.blade.php
  24. 8 8
      resources/views/login.blade.php
  25. 9 9
      resources/views/register.blade.php
  26. 8 8
      resources/views/user/active.blade.php
  27. 8 8
      resources/views/user/activeUser.blade.php
  28. 0 10
      resources/views/user/free.blade.php
  29. 8 8
      resources/views/user/reset.blade.php
  30. 8 8
      resources/views/user/resetPassword.blade.php
  31. 1 0
      sql/db.sql
  32. 2 0
      sql/update/20180520.sql

+ 27 - 3
app/Console/Commands/AutoDecGoodsTrafficJob.php

@@ -2,6 +2,7 @@
 
 namespace App\Console\Commands;
 
+use App\Http\Models\Config;
 use App\Http\Models\GoodsLabel;
 use App\Http\Models\UserLabel;
 use Illuminate\Console\Command;
@@ -23,6 +24,13 @@ class AutoDecGoodsTrafficJob extends Command
     {
         $orderList = Order::query()->with(['user', 'goods'])->where('status', 2)->where('is_expire', 0)->get();
         if (!$orderList->isEmpty()) {
+            // 用户默认标签
+            $config = $this->systemConfig();
+            $defaultLabels = [];
+            if ($config['initial_labels_for_user']) {
+                $defaultLabels = explode(',', $config['initial_labels_for_user']);
+            }
+
             foreach ($orderList as $order) {
                 if (empty($order->user) || empty($order->goods)) {
                     continue;
@@ -39,16 +47,20 @@ class AutoDecGoodsTrafficJob extends Command
                     // 删除该商品对应用户的所有标签
                     UserLabel::query()->where('user_id', $order->user->id)->delete();
 
-                    // 取出用户的全部其他商品
+                    // 取出用户的全部其他商品并打上对应的标签
                     $goodsIds = Order::query()->where('user_id', $order->user->id)->where('oid', '<>', $order->oid)->groupBy('goods_id')->pluck('goods_id')->toArray();
                     $goodsLabels = GoodsLabel::query()->whereIn('goods_id', $goodsIds)->groupBy('label_id')->pluck('label_id')->toArray();
-                    foreach ($goodsLabels as $label) {
+
+                    // 合并默认标签
+                    $labels = $defaultLabels ? array_merge($goodsLabels, $defaultLabels) : $goodsLabels;
+                    foreach ($labels as $vo) {
                         $userLabel = new UserLabel();
                         $userLabel->user_id = $order->user->id;
-                        $userLabel->label_id = $label;
+                        $userLabel->label_id = $vo;
                         $userLabel->save();
                     }
 
+
                     Order::query()->where('oid', $order->oid)->update(['is_expire' => 1]);
                 }
             }
@@ -56,4 +68,16 @@ class AutoDecGoodsTrafficJob extends Command
 
         Log::info('定时任务:' . $this->description);
     }
+
+    // 系统配置
+    private function systemConfig()
+    {
+        $config = Config::query()->get();
+        $data = [];
+        foreach ($config as $vo) {
+            $data[$vo->name] = $vo->value;
+        }
+
+        return $data;
+    }
 }

+ 4 - 1
app/Http/Controllers/AdminController.php

@@ -440,6 +440,7 @@ class AdminController extends Controller
                 $ssNode->bandwidth = $request->get('bandwidth', 100);
                 $ssNode->traffic = $request->get('traffic', 1000);
                 $ssNode->monitor_url = $request->get('monitor_url', '');
+                $ssNode->is_subscribe = $request->get('is_subscribe', 1);
                 $ssNode->compatible = $request->get('compatible', 0);
                 $ssNode->single = $request->get('single', 0);
                 $ssNode->single_force = $request->get('single') ? $request->get('single_force') : 0;
@@ -516,8 +517,9 @@ class AdminController extends Controller
             $bandwidth = $request->get('bandwidth');
             $traffic = $request->get('traffic');
             $monitor_url = $request->get('monitor_url');
+            $is_subscribe = $request->get('is_subscribe', 1);
             $compatible = $request->get('compatible');
-            $single = $request->get('single');
+            $single = $request->get('single', 0);
             $single_force = $request->get('single_force');
             $single_port = $request->get('single_port');
             $single_passwd = $request->get('single_passwd');
@@ -554,6 +556,7 @@ class AdminController extends Controller
                     'bandwidth'       => $bandwidth,
                     'traffic'         => $traffic,
                     'monitor_url'     => $monitor_url,
+                    'is_subscribe'    => $is_subscribe,
                     'compatible'      => $compatible,
                     'single'          => $single,
                     'single_force'    => $single ? $single_force : 0,

+ 21 - 0
app/Http/Controllers/Api/YzyController.php

@@ -7,11 +7,13 @@ use App\Http\Controllers\Controller;
 use App\Http\Models\Coupon;
 use App\Http\Models\CouponLog;
 use App\Http\Models\Goods;
+use App\Http\Models\GoodsLabel;
 use App\Http\Models\Order;
 use App\Http\Models\Payment;
 use App\Http\Models\PaymentCallback;
 use App\Http\Models\ReferralLog;
 use App\Http\Models\User;
+use App\Http\Models\UserLabel;
 use Illuminate\Http\Request;
 use Log;
 use DB;
@@ -156,6 +158,25 @@ class YzyController extends Controller
                         User::query()->where('id', $order->user_id)->update(['expire_time' => date('Y-m-d', strtotime("+" . $goods->days . " days")), 'enable' => 1]);
                     }
 
+                    // 写入用户标签
+                    if ($goods->label) {
+                        // 取出现有的标签
+                        $userLabels = UserLabel::query()->where('user_id', $order->user_id)->pluck('label_id')->toArray();
+                        $goodsLabels = GoodsLabel::query()->where('goods_id', $order->goods_id)->pluck('label_id')->toArray();
+                        $newUserLabels = array_merge($userLabels, $goodsLabels);
+
+                        // 删除用户所有标签
+                        UserLabel::query()->where('user_id', $order->user_id)->delete();
+
+                        // 生成标签
+                        foreach ($newUserLabels as $vo) {
+                            $obj = new UserLabel();
+                            $obj->user_id = $order->user_id;
+                            $obj->label_id = $vo;
+                            $obj->save();
+                        }
+                    }
+
                     // 写入返利日志
                     if ($order->user->referral_uid) {
                         $referralLog = new ReferralLog();

+ 7 - 0
app/Http/Controllers/RegisterController.php

@@ -227,6 +227,13 @@ class RegisterController extends Controller
         } else {
             $request->session()->put('register_token', makeRandStr(16));
 
+            // 如果第一次打开带返aff,则存储aff,防止再次打开无返利aff
+            if (intval($request->get('aff'))) {
+                if (!$request->session()->get('register_aff')) {
+                    $request->session()->put('register_aff', intval($request->get('aff')));
+                }
+            }
+
             $view['is_captcha'] = self::$config['is_captcha'];
             $view['is_register'] = self::$config['is_register'];
             $view['is_invite_register'] = self::$config['is_invite_register'];

+ 3 - 1
app/Http/Controllers/SubscribeController.php

@@ -57,8 +57,10 @@ class SubscribeController extends Controller
             exit($this->noneNode());
         }
 
-        $nodeList = SsNode::query()->leftjoin("ss_node_label", "ss_node.id", "=", "ss_node_label.node_id")
+        $nodeList = SsNode::query()
+            ->leftjoin("ss_node_label", "ss_node.id", "=", "ss_node_label.node_id")
             ->where('ss_node.status', 1)
+            ->where('ss_node.is_subscribe', 1)
             ->whereIn('ss_node_label.label_id', $userLabelIds)
             ->groupBy('ss_node.id')
             ->get()

+ 0 - 0
resources/lang/jp/404.php → resources/lang/ja/404.php


+ 0 - 0
resources/lang/jp/active.php → resources/lang/ja/active.php


+ 0 - 0
resources/lang/jp/home.php → resources/lang/ja/home.php


+ 0 - 0
resources/lang/jp/login.php → resources/lang/ja/login.php


+ 0 - 0
resources/lang/jp/register.php → resources/lang/ja/register.php


+ 0 - 0
resources/lang/kr/404.php → resources/lang/ko/404.php


+ 0 - 0
resources/lang/kr/active.php → resources/lang/ko/active.php


+ 0 - 0
resources/lang/kr/home.php → resources/lang/ko/home.php


+ 0 - 0
resources/lang/kr/login.php → resources/lang/ko/login.php


+ 0 - 0
resources/lang/kr/register.php → resources/lang/ko/register.php


+ 17 - 1
resources/views/admin/addNode.blade.php

@@ -200,6 +200,21 @@
                                                     </div>
                                                 </div>
                                                 <div class="portlet-body">
+                                                    <div class="form-group">
+                                                        <label for="is_subscribe" class="col-md-3 control-label">订阅</label>
+                                                        <div class="col-md-8">
+                                                            <div class="mt-radio-inline">
+                                                                <label class="mt-radio">
+                                                                    <input type="radio" name="is_subscribe" value="1" checked> 允许
+                                                                    <span></span>
+                                                                </label>
+                                                                <label class="mt-radio">
+                                                                    <input type="radio" name="is_subscribe" value="0"> 不允许
+                                                                    <span></span>
+                                                                </label>
+                                                            </div>
+                                                        </div>
+                                                    </div>
                                                     <div class="form-group">
                                                         <label for="compatible" class="col-md-3 control-label">兼容SS</label>
                                                         <div class="col-md-8">
@@ -338,6 +353,7 @@
             var bandwidth = $('#bandwidth').val();
             var traffic = $('#traffic').val();
             var monitor_url = $('#monitor_url').val();
+            var is_subscribe = $("input:radio[name='is_subscribe']:checked").val();
             var compatible = $('#compatible').val();
             var single = $('#single').val();
             var single_force = $('#single_force').val();
@@ -353,7 +369,7 @@
                 type: "POST",
                 url: "{{url('admin/addNode')}}",
                 async: false,
-                data: {_token:'{{csrf_token()}}', name: name, labels:labels, group_id:group_id, country_code:country_code, server:server, ip:ip, ipv6:ipv6, desc:desc, method:method, traffic_rate:traffic_rate, protocol:protocol, protocol_param:protocol_param, obfs:obfs, obfs_param:obfs_param, bandwidth:bandwidth, traffic:traffic, monitor_url:monitor_url, compatible:compatible, single:single, single_force:single_force, single_port:single_port, single_passwd:single_passwd, single_method:single_method, single_protocol:single_protocol, single_obfs:single_obfs, sort:sort, status:status},
+                data: {_token:'{{csrf_token()}}', name: name, labels:labels, group_id:group_id, country_code:country_code, server:server, ip:ip, ipv6:ipv6, desc:desc, method:method, traffic_rate:traffic_rate, protocol:protocol, protocol_param:protocol_param, obfs:obfs, obfs_param:obfs_param, bandwidth:bandwidth, traffic:traffic, monitor_url:monitor_url, is_subscribe:is_subscribe, compatible:compatible, single:single, single_force:single_force, single_port:single_port, single_passwd:single_passwd, single_method:single_method, single_protocol:single_protocol, single_obfs:single_obfs, sort:sort, status:status},
                 dataType: 'json',
                 success: function (ret) {
                     layer.msg(ret.message, {time:1000}, function() {

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

@@ -198,6 +198,21 @@
                                                     </div>
                                                 </div>
                                                 <div class="portlet-body">
+                                                    <div class="form-group">
+                                                        <label for="is_subscribe" class="col-md-3 control-label">订阅</label>
+                                                        <div class="col-md-8">
+                                                            <div class="mt-radio-inline">
+                                                                <label class="mt-radio">
+                                                                    <input type="radio" name="is_subscribe" value="1" {{$node->is_subscribe ? 'checked' : ''}}> 允许
+                                                                    <span></span>
+                                                                </label>
+                                                                <label class="mt-radio">
+                                                                    <input type="radio" name="is_subscribe" value="0" {{!$node->is_subscribe ? 'checked' : ''}}> 不允许
+                                                                    <span></span>
+                                                                </label>
+                                                            </div>
+                                                        </div>
+                                                    </div>
                                                     <div class="form-group">
                                                         <label for="compatible" class="col-md-3 control-label">兼容SS</label>
                                                         <div class="col-md-8">
@@ -278,7 +293,7 @@
                                                     <div class="form-group">
                                                         <label for="monitor_url" class="col-md-3 control-label">监控地址</label>
                                                         <div class="col-md-8">
-                                                            <input type="text" class="form-control right" name="monitor_url" value="{{$node->monitor_url}}" id="monitor_url" placeholder="">
+                                                            <input type="text" class="form-control right" name="monitor_url" value="{{$node->monitor_url}}" id="monitor_url" placeholder="节点实时监控地址">
                                                             <span class="help-block"> 例如:http://us1.xxx.com/monitor.php </span>
                                                         </div>
                                                     </div>
@@ -338,6 +353,7 @@
             var bandwidth = $('#bandwidth').val();
             var traffic = $('#traffic').val();
             var monitor_url = $('#monitor_url').val();
+            var is_subscribe = $("input:radio[name='is_subscribe']:checked").val();
             var compatible = $('#compatible').val();
             var single = $('#single').val();
             var single_force = $('#single_force').val();
@@ -353,7 +369,7 @@
                 type: "POST",
                 url: "{{url('admin/editNode')}}",
                 async: false,
-                data: {_token:_token, id:id, name: name, labels:labels, group_id:group_id, country_code:country_code, server:server, ip:ip, ipv6:ipv6, desc:desc, method:method, traffic_rate:traffic_rate, protocol:protocol, protocol_param:protocol_param, obfs:obfs, obfs_param:obfs_param, bandwidth:bandwidth, traffic:traffic, monitor_url:monitor_url, compatible:compatible, single:single, single_force:single_force, single_port:single_port, single_passwd:single_passwd, single_method:single_method, single_protocol:single_protocol, single_obfs:single_obfs, sort:sort, status:status},
+                data: {_token:_token, id:id, name: name, labels:labels, group_id:group_id, country_code:country_code, server:server, ip:ip, ipv6:ipv6, desc:desc, method:method, traffic_rate:traffic_rate, protocol:protocol, protocol_param:protocol_param, obfs:obfs, obfs_param:obfs_param, bandwidth:bandwidth, traffic:traffic, monitor_url:monitor_url, is_subscribe:is_subscribe, compatible:compatible, single:single, single_force:single_force, single_port:single_port, single_passwd:single_passwd, single_method:single_method, single_protocol:single_protocol, single_obfs:single_obfs, sort:sort, status:status},
                 dataType: 'json',
                 success: function (ret) {
                     layer.msg(ret.message, {time:1000}, function() {

+ 1 - 0
resources/views/admin/labelList.blade.php

@@ -16,6 +16,7 @@
                     <div class="portlet-title">
                         <div class="caption font-dark">
                             <span class="caption-subject bold uppercase"> 标签列表 </span>
+                            <small>标签影响用户查看/订阅节点信息(用户和节点通过标签进行关联)</small>
                         </div>
                         <div class="actions">
                             <div class="btn-group">

+ 2 - 1
resources/views/admin/nodeList.blade.php

@@ -73,7 +73,8 @@
                                                 <td> <span class="label label-danger">{{$node->traffic_rate}}</span> </td>
                                                 <td>
                                                     @if($node->compatible) <span class="label label-info">兼</span> @endif
-                                                    @if($node->single) <span class="label label-danger">单</span> @endif
+                                                    @if($node->single) <span class="label label-info">单</span> @endif
+                                                    @if(!$node->is_subscribe) <span class="label label-info"><s>订阅</s></span> @endif
                                                 </td>
                                                 <td>
                                                     <button type="button" class="btn btn-sm blue btn-outline" onclick="editNode('{{$node->id}}')">

+ 2 - 2
resources/views/admin/subscribeLog.blade.php

@@ -37,7 +37,7 @@
                                 <tr>
                                     <th> # </th>
                                     <th> 用户 </th>
-                                    <th> 唯一识别码 </th>
+                                    <th> 识别码 </th>
                                     <th> 请求次数 </th>
                                     <th> 最后请求时间 </th>
                                     <th> 封禁时间 </th>
@@ -54,7 +54,7 @@
                                         @foreach($subscribeList as $subscribe)
                                             <tr class="odd gradeX">
                                                 <td> {{$subscribe->id}} </td>
-                                                <td> {{$subscribe->user->username}} </td>
+                                                <td> {{empty($subscribe->user) ? '【账号已删除】' : $subscribe->user->username}} </td>
                                                 <td> {{$subscribe->code}} </td>
                                                 <td> {{$subscribe->times}} </td>
                                                 <td> {{$subscribe->updated_at}} </td>

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

@@ -51,7 +51,7 @@
                                         @foreach($list as $vo)
                                             <tr class="odd gradeX">
                                                 <td> {{$vo->id}} </td>
-                                                <td> {{empty($vo->user) ? '【用户已删除】' : $vo->user->username}} </td>
+                                                <td> {{empty($vo->user) ? '【账号已删除】' : $vo->user->username}} </td>
                                                 <td> {{$vo->order_id}} </td>
                                                 <td> {{$vo->before}} </td>
                                                 <td> {{$vo->amount}} </td>

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

@@ -48,7 +48,7 @@
                                         @foreach($list as $vo)
                                             <tr class="odd gradeX">
                                                 <td> {{$vo->id}} </td>
-                                                <td> {{empty($vo->user) ? '【用户已删除】' : $vo->user->username}} </td>
+                                                <td> {{empty($vo->user) ? '【账号已删除】' : $vo->user->username}} </td>
                                                 <td> {{$vo->minutes}}分钟 </td>
                                                 <td> {{$vo->desc}} </td>
                                                 <td> {{$vo->created_at}} </td>

+ 1 - 1
resources/views/emailLog/logList.blade.php

@@ -45,7 +45,7 @@
                                     @foreach($list as $vo)
                                         <tr class="odd gradeX">
                                             <td> {{$vo->id}} </td>
-                                            <td> {{empty($vo->user) ? '【该用户已删除】' : $vo->user->username}} </td>
+                                            <td> {{empty($vo->user) ? '【账号已删除】' : $vo->user->username}} </td>
                                             <td> {{$vo->title}} </td>
                                             <td> {{$vo->content}} </td>
                                             <td> {{$vo->created_at}} </td>

+ 8 - 8
resources/views/login.blade.php

@@ -40,20 +40,20 @@
     <nav style="padding-bottom: 20px;text-align: center;">
         @if(app()->getLocale() == 'zh-CN')
             <a href="{{url('lang', ['locale' => 'en'])}}">English</a>
-            <a href="{{url('lang', ['locale' => 'jp'])}}">日本語</a>
-            <a href="{{url('lang', ['locale' => 'kr'])}}">한국어</a>
+            <a href="{{url('lang', ['locale' => 'ja'])}}">日本語</a>
+            <a href="{{url('lang', ['locale' => 'ko'])}}">한국어</a>
         @elseif(app()->getLocale() == 'en')
             <a href="{{url('lang', ['locale' => 'zh-CN'])}}">中文</a>
-            <a href="{{url('lang', ['locale' => 'jp'])}}">日本語</a>
-            <a href="{{url('lang', ['locale' => 'kr'])}}">한국어</a>
-        @elseif(app()->getLocale() == 'kr')
+            <a href="{{url('lang', ['locale' => 'ja'])}}">日本語</a>
+            <a href="{{url('lang', ['locale' => 'ko'])}}">한국어</a>
+        @elseif(app()->getLocale() == 'ko')
             <a href="{{url('lang', ['locale' => 'zh-CN'])}}">中文</a>
             <a href="{{url('lang', ['locale' => 'en'])}}">English</a>
-            <a href="{{url('lang', ['locale' => 'jp'])}}">日本語</a>
-        @elseif(app()->getLocale() == 'jp')
+            <a href="{{url('lang', ['locale' => 'ja'])}}">日本語</a>
+        @elseif(app()->getLocale() == 'ja')
             <a href="{{url('lang', ['locale' => 'zh-CN'])}}">中文</a>
             <a href="{{url('lang', ['locale' => 'en'])}}">English</a>
-            <a href="{{url('lang', ['locale' => 'kr'])}}">한국어</a>
+            <a href="{{url('lang', ['locale' => 'ko'])}}">한국어</a>
         @else
         @endif
     </nav>

+ 9 - 9
resources/views/register.blade.php

@@ -40,20 +40,20 @@
     <nav style="padding-bottom: 20px;text-align: center;">
         @if(app()->getLocale() == 'zh-CN')
             <a href="{{url('lang', ['locale' => 'en'])}}">English</a>
-            <a href="{{url('lang', ['locale' => 'jp'])}}">日本語</a>
-            <a href="{{url('lang', ['locale' => 'kr'])}}">한국어</a>
+            <a href="{{url('lang', ['locale' => 'ja'])}}">日本語</a>
+            <a href="{{url('lang', ['locale' => 'ko'])}}">한국어</a>
         @elseif(app()->getLocale() == 'en')
             <a href="{{url('lang', ['locale' => 'zh-CN'])}}">中文</a>
-            <a href="{{url('lang', ['locale' => 'jp'])}}">日本語</a>
-            <a href="{{url('lang', ['locale' => 'kr'])}}">한국어</a>
-        @elseif(app()->getLocale() == 'kr')
+            <a href="{{url('lang', ['locale' => 'ja'])}}">日本語</a>
+            <a href="{{url('lang', ['locale' => 'ko'])}}">한국어</a>
+        @elseif(app()->getLocale() == 'ko')
             <a href="{{url('lang', ['locale' => 'zh-CN'])}}">中文</a>
             <a href="{{url('lang', ['locale' => 'en'])}}">English</a>
-            <a href="{{url('lang', ['locale' => 'jp'])}}">日本語</a>
-        @elseif(app()->getLocale() == 'jp')
+            <a href="{{url('lang', ['locale' => 'ja'])}}">日本語</a>
+        @elseif(app()->getLocale() == 'ja')
             <a href="{{url('lang', ['locale' => 'zh-CN'])}}">中文</a>
             <a href="{{url('lang', ['locale' => 'en'])}}">English</a>
-            <a href="{{url('lang', ['locale' => 'kr'])}}">한국어</a>
+            <a href="{{url('lang', ['locale' => 'ko'])}}">한국어</a>
         @else
         @endif
     </nav>
@@ -71,7 +71,7 @@
                 <input class="form-control placeholder-no-fix" type="text" autocomplete="off" placeholder="{{trans('register.username_placeholder')}}" name="username" value="{{Request::old('username')}}" required />
                 <input type="hidden" name="register_token" value="{{Session::get('register_token')}}" />
                 <input type="hidden" name="_token" value="{{csrf_token()}}" />
-                <input type="hidden" name="aff" value="{{Request::get('aff')}}" />
+                <input type="hidden" name="aff" value="{{Session::get('register_aff')}}" />
             </div>
             <div class="form-group">
                 <label class="control-label visible-ie8 visible-ie9">{{trans('register.password')}}</label>

+ 8 - 8
resources/views/user/active.blade.php

@@ -40,20 +40,20 @@
     <nav style="padding-bottom: 20px;text-align: center;">
         @if(app()->getLocale() == 'zh-CN')
             <a href="{{url('lang', ['locale' => 'en'])}}">English</a>
-            <a href="{{url('lang', ['locale' => 'jp'])}}">日本語</a>
-            <a href="{{url('lang', ['locale' => 'kr'])}}">한국어</a>
+            <a href="{{url('lang', ['locale' => 'ja'])}}">日本語</a>
+            <a href="{{url('lang', ['locale' => 'ko'])}}">한국어</a>
         @elseif(app()->getLocale() == 'en')
             <a href="{{url('lang', ['locale' => 'zh-CN'])}}">中文</a>
-            <a href="{{url('lang', ['locale' => 'jp'])}}">日本語</a>
-            <a href="{{url('lang', ['locale' => 'kr'])}}">한국어</a>
-        @elseif(app()->getLocale() == 'kr')
+            <a href="{{url('lang', ['locale' => 'ja'])}}">日本語</a>
+            <a href="{{url('lang', ['locale' => 'ko'])}}">한국어</a>
+        @elseif(app()->getLocale() == 'ko')
             <a href="{{url('lang', ['locale' => 'zh-CN'])}}">中文</a>
             <a href="{{url('lang', ['locale' => 'en'])}}">English</a>
-            <a href="{{url('lang', ['locale' => 'jp'])}}">日本語</a>
-        @elseif(app()->getLocale() == 'jp')
+            <a href="{{url('lang', ['locale' => 'ja'])}}">日本語</a>
+        @elseif(app()->getLocale() == 'ja')
             <a href="{{url('lang', ['locale' => 'zh-CN'])}}">中文</a>
             <a href="{{url('lang', ['locale' => 'en'])}}">English</a>
-            <a href="{{url('lang', ['locale' => 'kr'])}}">한국어</a>
+            <a href="{{url('lang', ['locale' => 'ko'])}}">한국어</a>
         @else
         @endif
     </nav>

+ 8 - 8
resources/views/user/activeUser.blade.php

@@ -40,20 +40,20 @@
     <nav style="padding-bottom: 20px;text-align: center;">
         @if(app()->getLocale() == 'zh-CN')
             <a href="{{url('lang', ['locale' => 'en'])}}">English</a>
-            <a href="{{url('lang', ['locale' => 'jp'])}}">日本語</a>
-            <a href="{{url('lang', ['locale' => 'kr'])}}">한국어</a>
+            <a href="{{url('lang', ['locale' => 'ja'])}}">日本語</a>
+            <a href="{{url('lang', ['locale' => 'ko'])}}">한국어</a>
         @elseif(app()->getLocale() == 'en')
             <a href="{{url('lang', ['locale' => 'zh-CN'])}}">中文</a>
-            <a href="{{url('lang', ['locale' => 'jp'])}}">日本語</a>
-            <a href="{{url('lang', ['locale' => 'kr'])}}">한국어</a>
-        @elseif(app()->getLocale() == 'kr')
+            <a href="{{url('lang', ['locale' => 'ja'])}}">日本語</a>
+            <a href="{{url('lang', ['locale' => 'ko'])}}">한국어</a>
+        @elseif(app()->getLocale() == 'ko')
             <a href="{{url('lang', ['locale' => 'zh-CN'])}}">中文</a>
             <a href="{{url('lang', ['locale' => 'en'])}}">English</a>
-            <a href="{{url('lang', ['locale' => 'jp'])}}">日本語</a>
-        @elseif(app()->getLocale() == 'jp')
+            <a href="{{url('lang', ['locale' => 'ja'])}}">日本語</a>
+        @elseif(app()->getLocale() == 'ja')
             <a href="{{url('lang', ['locale' => 'zh-CN'])}}">中文</a>
             <a href="{{url('lang', ['locale' => 'en'])}}">English</a>
-            <a href="{{url('lang', ['locale' => 'kr'])}}">한국어</a>
+            <a href="{{url('lang', ['locale' => 'ko'])}}">한국어</a>
         @else
         @endif
     </nav>

+ 0 - 10
resources/views/user/free.blade.php

@@ -50,16 +50,6 @@
             <div class="top-menu">
                 <ul class="nav navbar-nav pull-right"></ul>
             </div>
-
-            <!-- BEGIN LANGUAGE -->
-            <div style="display:inline-table;height:100%;float:left;">
-                @if(app()->getLocale() == 'zh-CN')
-                    <a style="display:table-cell;vertical-align:middle;color:red;font-weight:600;" href="{{url('lang', ['locale' => 'en'])}}">English</a>
-                @else
-                    <a style="display:table-cell;vertical-align:middle;color:red;font-weight:600;" href="{{url('lang', ['locale' => 'zh-CN'])}}">中文</a>
-                @endif
-            </div>
-            <!-- END LANGUAGE -->
         </div>
     </div>
     <!-- END HEADER INNER -->

+ 8 - 8
resources/views/user/reset.blade.php

@@ -40,20 +40,20 @@
     <nav style="padding-bottom: 20px;text-align: center;">
         @if(app()->getLocale() == 'zh-CN')
             <a href="{{url('lang', ['locale' => 'en'])}}">English</a>
-            <a href="{{url('lang', ['locale' => 'jp'])}}">日本語</a>
-            <a href="{{url('lang', ['locale' => 'kr'])}}">한국어</a>
+            <a href="{{url('lang', ['locale' => 'ja'])}}">日本語</a>
+            <a href="{{url('lang', ['locale' => 'ko'])}}">한국어</a>
         @elseif(app()->getLocale() == 'en')
             <a href="{{url('lang', ['locale' => 'zh-CN'])}}">中文</a>
-            <a href="{{url('lang', ['locale' => 'jp'])}}">日本語</a>
-            <a href="{{url('lang', ['locale' => 'kr'])}}">한국어</a>
-        @elseif(app()->getLocale() == 'kr')
+            <a href="{{url('lang', ['locale' => 'ja'])}}">日本語</a>
+            <a href="{{url('lang', ['locale' => 'ko'])}}">한국어</a>
+        @elseif(app()->getLocale() == 'ko')
             <a href="{{url('lang', ['locale' => 'zh-CN'])}}">中文</a>
             <a href="{{url('lang', ['locale' => 'en'])}}">English</a>
-            <a href="{{url('lang', ['locale' => 'jp'])}}">日本語</a>
-        @elseif(app()->getLocale() == 'jp')
+            <a href="{{url('lang', ['locale' => 'ja'])}}">日本語</a>
+        @elseif(app()->getLocale() == 'ja')
             <a href="{{url('lang', ['locale' => 'zh-CN'])}}">中文</a>
             <a href="{{url('lang', ['locale' => 'en'])}}">English</a>
-            <a href="{{url('lang', ['locale' => 'kr'])}}">한국어</a>
+            <a href="{{url('lang', ['locale' => 'ko'])}}">한국어</a>
         @else
         @endif
     </nav>

+ 8 - 8
resources/views/user/resetPassword.blade.php

@@ -40,20 +40,20 @@
     <nav style="padding-bottom: 20px;text-align: center;">
         @if(app()->getLocale() == 'zh-CN')
             <a href="{{url('lang', ['locale' => 'en'])}}">English</a>
-            <a href="{{url('lang', ['locale' => 'jp'])}}">日本語</a>
-            <a href="{{url('lang', ['locale' => 'kr'])}}">한국어</a>
+            <a href="{{url('lang', ['locale' => 'ja'])}}">日本語</a>
+            <a href="{{url('lang', ['locale' => 'ko'])}}">한국어</a>
         @elseif(app()->getLocale() == 'en')
             <a href="{{url('lang', ['locale' => 'zh-CN'])}}">中文</a>
-            <a href="{{url('lang', ['locale' => 'jp'])}}">日本語</a>
-            <a href="{{url('lang', ['locale' => 'kr'])}}">한국어</a>
-        @elseif(app()->getLocale() == 'kr')
+            <a href="{{url('lang', ['locale' => 'ja'])}}">日本語</a>
+            <a href="{{url('lang', ['locale' => 'ko'])}}">한국어</a>
+        @elseif(app()->getLocale() == 'ko')
             <a href="{{url('lang', ['locale' => 'zh-CN'])}}">中文</a>
             <a href="{{url('lang', ['locale' => 'en'])}}">English</a>
-            <a href="{{url('lang', ['locale' => 'jp'])}}">日本語</a>
-        @elseif(app()->getLocale() == 'jp')
+            <a href="{{url('lang', ['locale' => 'ja'])}}">日本語</a>
+        @elseif(app()->getLocale() == 'ja')
             <a href="{{url('lang', ['locale' => 'zh-CN'])}}">中文</a>
             <a href="{{url('lang', ['locale' => 'en'])}}">English</a>
-            <a href="{{url('lang', ['locale' => 'kr'])}}">한국어</a>
+            <a href="{{url('lang', ['locale' => 'ko'])}}">한국어</a>
         @else
         @endif
     </nav>

+ 1 - 0
sql/db.sql

@@ -41,6 +41,7 @@ CREATE TABLE `ss_node` (
   `bandwidth` INT(11) NOT NULL DEFAULT '100' COMMENT '出口带宽,单位M',
   `traffic` BIGINT(20) NOT NULL DEFAULT '1000' COMMENT '每月可用流量,单位G',
   `monitor_url` VARCHAR(255) NULL DEFAULT NULL COMMENT '监控地址',
+  `is_subscribe` TINYINT(4) NULL DEFAULT '1' COMMENT '是否允许用户订阅该节点:0-否、1-是',
   `compatible` TINYINT(4) NULL DEFAULT '0' COMMENT '兼容SS',
   `single` TINYINT(4) NULL DEFAULT '0' COMMENT '单端口多用户:0-否、1-是',
   `single_force` TINYINT(4) NULL DEFAULT NULL COMMENT '模式:0-兼容模式、1-严格模式',

+ 2 - 0
sql/update/20180520.sql

@@ -0,0 +1,2 @@
+-- 节点是否允许用户订阅
+ALTER TABLE `ss_node` ADD COLUMN `is_subscribe` TINYINT(4) NULL DEFAULT '1' COMMENT '是否允许用户订阅该节点:0-否、1-是' AFTER `monitor_url`;