bingo 7 лет назад
Родитель
Сommit
16b36381f4

+ 22 - 23
app/Console/Commands/AutoCheckNodeStatusJob.php

@@ -38,29 +38,27 @@ class AutoCheckNodeStatusJob extends Command
                     continue;
                 }
 
-                // 发邮件通知管理员
-                if ($config['is_node_crash_warning']) {
-                    $title = "节点宕机警告";
-                    $content = "节点**{$node->name}({$node->server})**可能宕机,请及时检查。";
-
-                    if ($config['crash_warning_email']) {
-                        try {
-                            Mail::to($config['crash_warning_email'])->send(new nodeCrashWarning($config['website_name'], $node->name, $node->server));
-                            $this->sendEmailLog(1, $title, $content);
-                        } catch (\Exception $e) {
-                            $this->sendEmailLog(1, $title, $content, 0, $e->getMessage());
-                        }
-                    }
+                $title = "节点宕机警告";
+                $content = "节点**{$node->name}【{$node->server}】({$node->ip})**可能宕机,请及时检查。";
 
-                    // 通过ServerChan发微信消息提醒管理员
-                    if ($config['is_server_chan'] && $config['server_chan_key']) {
-                        $serverChan = new ServerChan();
-                        $serverChan->send($title, $content);
+                // 发邮件通知管理员
+                if ($config['is_node_crash_warning'] && $config['crash_warning_email']) {
+                    try {
+                        Mail::to($config['crash_warning_email'])->send(new nodeCrashWarning($config['website_name'], $node->name, $node->server));
+                        $this->sendEmailLog(1, $title, $content);
+                    } catch (\Exception $e) {
+                        $this->sendEmailLog(1, $title, $content, 0, $e->getMessage());
                     }
+                }
 
-                    // 写入发信缓存
-                    Cache::put($this->cacheKey . $node->id, $node->name . '(' . $node->server . ')', 10);
+                // 通过ServerChan发微信消息提醒管理员
+                if ($config['is_server_chan'] && $config['server_chan_key']) {
+                    $serverChan = new ServerChan();
+                    $serverChan->send($title, $content);
                 }
+
+                // 写入发信缓存
+                Cache::put($this->cacheKey . $node->id, $node->name . '(' . $node->server . ')', 10);
             }
         }
 
@@ -69,11 +67,12 @@ class AutoCheckNodeStatusJob extends Command
 
     /**
      * 写入邮件发送日志
-     * @param int $user_id 接收者用户ID
-     * @param string $title 标题
+     *
+     * @param int    $user_id 接收者用户ID
+     * @param string $title   标题
      * @param string $content 内容
-     * @param int $status 投递状态
-     * @param string $error 投递失败时记录的异常信息
+     * @param int    $status  投递状态
+     * @param string $error   投递失败时记录的异常信息
      */
     private function sendEmailLog($user_id, $title, $content, $status = 1, $error = '')
     {

+ 1 - 2
app/Console/Commands/UserTrafficAbnormalWarningJob.php

@@ -25,7 +25,7 @@ class UserTrafficAbnormalWarningJob extends Command
         $config = $this->systemConfig();
 
         // 24小时内流量异常用户
-        $userTotalTrafficList = UserTrafficHourly::query()->where('node_id', 0)->where('total', '>', 104857600)->where('created_at', '>=', date('Y-m-d H:i:s', time() - 24 * 60 * 60))->groupBy('user_id')->selectRaw("user_id, sum(total) as totalTraffic")->get(); // 只统计100M以上的记录,加快速度
+        $userTotalTrafficList = UserTrafficHourly::query()->where('node_id', 0)->where('total', '>', 104857600)->where('created_at', '>=', date('Y-m-d H:i:s', time() - 24 * 60 * 60))->groupBy('user_id')->selectRaw("user_id, sum(total) as totalTraffic")->get(); // 只统计100M以上的记录,加快查询速度
         if (!$userTotalTrafficList->isEmpty()) {
             foreach ($userTotalTrafficList as $vo) {
                 $user = User::query()->where('id', $vo->user_id)->first();
@@ -34,7 +34,6 @@ class UserTrafficAbnormalWarningJob extends Command
                 if ($vo->totalTraffic > ($config['traffic_ban_value'] * 1024 * 1024 * 1024)) {
                     // 通过ServerChan发微信消息提醒管理员
                     if ($config['is_server_chan'] && $config['server_chan_key'] && Cache::get($cacheKey) <= 3) {
-
                         $traffic = UserTrafficHourly::query()->where('node_id', 0)->where('user_id', $vo->user_id)->where('created_at', '>=', date('Y-m-d H:i:s', time() - 24 * 60 * 60))->selectRaw("user_id, sum(`u`) as totalU, sum(`d`) as totalD, sum(total) as totalTraffic")->first();
 
                         $title = "流量异常用户警告";

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

@@ -32,6 +32,7 @@ use Maatwebsite\Excel\Facades\Excel;
 use Illuminate\Http\Request;
 use Redirect;
 use Response;
+use Session;
 use Log;
 use DB;
 
@@ -271,12 +272,13 @@ class AdminController extends Controller
                 $user = new User();
                 $user->username = '批量生成-' . makeRandStr();
                 $user->password = md5(makeRandStr());
+                $user->port = $port;
+                $user->passwd = makeRandStr();
                 $user->enable = 1;
                 $user->method = $this->getDefaultMethod();
                 $user->protocol = $this->getDefaultProtocol();
                 $user->obfs = $this->getDefaultObfs();
-                $user->port = $port;
-                $user->passwd = makeRandStr();
+                $user->usage = 1;
                 $user->transfer_enable = toGB(1000);
                 $user->enable_time = date('Y-m-d');
                 $user->expire_time = date('Y-m-d', strtotime("+365 days"));
@@ -661,6 +663,9 @@ class AdminController extends Controller
                     }
                 }
 
+                // TODO:更新节点绑定的域名DNS(将节点IP更新到域名DNS)
+
+
                 DB::commit();
 
                 return Response::json(['status' => 'success', 'data' => '', 'message' => '编辑成功']);
@@ -735,7 +740,7 @@ class AdminController extends Controller
 
         $node = SsNode::query()->where('id', $node_id)->orderBy('sort', 'desc')->first();
         if (!$node) {
-            $request->session()->flash('errorMsg', '节点不存在,请重试');
+            Session::flash('errorMsg', '节点不存在,请重试');
 
             return Redirect::back();
         }
@@ -1038,7 +1043,7 @@ class AdminController extends Controller
                     $str = mb_substr($item, 5);
                 }
 
-                $txt .= "\r\n" . $this->base64url_decode($str);
+                $txt .= "\r\n" . base64url_decode($str);
             }
 
             // 生成转换好的JSON文件
@@ -1133,7 +1138,7 @@ class AdminController extends Controller
     {
         if ($request->method() == 'POST') {
             if (!$request->hasFile('uploadFile')) {
-                $request->session()->flash('errorMsg', '请选择要上传的文件');
+                Session::flash('errorMsg', '请选择要上传的文件');
 
                 return Redirect::back();
             }
@@ -1142,13 +1147,13 @@ class AdminController extends Controller
 
             // 只能上传JSON文件
             if ($file->getClientMimeType() != 'application/json' || $file->getClientOriginalExtension() != 'json') {
-                $request->session()->flash('errorMsg', '只允许上传JSON文件');
+                Session::flash('errorMsg', '只允许上传JSON文件');
 
                 return Redirect::back();
             }
 
             if (!$file->isValid()) {
-                $request->session()->flash('errorMsg', '产生未知错误,请重新上传');
+                Session::flash('errorMsg', '产生未知错误,请重新上传');
 
                 return Redirect::back();
             }
@@ -1161,7 +1166,7 @@ class AdminController extends Controller
             $data = file_get_contents($save_path . '/' . $new_name);
             $data = json_decode($data);
             if (!$data) {
-                $request->session()->flash('errorMsg', '内容格式解析异常,请上传符合SSR(R)配置规范的JSON文件');
+                Session::flash('errorMsg', '内容格式解析异常,请上传符合SSR(R)配置规范的JSON文件');
 
                 return Redirect::back();
             }
@@ -1205,12 +1210,12 @@ class AdminController extends Controller
             } catch (\Exception $e) {
                 DB::rollBack();
 
-                $request->session()->flash('errorMsg', '出错了,可能是导入的配置中有端口已经存在了');
+                Session::flash('errorMsg', '出错了,可能是导入的配置中有端口已经存在了');
 
                 return Redirect::back();
             }
 
-            $request->session()->flash('successMsg', '导入成功');
+            Session::flash('successMsg', '导入成功');
 
             return Redirect::back();
         } else {
@@ -1330,7 +1335,7 @@ EOF;
     // 修改个人资料
     public function profile(Request $request)
     {
-        $user = $request->session()->get('user');
+        $user = Session::get('user');
 
         if ($request->method() == 'POST') {
             $old_password = $request->get('old_password');
@@ -1340,22 +1345,22 @@ EOF;
 
             $user = User::query()->where('id', $user['id'])->first();
             if ($user->password != $old_password) {
-                $request->session()->flash('errorMsg', '旧密码错误,请重新输入');
+                Session::flash('errorMsg', '旧密码错误,请重新输入');
 
                 return Redirect::back();
             } else if ($user->password == $new_password) {
-                $request->session()->flash('errorMsg', '新密码不可与旧密码一样,请重新输入');
+                Session::flash('errorMsg', '新密码不可与旧密码一样,请重新输入');
 
                 return Redirect::back();
             }
 
             $ret = User::query()->where('id', $user['id'])->update(['password' => $new_password]);
             if (!$ret) {
-                $request->session()->flash('errorMsg', '修改失败');
+                Session::flash('errorMsg', '修改失败');
 
                 return Redirect::back();
             } else {
-                $request->session()->flash('successMsg', '修改成功');
+                Session::flash('successMsg', '修改成功');
 
                 return Redirect::back();
             }
@@ -1521,13 +1526,44 @@ EOF;
         $websiteAnalytics = $request->get('website_analytics');
         $websiteCustomerService = $request->get('website_customer_service');
 
+        DB::beginTransaction();
         try {
+            // 首页LOGO
+            if ($request->hasFile('website_home_logo')) {
+                $file = $request->file('website_home_logo');
+                $fileType = $file->getClientOriginalExtension();
+                $logoName = date('YmdHis') . mt_rand(1000, 2000) . '.' . $fileType;
+                $move = $file->move(base_path() . '/public/upload/image/', $logoName);
+                $websiteHomeLogo = $move ? '/upload/image/' . $logoName : '';
+
+                Config::query()->where('name', 'website_home_logo')->update(['value' => $websiteHomeLogo]);
+            }
+
+            // 站内LOGO
+            if ($request->hasFile('website_logo')) {
+                $file = $request->file('website_logo');
+                $fileType = $file->getClientOriginalExtension();
+                $logoName = date('YmdHis') . mt_rand(1000, 2000) . '.' . $fileType;
+                $move = $file->move(base_path() . '/public/upload/image/', $logoName);
+                $websiteLogo = $move ? '/upload/image/' . $logoName : '';
+
+                Config::query()->where('name', 'website_logo')->update(['value' => $websiteLogo]);
+            }
+
             Config::query()->where('name', 'website_analytics')->update(['value' => $websiteAnalytics]);
             Config::query()->where('name', 'website_customer_service')->update(['value' => $websiteCustomerService]);
 
-            return Response::json(['status' => 'success', 'data' => '', 'message' => '操作成功']);
+            Session::flash('successMsg', '更新成功');
+
+            DB::commit();
+
+            return Redirect::back();
         } catch (\Exception $e) {
-            return Response::json(['status' => 'success', 'data' => '', 'message' => '操作成功']);
+            DB::rollBack();
+
+            Session::flash('errorMsg', '更新失败');
+
+            return Redirect::back();
         }
     }
 
@@ -1536,7 +1572,7 @@ EOF;
     {
         $file = storage_path('app/ssserver.log');
         if (!file_exists($file)) {
-            $request->session()->flash('analysisErrorMsg', $file . ' 不存在,请先创建文件');
+            Session::flash('analysisErrorMsg', $file . ' 不存在,请先创建文件');
 
             return Response::view('admin/analysis');
         }
@@ -1867,7 +1903,7 @@ EOF;
     // 生成邀请码
     public function makeInvite(Request $request)
     {
-        $user = $request->session()->get('user');
+        $user = Session::get('user');
 
         for ($i = 0; $i < 5; $i++) {
             $obj = new Invite();
@@ -2111,8 +2147,8 @@ EOF;
         }
 
         // 存储当前管理员身份信息,并将当前登录信息改成要切换的用户的身份信息
-        $request->session()->put('admin', $request->session()->get("user"));
-        $request->session()->put('user', $user->toArray());
+        Session::put('admin', Session::get("user"));
+        Session::put('user', $user->toArray());
 
         return Response::json(['status' => 'success', 'data' => '', 'message' => "身份切换成功"]);
     }

+ 5 - 4
app/Http/Controllers/CouponController.php

@@ -7,6 +7,7 @@ use Illuminate\Http\Request;
 use Maatwebsite\Excel\Facades\Excel;
 use Response;
 use Redirect;
+use Session;
 use DB;
 use Log;
 
@@ -40,13 +41,13 @@ class CouponController extends Controller
             $available_end = $request->get('available_end');
 
             if (empty($num) || (empty($amount) && empty($discount)) || empty($available_start) || empty($available_end)) {
-                $request->session()->flash('errorMsg', '请填写完整');
+                Session::flash('errorMsg', '请填写完整');
 
                 return Redirect::back()->withInput();
             }
 
             if (strtotime($available_start) >= strtotime($available_end)) {
-                $request->session()->flash('errorMsg', '有效期范围错误');
+                Session::flash('errorMsg', '有效期范围错误');
 
                 return Redirect::back()->withInput();
             }
@@ -80,13 +81,13 @@ class CouponController extends Controller
 
                 DB::commit();
 
-                $request->session()->flash('successMsg', '生成成功');
+                Session::flash('successMsg', '生成成功');
             } catch (\Exception $e) {
                 DB::rollBack();
 
                 Log::error('生成优惠券失败:' . $e->getMessage());
 
-                $request->session()->flash('errorMsg', '生成失败:' . $e->getMessage());
+                Session::flash('errorMsg', '生成失败:' . $e->getMessage());
             }
 
             return Redirect::to('coupon/addCoupon');

+ 11 - 9
app/Http/Controllers/LoginController.php

@@ -8,6 +8,7 @@ use Illuminate\Http\Request;
 use Response;
 use Redirect;
 use Captcha;
+use Session;
 use Cache;
 
 /**
@@ -34,7 +35,7 @@ class LoginController extends Controller
             $captcha = trim($request->get('captcha'));
 
             if (empty($username) || empty($password)) {
-                $request->session()->flash('errorMsg', '请输入用户名和密码');
+                Session::flash('errorMsg', '请输入用户名和密码');
 
                 return Redirect::back();
             }
@@ -42,7 +43,7 @@ class LoginController extends Controller
             // 是否校验验证码
             if (self::$config['is_captcha']) {
                 if (!Captcha::check($captcha)) {
-                    $request->session()->flash('errorMsg', '验证码错误,请重新输入');
+                    Session::flash('errorMsg', '验证码错误,请重新输入');
 
                     return Redirect::back()->withInput();
                 }
@@ -50,15 +51,15 @@ class LoginController extends Controller
 
             $user = User::query()->where('username', $username)->where('password', md5($password))->first();
             if (!$user) {
-                $request->session()->flash('errorMsg', '用户名或密码错误');
+                Session::flash('errorMsg', '用户名或密码错误');
 
                 return Redirect::back()->withInput();
             } else if ($user->status < 0) {
-                $request->session()->flash('errorMsg', '账号已禁用');
+                Session::flash('errorMsg', '账号已禁用');
 
                 return Redirect::back();
             } else if ($user->status == 0 && self::$config['is_active_register'] && $user->is_admin == 0) {
-                $request->session()->flash('errorMsg', '账号未激活,请先<a href="/activeUser?username=' . $user->username . '" target="_blank"><span style="color:#000">【激活账号】</span></a>');
+                Session::flash('errorMsg', '账号未激活,请先<a href="/activeUser?username=' . $user->username . '" target="_blank"><span style="color:#000">【激活账号】</span></a>');
 
                 return Redirect::back()->withInput();
             }
@@ -94,7 +95,7 @@ class LoginController extends Controller
                         $ttl = self::$config['login_add_score_range'] ? self::$config['login_add_score_range'] : 1440;
                         Cache::put('loginAddScore_' . md5($username), '1', $ttl);
 
-                        $request->session()->flash('successMsg', '欢迎回来,系统自动赠送您 ' . $score . ' 积分,您可以用它兑换流量包');
+                        Session::flash('successMsg', '欢迎回来,系统自动赠送您 ' . $score . ' 积分,您可以用它兑换流量包');
                     }
                 }
             }
@@ -102,7 +103,7 @@ class LoginController extends Controller
             // 重新取出用户信息
             $userInfo = User::query()->where('id', $user->id)->first();
 
-            $request->session()->put('user', $userInfo->toArray());
+            Session::put('user', $userInfo->toArray());
 
             // 根据权限跳转
             if ($user->is_admin) {
@@ -114,7 +115,7 @@ class LoginController extends Controller
             if ($request->cookie("remember")) {
                 $u = User::query()->where("remember_token", $request->cookie("remember"))->first();
                 if ($u) {
-                    $request->session()->put('user', $u->toArray());
+                    Session::put('user', $u->toArray());
 
                     if ($u->is_admin) {
                         return Redirect::to('admin');
@@ -126,6 +127,7 @@ class LoginController extends Controller
 
             $view['is_captcha'] = self::$config['is_captcha'];
             $view['is_register'] = self::$config['is_register'];
+            $view['website_home_logo'] = self::$config['website_home_logo'];
             $view['website_analytics'] = self::$config['website_analytics'];
             $view['website_customer_service'] = self::$config['website_customer_service'];
 
@@ -136,7 +138,7 @@ class LoginController extends Controller
     // 退出
     public function logout(Request $request)
     {
-        $request->session()->flush();
+        Session::flush();
 
         return Redirect::to('login')->cookie('remember', "", 36000);
     }

+ 7 - 5
app/Http/Controllers/PaymentController.php

@@ -10,6 +10,7 @@ use App\Http\Models\PaymentCallback;
 use Illuminate\Http\Request;
 use Response;
 use Redirect;
+use Session;
 use Log;
 use DB;
 
@@ -27,7 +28,7 @@ class PaymentController extends Controller
     {
         $goods_id = intval($request->get('goods_id'));
         $coupon_sn = $request->get('coupon_sn');
-        $user = $request->session()->get('user');
+        $user = Session::get('user');
 
         $goods = Goods::query()->where('id', $goods_id)->where('status', 1)->first();
         if (!$goods) {
@@ -76,7 +77,7 @@ class PaymentController extends Controller
 
         DB::beginTransaction();
         try {
-            $user = $request->session()->get('user');
+            $user = Session::get('user');
             $orderSn = date('ymdHis') . mt_rand(100000, 999999);
             $sn = makeRandStr(12);
 
@@ -141,7 +142,7 @@ class PaymentController extends Controller
             return Redirect::to('user/goodsList');
         }
 
-        $user = $request->session()->get('user');
+        $user = Session::get('user');
 
         $payment = Payment::query()->with(['order', 'order.goods'])->where('sn', $sn)->where('user_id', $user['id'])->first();
         if (!$payment) {
@@ -150,12 +151,13 @@ class PaymentController extends Controller
 
         $order = Order::query()->where('oid', $payment->oid)->first();
         if (!$order) {
-            $request->session()->flash('errorMsg', '订单不存在');
+            Session::flash('errorMsg', '订单不存在');
 
             return Response::view('payment/' . $sn);
         }
 
         $view['payment'] = $payment;
+        $view['website_logo'] = self::$config['website_logo'];
         $view['website_analytics'] = self::$config['website_analytics'];
         $view['website_customer_service'] = self::$config['website_customer_service'];
 
@@ -171,7 +173,7 @@ class PaymentController extends Controller
             return Response::json(['status' => 'fail', 'data' => '', 'message' => '请求失败']);
         }
 
-        $user = $request->session()->get('user');
+        $user = Session::get('user');
         $payment = Payment::query()->where('sn', $sn)->where('user_id', $user['id'])->first();
         if (!$payment) {
             return Response::json(['status' => 'fail', 'data' => '', 'message' => '支付失败']);

+ 21 - 20
app/Http/Controllers/RegisterController.php

@@ -12,6 +12,7 @@ use App\Mail\activeUser;
 use Captcha;
 use Response;
 use Redirect;
+use Session;
 use Cache;
 use Mail;
 
@@ -45,33 +46,33 @@ class RegisterController extends Controller
             $aff = intval($request->get('aff', 0));
 
             // 防止重复提交
-            $session_register_token = $request->session()->get('register_token');
+            $session_register_token = Session::get('register_token');
             if (empty($register_token) || $register_token != $session_register_token) {
-                $request->session()->flash('errorMsg', '请勿重复请求,刷新一下页面再试试');
+                Session::flash('errorMsg', '请勿重复请求,刷新一下页面再试试');
 
                 return Redirect::back()->withInput();
             } else {
-                $request->session()->forget('register_token');
+                Session::forget('register_token');
             }
 
             if (empty($username)) {
-                $request->session()->flash('errorMsg', '请输入用户名');
+                Session::flash('errorMsg', '请输入用户名');
 
                 return Redirect::back()->withInput();
             } else if (empty($password)) {
-                $request->session()->flash('errorMsg', '请输入密码');
+                Session::flash('errorMsg', '请输入密码');
 
                 return Redirect::back()->withInput();
             } else if (empty($repassword)) {
-                $request->session()->flash('errorMsg', '请重新输入密码');
+                Session::flash('errorMsg', '请重新输入密码');
 
                 return Redirect::back()->withInput();
             } else if (md5($password) != md5($repassword)) {
-                $request->session()->flash('errorMsg', '两次输入密码不一致,请重新输入');
+                Session::flash('errorMsg', '两次输入密码不一致,请重新输入');
 
                 return Redirect::back()->withInput($request->except(['password', 'repassword']));
             } else if (false === filter_var($username, FILTER_VALIDATE_EMAIL)) {
-                $request->session()->flash('errorMsg', '用户名必须是合法邮箱,请重新输入');
+                Session::flash('errorMsg', '用户名必须是合法邮箱,请重新输入');
 
                 return Redirect::back()->withInput();
             }
@@ -79,7 +80,7 @@ class RegisterController extends Controller
             // 是否校验验证码
             if (self::$config['is_captcha']) {
                 if (!Captcha::check($captcha)) {
-                    $request->session()->flash('errorMsg', '验证码错误,请重新输入');
+                    Session::flash('errorMsg', '验证码错误,请重新输入');
 
                     return Redirect::back()->withInput($request->except(['password', 'repassword']));
                 }
@@ -87,7 +88,7 @@ class RegisterController extends Controller
 
             // 是否开启注册
             if (!self::$config['is_register']) {
-                $request->session()->flash('errorMsg', '系统维护暂停注册');
+                Session::flash('errorMsg', '系统维护暂停注册');
 
                 return Redirect::back();
             }
@@ -95,7 +96,7 @@ class RegisterController extends Controller
             // 如果需要邀请注册
             if (self::$config['is_invite_register']) {
                 if (empty($code)) {
-                    $request->session()->flash('errorMsg', '请输入邀请码');
+                    Session::flash('errorMsg', '请输入邀请码');
 
                     return Redirect::back()->withInput();
                 }
@@ -103,7 +104,7 @@ class RegisterController extends Controller
                 // 校验邀请码合法性
                 $code = Invite::query()->where('code', $code)->where('status', 0)->first();
                 if (empty($code)) {
-                    $request->session()->flash('errorMsg', '邀请码不可用,请更换邀请码后重试');
+                    Session::flash('errorMsg', '邀请码不可用,请更换邀请码后重试');
 
                     return Redirect::back()->withInput($request->except(['code']));
                 }
@@ -114,7 +115,7 @@ class RegisterController extends Controller
                 if (Cache::has($cacheKey)) {
                     $registerTimes = Cache::get($cacheKey);
                     if ($registerTimes >= self::$config['register_ip_limit']) {
-                        $request->session()->flash('errorMsg', '系统已开启防刷机制,请勿频繁注册');
+                        Session::flash('errorMsg', '系统已开启防刷机制,请勿频繁注册');
 
                         return Redirect::back()->withInput($request->except(['code']));
                     }
@@ -124,7 +125,7 @@ class RegisterController extends Controller
             // 校验用户名是否已存在
             $exists = User::query()->where('username', $username)->first();
             if ($exists) {
-                $request->session()->flash('errorMsg', '用户名已存在,请更换用户名');
+                Session::flash('errorMsg', '用户名已存在,请更换用户名');
 
                 return Redirect::back()->withInput();
             }
@@ -151,7 +152,7 @@ class RegisterController extends Controller
             $last_user = User::query()->orderBy('id', 'desc')->first();
             $port = self::$config['is_rand_port'] ? $this->getRandPort() : $this->getOnlyPort();
             if ($port > self::$config['max_port']) {
-                $request->session()->flash('errorMsg', '用户已满');
+                Session::flash('errorMsg', '用户已满');
 
                 return Redirect::back()->withInput();
             }
@@ -225,7 +226,7 @@ class RegisterController extends Controller
                     $this->sendEmailLog($user->id, $title, $content, 0, $e->getMessage());
                 }
 
-                $request->session()->flash('regSuccessMsg', '注册成功:激活邮件已发送,请查看邮箱');
+                Session::flash('regSuccessMsg', '注册成功:激活邮件已发送,请查看邮箱');
             } else {
                 // 如果不需要激活,则直接给推荐人加流量
                 if ($referral_uid) {
@@ -235,17 +236,17 @@ class RegisterController extends Controller
                     User::query()->where('id', $referral_uid)->update(['enable' => 1]);
                 }
 
-                $request->session()->flash('regSuccessMsg', '注册成功');
+                Session::flash('regSuccessMsg', '注册成功');
             }
 
             return Redirect::to('login');
         } else {
-            $request->session()->put('register_token', makeRandStr(16));
+            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')));
+                if (!Session::get('register_aff')) {
+                    Session::put('register_aff', intval($request->get('aff')));
                 }
             }
 

+ 12 - 11
app/Http/Controllers/ShopController.php

@@ -8,6 +8,7 @@ use App\Http\Models\Label;
 use Illuminate\Http\Request;
 use Response;
 use Redirect;
+use Session;
 use DB;
 
 /**
@@ -46,28 +47,28 @@ class ShopController extends Controller
             $status = $request->get('status');
 
             if (empty($name) || empty($traffic)) {
-                $request->session()->flash('errorMsg', '请填写完整');
+                Session::flash('errorMsg', '请填写完整');
 
                 return Redirect::back()->withInput();
             }
 
             // 套餐必须有价格
             if ($type == 2 && $price <= 0) {
-                $request->session()->flash('errorMsg', '套餐价格必须大于0');
+                Session::flash('errorMsg', '套餐价格必须大于0');
 
                 return Redirect::back()->withInput();
             }
 
             // 套餐有效天数必须大于90天
             if ($type == 2 && $days < 90) {
-                $request->session()->flash('errorMsg', '套餐有效天数必须不能少于90天');
+                Session::flash('errorMsg', '套餐有效天数必须不能少于90天');
 
                 return Redirect::back()->withInput();
             }
 
             // 流量不能超过1PB
             if ($traffic > 1073741824) {
-                $request->session()->flash('errorMsg', '内含流量不能超过1PB');
+                Session::flash('errorMsg', '内含流量不能超过1PB');
 
                 return Redirect::back()->withInput();
             }
@@ -111,11 +112,11 @@ class ShopController extends Controller
                     }
                 }
 
-                $request->session()->flash('successMsg', '添加成功');
+                Session::flash('successMsg', '添加成功');
 
                 DB::commit();
             } catch (\Exception $e) {
-                $request->session()->flash('errorMsg', '添加失败');
+                Session::flash('errorMsg', '添加失败');
 
                 DB::rollBack();
             }
@@ -142,20 +143,20 @@ class ShopController extends Controller
 
             $goods = Goods::query()->where('id', $id)->first();
             if (!$goods) {
-                $request->session()->flash('errorMsg', '商品不存在');
+                Session::flash('errorMsg', '商品不存在');
 
                 return Redirect::back();
             }
 
             if (empty($name)) {
-                $request->session()->flash('errorMsg', '请填写完整');
+                Session::flash('errorMsg', '请填写完整');
 
                 return Redirect::back()->withInput();
             }
 
             // 套餐必须有价格
             if ($goods->type == 2 && $price <= 0) {
-                $request->session()->flash('errorMsg', '套餐价格必须大于0');
+                Session::flash('errorMsg', '套餐价格必须大于0');
 
                 return Redirect::back()->withInput();
             }
@@ -195,11 +196,11 @@ class ShopController extends Controller
                     }
                 }
 
-                $request->session()->flash('successMsg', '编辑成功');
+                Session::flash('successMsg', '编辑成功');
 
                 DB::commit();
             } catch (\Exception $e) {
-                $request->session()->flash('errorMsg', '编辑失败');
+                Session::flash('errorMsg', '编辑失败');
 
                 DB::rollBack();
             }

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

@@ -9,6 +9,7 @@ use App\Mail\closeTicket;
 use App\Mail\replyTicket;
 use Illuminate\Http\Request;
 use Response;
+use Session;
 use Mail;
 
 /**
@@ -38,7 +39,7 @@ class TicketController extends Controller
     public function replyTicket(Request $request)
     {
         $id = $request->get('id');
-        $user = $request->session()->get('user');
+        $user = Session::get('user');
 
         if ($request->method() == 'POST') {
             $content = clean($request->get('content'));

+ 82 - 62
app/Http/Controllers/UserController.php

@@ -33,6 +33,7 @@ use App\Mail\resetPassword;
 use Illuminate\Http\Request;
 use Redirect;
 use Response;
+use Session;
 use Cache;
 use Mail;
 use Log;
@@ -50,7 +51,7 @@ class UserController extends Controller
 
     public function index(Request $request)
     {
-        $user = $request->session()->get('user');
+        $user = Session::get('user');
 
         $user = User::query()->where('id', $user['id'])->first();
         $user->totalTransfer = flowAutoShow($user->transfer_enable);
@@ -64,14 +65,15 @@ class UserController extends Controller
         $view['wechat_qrcode'] = self::$config['wechat_qrcode'];
         $view['alipay_qrcode'] = self::$config['alipay_qrcode'];
         $view['login_add_score'] = self::$config['login_add_score'];
+        $view['website_logo'] = self::$config['website_logo'];
         $view['website_analytics'] = self::$config['website_analytics'];
         $view['website_customer_service'] = self::$config['website_customer_service'];
         $view['is_push_bear'] = self::$config['is_push_bear'];
         $view['push_bear_qrcode'] = self::$config['push_bear_qrcode'];
 
         // 推广返利是否可见
-        if (!$request->session()->has('referral_status')) {
-            $request->session()->put('referral_status', self::$config['referral_status']);
+        if (!Session::has('referral_status')) {
+            Session::put('referral_status', self::$config['referral_status']);
         }
 
         // 节点列表
@@ -156,6 +158,7 @@ class UserController extends Controller
             return Redirect::to('user');
         }
 
+        $view['website_logo'] = self::$config['website_logo'];
         $view['website_analytics'] = self::$config['website_analytics'];
         $view['website_customer_service'] = self::$config['website_customer_service'];
 
@@ -165,7 +168,7 @@ class UserController extends Controller
     // 修改个人资料
     public function profile(Request $request)
     {
-        $user = $request->session()->get('user');
+        $user = Session::get('user');
 
         if ($request->method() == 'POST') {
             $old_password = $request->get('old_password');
@@ -184,22 +187,22 @@ class UserController extends Controller
 
                 $user = User::query()->where('id', $user['id'])->first();
                 if ($user->password != $old_password) {
-                    $request->session()->flash('errorMsg', '旧密码错误,请重新输入');
+                    Session::flash('errorMsg', '旧密码错误,请重新输入');
 
                     return Redirect::to('user/profile#tab_1');
                 } else if ($user->password == $new_password) {
-                    $request->session()->flash('errorMsg', '新密码不可与旧密码一样,请重新输入');
+                    Session::flash('errorMsg', '新密码不可与旧密码一样,请重新输入');
 
                     return Redirect::to('user/profile#tab_1');
                 }
 
                 $ret = User::query()->where('id', $user['id'])->update(['password' => $new_password]);
                 if (!$ret) {
-                    $request->session()->flash('errorMsg', '修改失败');
+                    Session::flash('errorMsg', '修改失败');
 
                     return Redirect::to('user/profile#tab_1');
                 } else {
-                    $request->session()->flash('successMsg', '修改成功');
+                    Session::flash('successMsg', '修改成功');
 
                     return Redirect::to('user/profile#tab_1');
                 }
@@ -208,18 +211,18 @@ class UserController extends Controller
             // 修改联系方式
             if ($wechat || $qq) {
                 if (empty(clean($wechat)) && empty(clean($qq))) {
-                    $request->session()->flash('errorMsg', '修改失败');
+                    Session::flash('errorMsg', '修改失败');
 
                     return Redirect::to('user/profile#tab_2');
                 }
 
                 $ret = User::query()->where('id', $user['id'])->update(['wechat' => $wechat, 'qq' => $qq]);
                 if (!$ret) {
-                    $request->session()->flash('errorMsg', '修改失败');
+                    Session::flash('errorMsg', '修改失败');
 
                     return Redirect::to('user/profile#tab_2');
                 } else {
-                    $request->session()->flash('successMsg', '修改成功');
+                    Session::flash('successMsg', '修改成功');
 
                     return Redirect::to('user/profile#tab_2');
                 }
@@ -228,7 +231,7 @@ class UserController extends Controller
             // 修改SSR(R)设置
             if ($method || $protocol || $obfs) {
                 if (empty($passwd)) {
-                    $request->session()->flash('errorMsg', '密码不能为空');
+                    Session::flash('errorMsg', '密码不能为空');
 
                     return Redirect::to('user/profile#tab_3');
                 }
@@ -238,7 +241,7 @@ class UserController extends Controller
                 $existProtocol = SsConfig::query()->where('type', 2)->where('name', $protocol)->first();
                 $existObfs = SsConfig::query()->where('type', 3)->where('name', $obfs)->first();
                 if (!$existMethod || !$existProtocol || !$existObfs) {
-                    $request->session()->flash('errorMsg', '非法请求');
+                    Session::flash('errorMsg', '非法请求');
 
                     return Redirect::to('user/profile#tab_3');
                 }
@@ -252,16 +255,16 @@ class UserController extends Controller
 
                 $ret = User::query()->where('id', $user['id'])->update($data);
                 if (!$ret) {
-                    $request->session()->flash('errorMsg', '修改失败');
+                    Session::flash('errorMsg', '修改失败');
 
                     return Redirect::to('user/profile#tab_3');
                 } else {
                     // 更新session
                     $user = User::query()->where('id', $user['id'])->first()->toArray();
-                    $request->session()->remove('user');
-                    $request->session()->put('user', $user);
+                    Session::remove('user');
+                    Session::put('user', $user);
 
-                    $request->session()->flash('successMsg', '修改成功');
+                    Session::flash('successMsg', '修改成功');
 
                     return Redirect::to('user/profile#tab_3');
                 }
@@ -272,6 +275,7 @@ class UserController extends Controller
             $view['protocol_list'] = $this->protocolList();
             $view['obfs_list'] = $this->obfsList();
             $view['info'] = User::query()->where('id', $user['id'])->first();
+            $view['website_logo'] = self::$config['website_logo'];
             $view['website_analytics'] = self::$config['website_analytics'];
             $view['website_customer_service'] = self::$config['website_customer_service'];
 
@@ -282,7 +286,7 @@ class UserController extends Controller
     // 流量日志
     public function trafficLog(Request $request)
     {
-        $user = $request->session()->get('user');
+        $user = Session::get('user');
 
         $dailyData = [];
         $hourlyData = [];
@@ -312,6 +316,8 @@ class UserController extends Controller
 
         $view['trafficDaily'] = "'" . implode("','", $dailyData) . "'";
         $view['trafficHourly'] = "'" . implode("','", $hourlyData) . "'";
+
+        $view['website_logo'] = self::$config['website_logo'];
         $view['website_analytics'] = self::$config['website_analytics'];
         $view['website_customer_service'] = self::$config['website_customer_service'];
 
@@ -327,6 +333,8 @@ class UserController extends Controller
         }
 
         $view['goodsList'] = $goodsList;
+
+        $view['website_logo'] = self::$config['website_logo'];
         $view['website_analytics'] = self::$config['website_analytics'];
         $view['website_customer_service'] = self::$config['website_customer_service'];
 
@@ -336,10 +344,12 @@ class UserController extends Controller
     // 工单
     public function ticketList(Request $request)
     {
-        $user = $request->session()->get('user');
+        $user = Session::get('user');
 
+        $view['website_logo'] = self::$config['website_logo'];
         $view['website_analytics'] = self::$config['website_analytics'];
         $view['website_customer_service'] = self::$config['website_customer_service'];
+
         $view['ticketList'] = Ticket::query()->where('user_id', $user['id'])->paginate(10)->appends($request->except('page'));
 
         return Response::view('user/ticketList', $view);
@@ -348,9 +358,11 @@ class UserController extends Controller
     // 订单
     public function orderList(Request $request)
     {
-        $user = $request->session()->get('user');
+        $user = Session::get('user');
 
         $view['orderList'] = Order::query()->with(['user', 'goods', 'coupon', 'payment'])->where('user_id', $user['id'])->orderBy('oid', 'desc')->paginate(10)->appends($request->except('page'));
+
+        $view['website_logo'] = self::$config['website_logo'];
         $view['website_analytics'] = self::$config['website_analytics'];
         $view['website_customer_service'] = self::$config['website_customer_service'];
 
@@ -363,7 +375,7 @@ class UserController extends Controller
         $title = $request->get('title');
         $content = clean($request->get('content'));
 
-        $user = $request->session()->get('user');
+        $user = Session::get('user');
 
         if (empty($title) || empty($content)) {
             return Response::json(['status' => 'fail', 'data' => '', 'message' => '请输入标题和内容']);
@@ -408,7 +420,7 @@ class UserController extends Controller
     {
         $id = intval($request->get('id'));
 
-        $user = $request->session()->get('user');
+        $user = Session::get('user');
 
         if ($request->method() == 'POST') {
             $content = clean($request->get('content'));
@@ -454,6 +466,8 @@ class UserController extends Controller
 
             $view['ticket'] = $ticket;
             $view['replyList'] = TicketReply::query()->where('ticket_id', $id)->with('user')->orderBy('id', 'asc')->get();
+
+            $view['website_logo'] = self::$config['website_logo'];
             $view['website_analytics'] = self::$config['website_analytics'];
             $view['website_customer_service'] = self::$config['website_customer_service'];
 
@@ -466,7 +480,7 @@ class UserController extends Controller
     {
         $id = $request->get('id');
 
-        $user = $request->session()->get('user');
+        $user = Session::get('user');
 
         $ret = Ticket::query()->where('id', $id)->where('user_id', $user['id'])->update(['status' => 2]);
         if ($ret) {
@@ -479,11 +493,12 @@ class UserController extends Controller
     // 邀请码
     public function invite(Request $request)
     {
-        $user = $request->session()->get('user');
+        $user = Session::get('user');
 
         // 已生成的邀请码数量
         $num = Invite::query()->where('uid', $user['id'])->count();
 
+        $view['website_logo'] = self::$config['website_logo'];
         $view['website_analytics'] = self::$config['website_analytics'];
         $view['website_customer_service'] = self::$config['website_customer_service'];
         $view['num'] = self::$config['invite_num'] - $num <= 0 ? 0 : self::$config['invite_num'] - $num; // 还可以生成的邀请码数量
@@ -497,6 +512,7 @@ class UserController extends Controller
     // 公开的邀请码列表
     public function free(Request $request)
     {
+        $view['website_logo'] = self::$config['website_logo'];
         $view['website_analytics'] = self::$config['website_analytics'];
         $view['website_customer_service'] = self::$config['website_customer_service'];
         $view['is_invite_register'] = self::$config['is_invite_register'];
@@ -509,7 +525,7 @@ class UserController extends Controller
     // 生成邀请码
     public function makeInvite(Request $request)
     {
-        $user = $request->session()->get('user');
+        $user = Session::get('user');
 
         // 已生成的邀请码数量
         $num = Invite::query()->where('uid', $user['id'])->count();
@@ -536,7 +552,7 @@ class UserController extends Controller
 
             // 是否开启账号激活
             if (!self::$config['is_active_register']) {
-                $request->session()->flash('errorMsg', '系统未开启账号激活功能,请联系管理员');
+                Session::flash('errorMsg', '系统未开启账号激活功能,请联系管理员');
 
                 return Redirect::back()->withInput();
             }
@@ -544,15 +560,15 @@ class UserController extends Controller
             // 查找账号
             $user = User::query()->where('username', $username)->first();
             if (!$user) {
-                $request->session()->flash('errorMsg', '账号不存在,请重试');
+                Session::flash('errorMsg', '账号不存在,请重试');
 
                 return Redirect::back();
             } else if ($user->status < 0) {
-                $request->session()->flash('errorMsg', '账号已禁止登陆,无需激活');
+                Session::flash('errorMsg', '账号已禁止登陆,无需激活');
 
                 return Redirect::back();
             } else if ($user->status > 0) {
-                $request->session()->flash('errorMsg', '账号无需激活');
+                Session::flash('errorMsg', '账号无需激活');
 
                 return Redirect::back();
             }
@@ -562,7 +578,7 @@ class UserController extends Controller
             if (Cache::has('activeUser_' . md5($username))) {
                 $activeTimes = Cache::get('activeUser_' . md5($username));
                 if ($activeTimes >= self::$config['active_times']) {
-                    $request->session()->flash('errorMsg', '同一个账号24小时内只能请求激活' . self::$config['active_times'] . '次,请勿频繁操作');
+                    Session::flash('errorMsg', '同一个账号24小时内只能请求激活' . self::$config['active_times'] . '次,请勿频繁操作');
 
                     return Redirect::back();
                 }
@@ -590,7 +606,7 @@ class UserController extends Controller
             }
 
             Cache::put('activeUser_' . md5($username), $activeTimes + 1, 1440);
-            $request->session()->flash('successMsg', '邮件已发送,请查看邮箱');
+            Session::flash('successMsg', '邮件已发送,请查看邮箱');
 
             return Redirect::back();
         } else {
@@ -611,19 +627,19 @@ class UserController extends Controller
         if (empty($verify)) {
             return Redirect::to('login');
         } else if (empty($verify->user)) {
-            $request->session()->flash('errorMsg', '该链接已失效');
+            Session::flash('errorMsg', '该链接已失效');
 
             return Response::view('user/active');
         } else if ($verify->status == 1) {
-            $request->session()->flash('errorMsg', '该链接已失效');
+            Session::flash('errorMsg', '该链接已失效');
 
             return Response::view('user/active');
         } else if ($verify->user->status != 0) {
-            $request->session()->flash('errorMsg', '该账号无需激活.');
+            Session::flash('errorMsg', '该账号无需激活.');
 
             return Response::view('user/active');
         } else if (time() - strtotime($verify->created_at) >= 1800) {
-            $request->session()->flash('errorMsg', '该链接已过期');
+            Session::flash('errorMsg', '该链接已过期');
 
             // 置为已失效
             $verify->status = 2;
@@ -635,7 +651,7 @@ class UserController extends Controller
         // 更新账号状态
         $ret = User::query()->where('id', $verify->user_id)->update(['status' => 1]);
         if (!$ret) {
-            $request->session()->flash('errorMsg', '账号激活失败');
+            Session::flash('errorMsg', '账号激活失败');
 
             return Redirect::back();
         }
@@ -652,7 +668,7 @@ class UserController extends Controller
             User::query()->where('id', $verify->user->referral_uid)->update(['enable' => 1]);
         }
 
-        $request->session()->flash('successMsg', '账号激活成功');
+        Session::flash('successMsg', '账号激活成功');
 
         return Response::view('user/active');
     }
@@ -665,7 +681,7 @@ class UserController extends Controller
 
             // 是否开启重设密码
             if (!self::$config['is_reset_password']) {
-                $request->session()->flash('errorMsg', '系统未开启重置密码功能,请联系管理员');
+                Session::flash('errorMsg', '系统未开启重置密码功能,请联系管理员');
 
                 return Redirect::back()->withInput();
             }
@@ -673,7 +689,7 @@ class UserController extends Controller
             // 查找账号
             $user = User::query()->where('username', $username)->first();
             if (!$user) {
-                $request->session()->flash('errorMsg', '账号不存在,请重试');
+                Session::flash('errorMsg', '账号不存在,请重试');
 
                 return Redirect::back();
             }
@@ -683,7 +699,7 @@ class UserController extends Controller
             if (Cache::has('resetPassword_' . md5($username))) {
                 $resetTimes = Cache::get('resetPassword_' . md5($username));
                 if ($resetTimes >= self::$config['reset_password_times']) {
-                    $request->session()->flash('errorMsg', '同一个账号24小时内只能重设密码' . self::$config['reset_password_times'] . '次,请勿频繁操作');
+                    Session::flash('errorMsg', '同一个账号24小时内只能重设密码' . self::$config['reset_password_times'] . '次,请勿频繁操作');
 
                     return Redirect::back();
                 }
@@ -711,10 +727,11 @@ class UserController extends Controller
             }
 
             Cache::put('resetPassword_' . md5($username), $resetTimes + 1, 1440);
-            $request->session()->flash('successMsg', '重置成功,请查看邮箱');
+            Session::flash('successMsg', '重置成功,请查看邮箱');
 
             return Redirect::back();
         } else {
+            $view['website_logo'] = self::$config['website_logo'];
             $view['website_analytics'] = self::$config['website_analytics'];
             $view['website_customer_service'] = self::$config['website_customer_service'];
             $view['is_reset_password'] = self::$config['is_reset_password'];
@@ -733,11 +750,11 @@ class UserController extends Controller
             if (empty($token)) {
                 return Redirect::to('login');
             } else if (empty($password) || empty($repassword)) {
-                $request->session()->flash('errorMsg', '密码不能为空');
+                Session::flash('errorMsg', '密码不能为空');
 
                 return Redirect::back();
             } else if (md5($password) != md5($repassword)) {
-                $request->session()->flash('errorMsg', '两次输入密码不一致,请重新输入');
+                Session::flash('errorMsg', '两次输入密码不一致,请重新输入');
 
                 return Redirect::back();
             }
@@ -747,15 +764,15 @@ class UserController extends Controller
             if (empty($verify)) {
                 return Redirect::to('login');
             } else if ($verify->status == 1) {
-                $request->session()->flash('errorMsg', '该链接已失效');
+                Session::flash('errorMsg', '该链接已失效');
 
                 return Redirect::back();
             } else if ($verify->user->status < 0) {
-                $request->session()->flash('errorMsg', '账号已被禁用');
+                Session::flash('errorMsg', '账号已被禁用');
 
                 return Redirect::back();
             } else if (md5($password) == $verify->user->password) {
-                $request->session()->flash('errorMsg', '新旧密码一样,请重新输入');
+                Session::flash('errorMsg', '新旧密码一样,请重新输入');
 
                 return Redirect::back();
             }
@@ -763,7 +780,7 @@ class UserController extends Controller
             // 更新密码
             $ret = User::query()->where('id', $verify->user_id)->update(['password' => md5($password)]);
             if (!$ret) {
-                $request->session()->flash('errorMsg', '重设密码失败');
+                Session::flash('errorMsg', '重设密码失败');
 
                 return Redirect::back();
             }
@@ -772,7 +789,7 @@ class UserController extends Controller
             $verify->status = 1;
             $verify->save();
 
-            $request->session()->flash('successMsg', '新密码设置成功,请自行登录');
+            Session::flash('successMsg', '新密码设置成功,请自行登录');
 
             return Redirect::back();
         } else {
@@ -784,7 +801,7 @@ class UserController extends Controller
             if (empty($verify)) {
                 return Redirect::to('login');
             } else if (time() - strtotime($verify->created_at) >= 1800) {
-                $request->session()->flash('errorMsg', '该链接已过期');
+                Session::flash('errorMsg', '该链接已过期');
 
                 // 置为已失效
                 $verify->status = 2;
@@ -840,7 +857,7 @@ class UserController extends Controller
         $goods_id = intval($request->get('goods_id'));
         $coupon_sn = $request->get('coupon_sn');
 
-        $user = $request->session()->get('user');
+        $user = Session::get('user');
 
         if ($request->method() == 'POST') {
             $goods = Goods::query()->with(['label'])->where('id', $goods_id)->where('is_del', 0)->where('status', 1)->first();
@@ -1007,6 +1024,7 @@ class UserController extends Controller
             $goods->traffic = flowAutoShow($goods->traffic * 1048576);
             $view['goods'] = $goods;
             $view['is_youzan'] = self::$config['is_youzan'];
+            $view['website_logo'] = self::$config['website_logo'];
             $view['website_analytics'] = self::$config['website_analytics'];
             $view['website_customer_service'] = self::$config['website_customer_service'];
 
@@ -1017,7 +1035,7 @@ class UserController extends Controller
     // 积分兑换流量
     public function exchange(Request $request)
     {
-        $user = $request->session()->get('user');
+        $user = Session::get('user');
 
         // 积分满100才可以兑换
         if ($user['score'] < 100) {
@@ -1046,8 +1064,8 @@ class UserController extends Controller
 
             // 更新session
             $user = User::query()->where('id', $user['id'])->first()->toArray();
-            $request->session()->remove('user');
-            $request->session()->put('user', $user);
+            Session::remove('user');
+            Session::put('user', $user);
 
             return Response::json(['status' => 'success', 'data' => '', 'message' => '兑换成功']);
         } catch (\Exception $e) {
@@ -1061,8 +1079,9 @@ class UserController extends Controller
     public function referral(Request $request)
     {
         // 生成个人推广链接
-        $user = $request->session()->get('user');
+        $user = Session::get('user');
 
+        $view['website_logo'] = self::$config['website_logo'];
         $view['website_analytics'] = self::$config['website_analytics'];
         $view['website_customer_service'] = self::$config['website_customer_service'];
         $view['referral_traffic'] = flowAutoShow(self::$config['referral_traffic'] * 1048576);
@@ -1079,7 +1098,7 @@ class UserController extends Controller
     // 申请提现
     public function extractMoney(Request $request)
     {
-        $user = $request->session()->get('user');
+        $user = Session::get('user');
 
         // 判断是否已存在申请
         $referralApply = ReferralApply::query()->where('user_id', $user['id'])->whereIn('status', [0, 1])->first();
@@ -1116,7 +1135,7 @@ class UserController extends Controller
     // 节点订阅
     public function subscribe(Request $request)
     {
-        $user = $request->session()->get('user');
+        $user = Session::get('user');
 
         // 如果没有唯一码则生成一个
         $subscribe = UserSubscribe::query()->where('user_id', $user['id'])->first();
@@ -1132,6 +1151,7 @@ class UserController extends Controller
             $code = $subscribe->code;
         }
 
+        $view['website_logo'] = self::$config['website_logo'];
         $view['website_analytics'] = self::$config['website_analytics'];
         $view['website_customer_service'] = self::$config['website_customer_service'];
         $view['subscribe_status'] = !$subscribe ? 1 : $subscribe->status;
@@ -1143,7 +1163,7 @@ class UserController extends Controller
     // 更换订阅地址
     public function exchangeSubscribe(Request $request)
     {
-        $user = $request->session()->get('user');
+        $user = Session::get('user');
 
         DB::beginTransaction();
         try {
@@ -1169,18 +1189,18 @@ class UserController extends Controller
     // 转换成管理员的身份
     public function switchToAdmin(Request $request)
     {
-        if (!$request->session()->has('admin') || !$request->session()->has('user')) {
+        if (!Session::has('admin') || !Session::has('user')) {
             return Response::json(['status' => 'fail', 'data' => '', 'message' => '非法请求']);
         }
 
-        $admin = $request->session()->get('admin');
+        $admin = Session::get('admin');
         $user = User::query()->where('id', $admin['id'])->first();
         if (!$user) {
             return Response::json(['status' => 'fail', 'data' => '', 'message' => "非法请求"]);
         }
 
         // 管理员信息重新写入user
-        $request->session()->put('user', $request->session()->get('admin'));
+        Session::put('user', Session::get('admin'));
 
         return Response::json(['status' => 'success', 'data' => '', 'message' => "身份切换成功"]);
     }
@@ -1188,7 +1208,7 @@ class UserController extends Controller
     // 卡券余额充值
     public function charge(Request $request)
     {
-        $user = $request->session()->get('user');
+        $user = Session::get('user');
 
         $coupon_sn = trim($request->get('coupon_sn'));
         if (empty($coupon_sn)) {
@@ -1243,7 +1263,7 @@ class UserController extends Controller
 
     public function switchLang(Request $request, $locale)
     {
-        $request->session()->put("locale", $locale);
+        Session::put("locale", $locale);
 
         return Redirect::back();
     }

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

@@ -48,7 +48,7 @@
                                                             <span></span>
                                                         </label>
                                                         <label class="mt-checkbox">
-                                                            <input type="checkbox" name="usage" value="2" checked> 电脑
+                                                            <input type="checkbox" name="usage" value="2"> 电脑
                                                             <span></span>
                                                         </label>
                                                         <label class="mt-checkbox">
@@ -67,7 +67,7 @@
                                                 <div class="col-md-8">
                                                     <div class="mt-radio-inline">
                                                         <label class="mt-radio">
-                                                            <input type="radio" name="pay_way" value="0" checked> 免费
+                                                            <input type="radio" name="pay_way" value="0"> 免费
                                                             <span></span>
                                                         </label>
                                                         <label class="mt-radio">
@@ -75,7 +75,7 @@
                                                             <span></span>
                                                         </label>
                                                         <label class="mt-radio">
-                                                            <input type="radio" name="pay_way" value="2"> 季付
+                                                            <input type="radio" name="pay_way" value="2" checked> 季付
                                                             <span></span>
                                                         </label>
                                                         <label class="mt-radio">

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

@@ -56,7 +56,7 @@
                 return ;
             }
 
-            layer.confirm('确定继续反解析吗?', {icon: 2, title:'警告'}, function(index) {
+            layer.confirm('确定继续反解析吗?', {icon: 3, title:'警告'}, function(index) {
                 $.ajax({
                     type: "POST",
                     url: "{{url('admin/decompile')}}",

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

@@ -40,6 +40,7 @@
                                                         <label for="server" class="col-md-3 control-label"> 绑定域名 </label>
                                                         <div class="col-md-8">
                                                             <input type="text" class="form-control" name="server" value="{{$node->server}}" id="server" placeholder="服务器域名地址,填则优先取域名地址">
+                                                            <span class="help-block">如果开启Namesilo且域名是Namesilo上购买的,则会强制更新域名的DNS记录为本节点IP,如果其他节点绑定了该域名则会清空其域名信息</span>
                                                         </div>
                                                     </div>
                                                     <div class="form-group">

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

@@ -40,8 +40,7 @@
     <div class="page-header-inner ">
         <!-- BEGIN LOGO -->
         <div class="page-logo">
-            <a href="{{url('/')}}">
-                <img src="/assets/images/logo.png" alt="logo" class="logo-default" /> </a>
+            <a href="{{url('/')}}"> <img src="/assets/images/logo.png" alt="logo" class="logo-default" /> </a>
             <div class="menu-toggler sidebar-toggler">
                 <!-- DOC: Remove the above "hide" to enable the sidebar toggler button on header -->
             </div>

+ 4 - 4
resources/views/admin/nodeList.blade.php

@@ -12,9 +12,9 @@
         <div class="row">
             <div class="col-md-12">
                 <div class="note note-info">
-                    <p>如果负载显示宕机,可能是节点宕机或者节点上的SSR(R)服务挂掉了,请重启节点或者SSR(R)服务。</p>
-                    <p>节点宕机是因为所在IDC机房出了问题或者母机超售过载导致,SSR(R)挂掉是因为节点的配置太渣。<a href="https://github.com/ssrpanel/ssrpanel/wiki/VPS%E6%8E%A8%E8%8D%90&%E8%B4%AD%E4%B9%B0%E7%BB%8F%E9%AA%8C" target="_blank" style="color:red;">[VPS推荐]</a></p>
-                    <p>如果还是无法解决,请检查各节点服务器的时间是否同步。<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" style="color:red;">[时间校准]</a></p>
+                    <p>节点绑定域名推荐使用<a href="https://www.namesilo.com/?rid=326ec20pa" target="_blank">Namesilo</a>,本面板支持自动更新DNS <a href="https://github.com/ssrpanel/SSRPanel/wiki/%E8%B4%AD%E4%B9%B0%E5%9F%9F%E5%90%8D%EF%BC%88%E8%87%AA%E5%B8%A6%E9%9A%90%E7%A7%81%E4%BF%9D%E6%8A%A4%EF%BC%89" target="_blank" style="color:red;">[购买域名]</a></p>
+                    <p>状态显示为'宕机':1.SSR(R)进程挂掉;2.服务器真的宕机。<a href="https://github.com/ssrpanel/ssrpanel/wiki/VPS%E6%8E%A8%E8%8D%90&%E8%B4%AD%E4%B9%B0%E7%BB%8F%E9%AA%8C" target="_blank" style="color:red;">[VPS推荐]</a></p>
+                    <p>请务必检查各节点服务器的时间是否同步。<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" style="color:red;">[时间校准]</a></p>
                 </div>
             </div>
         </div>
@@ -68,7 +68,7 @@
                                                 <td>
                                                     @if($node->compatible) <span class="label label-info">兼</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
+                                                    @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}}')">

+ 141 - 63
resources/views/admin/system.blade.php

@@ -44,7 +44,7 @@
                                             <a href="#tab_7" data-toggle="tab"> 有赞云设置 </a>
                                         </li>
                                         <li>
-                                            <a href="#tab_8" data-toggle="tab"> 客服、统计设置 </a>
+                                            <a href="#tab_8" data-toggle="tab"> LOGO、客服、统计设置 </a>
                                         </li>
                                     </ul>
                                 </div>
@@ -127,6 +127,15 @@
                                                             </div>
                                                         </div>
                                                     </div>
+                                                    <div class="form-group">
+                                                        <div class="col-md-6">
+                                                            <label for="is_forbid_robot" class="col-md-3 control-label">阻止机器人访问</label>
+                                                            <div class="col-md-9">
+                                                                <input type="checkbox" class="make-switch" @if($is_forbid_robot) checked @endif id="is_forbid_robot" data-on-color="success" data-off-color="danger" data-on-text="启用" data-off-text="关闭">
+                                                                <span class="help-block"> 如果是机器人、爬虫、代理访问网站则会抛出403错误 </span>
+                                                            </div>
+                                                        </div>
+                                                    </div>
                                                 </div>
                                             </form>
                                         </div>
@@ -173,7 +182,7 @@
                                                                         <button class="btn btn-success" type="button" onclick="setDefaultDays()">修改</button>
                                                                     </span>
                                                                 </div>
-                                                                <span class="help-block"> 用户注册时默认SS(R)有效天数 </span>
+                                                                <span class="help-block"> 用户注册时默认SSR(R)有效天数 </span>
                                                             </div>
                                                         </div>
                                                         <div class="col-md-6">
@@ -217,13 +226,6 @@
                                                         </div>
                                                     </div>
                                                     <div class="form-group">
-                                                        <div class="col-md-6">
-                                                            <label for="is_forbid_robot" class="col-md-3 control-label">阻止机器人访问</label>
-                                                            <div class="col-md-9">
-                                                                <input type="checkbox" class="make-switch" @if($is_forbid_robot) checked @endif id="is_forbid_robot" data-on-color="success" data-off-color="danger" data-on-text="启用" data-off-text="关闭">
-                                                                <span class="help-block"> 如果是机器人、爬虫、代理访问网站则会抛出403错误 </span>
-                                                            </div>
-                                                        </div>
                                                         <div class="col-md-6">
                                                             <label for="active_times" class="col-md-3 control-label">激活账号次数</label>
                                                             <div class="col-md-9">
@@ -236,6 +238,18 @@
                                                                 <span class="help-block"> 24小时内可以通过邮件激活账号次数 </span>
                                                             </div>
                                                         </div>
+                                                        <div class="col-md-6">
+                                                            <label for="register_ip_limit" class="col-md-3 control-label">同IP注册限制</label>
+                                                            <div class="col-md-9">
+                                                                <div class="input-group">
+                                                                    <input class="form-control" type="text" name="register_ip_limit" value="{{$register_ip_limit}}" id="register_ip_limit" />
+                                                                    <span class="input-group-btn">
+                                                                        <button class="btn btn-success" type="button" onclick="setRegisterIpLimit()">修改</button>
+                                                                    </span>
+                                                                </div>
+                                                                <span class="help-block"> 同IP在24小时内允许注册数量,为0时不限制 </span>
+                                                            </div>
+                                                        </div>
                                                     </div>
                                                     <div class="form-group">
                                                         <div class="col-md-6">
@@ -279,46 +293,29 @@
                                                                 <span class="help-block"> 注册用户时的初始标签 </span>
                                                             </div>
                                                         </div>
-                                                        <div class="col-md-6">
-                                                            <label for="register_ip_limit" class="col-md-3 control-label">同IP注册限制</label>
-                                                            <div class="col-md-9">
-                                                                <div class="input-group">
-                                                                    <input class="form-control" type="text" name="register_ip_limit" value="{{$register_ip_limit}}" id="register_ip_limit" />
-                                                                    <span class="input-group-btn">
-                                                                        <button class="btn btn-success" type="button" onclick="setRegisterIpLimit()">修改</button>
-                                                                    </span>
-                                                                </div>
-                                                                <span class="help-block"> 同IP在24小时内允许注册数量,为0时不限制 </span>
-                                                            </div>
-                                                        </div>
-                                                    </div>
-                                                    <div class="form-group">
                                                         <div class="col-md-6">
                                                             <label for="goods_purchase_limit_strategy" class="col-md-3 control-label">商品限购</label>
                                                             <div class="col-md-9">
                                                                 <select id="goods_purchase_limit_strategy" class="form-control select2" name="goods_purchase_limit_strategy">
                                                                     <option value="none"
-                                                                        @if ($goods_purchase_limit_strategy == 'none')
-                                                                        selected
-                                                                        @endif
+                                                                            @if ($goods_purchase_limit_strategy == 'none')
+                                                                            selected
+                                                                            @endif
                                                                     >不限制</option>
                                                                     <option value="free"
-                                                                        @if ($goods_purchase_limit_strategy == 'free')
-                                                                        selected
-                                                                        @endif
+                                                                            @if ($goods_purchase_limit_strategy == 'free')
+                                                                            selected
+                                                                            @endif
                                                                     >仅限免费商品</option>
                                                                     <option value="all"
-                                                                        @if ($goods_purchase_limit_strategy == 'all')
-                                                                        selected
-                                                                        @endif
+                                                                            @if ($goods_purchase_limit_strategy == 'all')
+                                                                            selected
+                                                                            @endif
                                                                     >限全部商品</option>
                                                                 </select>
                                                                 <span class="help-block"> 是否限制用户重复购买商品,限制后用户不可重复购买已购买的、尚在有效期的商品 </span>
                                                             </div>
                                                         </div>
-                                                        <div class="col-md-6">
-                                                            &nbsp;
-                                                        </div>
                                                     </div>
                                                 </div>
                                             </form>
@@ -373,7 +370,7 @@
                                                             <label for="referral_status" class="col-md-3 control-label">本功能</label>
                                                             <div class="col-md-9">
                                                                 <input type="checkbox" class="make-switch" @if($referral_status) checked @endif id="referral_status" data-on-color="success" data-off-color="danger" data-on-text="启用" data-off-text="关闭">
-                                                                <span class="help-block"> 关闭后用户不可见 </span>
+                                                                <span class="help-block"> 关闭后用户不可见,但是不影响其正常邀请返利 </span>
                                                             </div>
                                                         </div>
                                                         <div class="col-md-6">
@@ -494,7 +491,7 @@
                                                             <label for="is_server_chan" class="col-md-3 control-label">ServerChan</label>
                                                             <div class="col-md-9">
                                                                 <input type="checkbox" class="make-switch" @if($is_server_chan) checked @endif id="is_server_chan" data-on-color="success" data-off-color="danger" data-on-text="启用" data-off-text="关闭">
-                                                                <span class="help-block"> 使用ServerChan推送节点宕机提醒、流量异常警告(<a href="http://sc.ftqq.com" target="_blank">绑定微信</a>),须先启用节点宕机警告 </span>
+                                                                <span class="help-block"> 推送节点宕机提醒、用户流量异常警告(<a href="http://sc.ftqq.com" target="_blank">绑定微信</a>) </span>
                                                             </div>
                                                         </div>
                                                         <div class="col-md-6">
@@ -510,16 +507,37 @@
                                                             </div>
                                                         </div>
                                                     </div>
+                                                    <div class="form-group">
+                                                        <div class="col-md-6">
+                                                            <label for="is_namesilo" class="col-md-3 control-label">Namesilo</label>
+                                                            <div class="col-md-9">
+                                                                <input type="checkbox" class="make-switch" @if($is_namesilo) checked @endif id="is_namesilo" data-on-color="success" data-off-color="danger" data-on-text="启用" data-off-text="关闭">
+                                                                <span class="help-block"> 添加、编辑节点的绑定域名时自动更新域名DNS记录值为节点IP(<a href="https://www.namesilo.com/account_api.php" target="_blank">创建API KEY</a>) </span>
+                                                            </div>
+                                                        </div>
+                                                        <div class="col-md-6">
+                                                            <label for="namesilo_key" class="col-md-3 control-label">Namesilo API KEY</label>
+                                                            <div class="col-md-9">
+                                                                <div class="input-group">
+                                                                    <input class="form-control" type="text" name="namesilo_key" value="{{$namesilo_key}}" id="namesilo_key" placeholder="填入Namesilo上申请的API KEY" />
+                                                                    <span class="input-group-btn">
+                                                                        <button class="btn btn-success" type="button" onclick="setNamesiloKey()">修改</button>
+                                                                    </span>
+                                                                </div>
+                                                                <span class="help-block"> 域名必须是<a href="https://www.namesilo.com/?rid=326ec20pa" target="_blank">www.namesilo.com</a>上购买的 </span>
+                                                            </div>
+                                                        </div>
+                                                    </div>
                                                     <div class="form-group">
                                                         <div class="col-md-6">
                                                             <label for="is_push_bear" class="col-md-3 control-label">PushBear</label>
                                                             <div class="col-md-9">
                                                                 <input type="checkbox" class="make-switch" @if($is_push_bear) checked @endif id="is_push_bear" data-on-color="success" data-off-color="danger" data-on-text="启用" data-off-text="关闭">
-                                                                <span class="help-block"> 使用PushBear批量推送微信消息给用户(<a href="https://pushbear.ftqq.com/admin/#/signin" target="_blank">创建消息通道</a>) </span>
+                                                                <span class="help-block"> 使用PushBear推送微信消息给用户(<a href="https://pushbear.ftqq.com/admin/#/signin" target="_blank">创建消息通道</a>) </span>
                                                             </div>
                                                         </div>
                                                         <div class="col-md-6">
-                                                            <label for="push_bear_send_key" class="col-md-3 control-label">SendKey</label>
+                                                            <label for="push_bear_send_key" class="col-md-3 control-label">PushBear SendKey</label>
                                                             <div class="col-md-9">
                                                                 <div class="input-group">
                                                                     <input class="form-control" type="text" name="push_bear_send_key" value="{{$push_bear_send_key}}" id="push_bear_send_key" placeholder="创建消息通道后即可获取" />
@@ -533,7 +551,7 @@
                                                     </div>
                                                     <div class="form-group">
                                                         <div class="col-md-6">
-                                                            <label for="push_bear_qrcode" class="col-md-3 control-label">订阅二维码</label>
+                                                            <label for="push_bear_qrcode" class="col-md-3 control-label">PushBear订阅二维码</label>
                                                             <div class="col-md-9">
                                                                 <div class="input-group">
                                                                     <input class="form-control" type="text" name="push_bear_qrcode" value="{{$push_bear_qrcode}}" id="push_bear_qrcode" placeholder="填入创建好的消息通道的二维码URL" />
@@ -593,7 +611,7 @@
                                                             <label for="is_traffic_ban" class="col-md-3 control-label">异常自动封号</label>
                                                             <div class="col-md-9">
                                                                 <input type="checkbox" class="make-switch" @if($is_traffic_ban) checked @endif id="is_traffic_ban" data-on-color="success" data-off-color="danger" data-on-text="启用" data-off-text="关闭">
-                                                                <span class="help-block"> 24小时内流量超过异常阈值则自动封号 </span>
+                                                                <span class="help-block"> 24小时内流量超过异常阈值则自动封号(仅禁用SSR(R)) </span>
                                                             </div>
                                                         </div>
                                                         <div class="col-md-6">
@@ -632,10 +650,10 @@
                                                             </div>
                                                         </div>
                                                         <div class="col-md-6">
-                                                            <label for="is_ban_status" class="col-md-3 control-label">过期封禁是否禁止账号</label>
+                                                            <label for="is_ban_status" class="col-md-3 control-label">过期自动封号</label>
                                                             <div class="col-md-9">
                                                                 <input type="checkbox" class="make-switch" @if($is_ban_status) checked @endif id="is_ban_status" data-on-color="success" data-off-color="danger" data-on-text="启用" data-off-text="关闭">
-                                                                <span class="help-block"> 被禁用的用户在禁止过期用户时不仅禁止SSR,而且同时禁止账号</span>
+                                                                <span class="help-block"> 被禁用SSR(R)的用户在账号到期时同时封禁账号(账号将无法登录)</span>
                                                             </div>
                                                         </div>
                                                     </div>
@@ -702,7 +720,56 @@
                                             </form>
                                         </div>
                                         <div class="tab-pane" id="tab_8">
-                                            <form action="{{url('admin/setExtend')}}" method="post" class="form-horizontal" role="form" onsubmit="return submitExtend();">
+                                            <form action="{{url('admin/setExtend')}}" method="post" enctype="multipart/form-data" class="form-horizontal" role="form" id="setExtend">
+                                                {{csrf_field()}}
+                                                <div class="form-group">
+                                                    <label class="control-label col-md-2">首页LOGO</label>
+                                                    <div class="col-md-8">
+                                                        <div class="fileinput fileinput-new" data-provides="fileinput">
+                                                            <div class="fileinput-new thumbnail" style="width: 200px; height: 150px;">
+                                                                @if ($website_home_logo)
+                                                                    <img src="{{$website_home_logo}}" alt="" />
+                                                                @else
+                                                                    <img src="/assets/images/noimage.png" alt="" />
+                                                                @endif
+                                                            </div>
+                                                            <span class="help-block"> 推荐尺寸:270 X 48,透明背景 </span>
+                                                            <div class="fileinput-preview fileinput-exists thumbnail" style="max-width: 200px; max-height: 150px;"> </div>
+                                                            <div>
+                                                                <span class="btn default btn-file">
+                                                                    <span class="fileinput-new"> 选择 </span>
+                                                                    <span class="fileinput-exists"> 更换 </span>
+                                                                    <input type="file" name="website_home_logo" id="website_home_logo">
+                                                                </span>
+                                                                <a href="javascript:;" class="btn red fileinput-exists" data-dismiss="fileinput"> 移除 </a>
+                                                            </div>
+                                                        </div>
+                                                    </div>
+                                                </div>
+                                                <div class="form-group">
+                                                    <label class="control-label col-md-2">站内LOGO</label>
+                                                    <div class="col-md-8">
+                                                        <div class="fileinput fileinput-new" data-provides="fileinput">
+                                                            <div class="fileinput-new thumbnail" style="width: 200px; height: 150px;">
+                                                                @if ($website_logo)
+                                                                    <img src="{{$website_logo}}" alt="" />
+                                                                @else
+                                                                    <img src="/assets/images/noimage.png" alt="" />
+                                                                @endif
+                                                            </div>
+                                                            <span class="help-block"> 推荐尺寸:110 X 20,透明背景 </span>
+                                                            <div class="fileinput-preview fileinput-exists thumbnail" style="max-width: 200px; max-height: 150px;"> </div>
+                                                            <div>
+                                                                <span class="btn default btn-file">
+                                                                    <span class="fileinput-new"> 选择 </span>
+                                                                    <span class="fileinput-exists"> 更换 </span>
+                                                                    <input type="file" name="website_logo" id="website_logo">
+                                                                </span>
+                                                                <a href="javascript:;" class="btn red fileinput-exists" data-dismiss="fileinput"> 移除 </a>
+                                                            </div>
+                                                        </div>
+                                                    </div>
+                                                </div>
                                                 <div class="form-group">
                                                     <label for="website_analytics" class="col-md-2 control-label">统计代码</label>
                                                     <div class="col-md-8">
@@ -742,26 +809,9 @@
     <script src="/js/layer/layer.js" type="text/javascript"></script>
 
     <script type="text/javascript">
-        // 设置客服、统计代码
-        function submitExtend() {
-            var website_analytics = $('#website_analytics').val();
-            var website_customer_service = $('#website_customer_service').val();
-
-            $.ajax({
-                type: "POST",
-                url: "{{url('admin/setExtend')}}",
-                async: false,
-                data: {_token:'{{csrf_token()}}', website_analytics:website_analytics, website_customer_service:website_customer_service},
-                dataType: 'json',
-                success: function (ret) {
-                    layer.msg(ret.message, {time:1000});
-                }
-            });
-
-            return false;
-        }
-
+        // 注册的默认标签
         $('#initial_labels_for_user').select2({
+            theme: 'bootstrap',
             placeholder: '设置后则可见相同标签的节点',
             allowClear: true,
             width:'100%'
@@ -973,6 +1023,21 @@
             }
         });
 
+        // 启用、禁用Namesilo
+        $('#is_namesilo').on({
+            'switchChange.bootstrapSwitch': function(event, state) {
+                var is_namesilo = state ? 1 : 0;
+
+                $.post("{{url('admin/setConfig')}}", {_token:'{{csrf_token()}}', name:'is_namesilo', value:is_namesilo}, function (ret) {
+                    layer.msg(ret.message, {time:1000}, function() {
+                        if (ret.status == 'fail') {
+                            window.location.reload();
+                        }
+                    });
+                });
+            }
+        });
+
         // 启用、禁用PushBear
         $('#is_push_bear').on({
             'switchChange.bootstrapSwitch': function(event, state) {
@@ -1185,6 +1250,19 @@
             });
         }
 
+        // 设置Namesilo API KEY
+        function setNamesiloKey() {
+            var namesilo_key = $("#namesilo_key").val();
+
+            $.post("{{url('admin/setConfig')}}", {_token:'{{csrf_token()}}', name:'namesilo_key', value:namesilo_key}, function (ret) {
+                layer.msg(ret.message, {time:1000}, function() {
+                    if (ret.status == 'fail') {
+                        window.location.reload();
+                    }
+                });
+            });
+        }
+
         // 设置PushBear的SendKey
         function setPushBearSendKey() {
             var push_bear_send_key = $("#push_bear_send_key").val();

+ 5 - 1
resources/views/login.blade.php

@@ -32,7 +32,11 @@
 <body class=" login">
 <!-- BEGIN LOGO -->
 <div class="logo">
-    <a href="javascript:;"> <img src="/assets/images/home_logo.png" alt="" /> </a>
+    @if($website_home_logo)
+        <a href="javascript:;"> <img src="{{$website_home_logo}}" alt="" style="width:270px; height:48px;"/> </a>
+    @else
+        <a href="javascript:;"> <img src="/assets/images/home_logo.png" alt="" /> </a>
+    @endif
 </div>
 <!-- END LOGO -->
 <!-- BEGIN LOGIN -->

+ 5 - 2
resources/views/user/layouts.blade.php

@@ -40,8 +40,11 @@
     <div class="page-header-inner ">
         <!-- BEGIN LOGO -->
         <div class="page-logo">
-            <a href="{{url('/user')}}">
-                <img src="/assets/images/logo.png" alt="logo" class="logo-default" /> </a>
+            @if($website_logo)
+                <a href="{{url('/user')}}"><img src="{{$website_logo}}" alt="logo" class="logo-default" style="width:110px; height:20px;"/> </a>
+            @else
+                <a href="{{url('/user')}}"><img src="/assets/images/logo.png" alt="logo" class="logo-default" /> </a>
+            @endif
             <div class="menu-toggler sidebar-toggler">
                 <!-- DOC: Remove the above "hide" to enable the sidebar toggler button on header -->
             </div>

+ 5 - 1
sql/db.sql

@@ -301,7 +301,7 @@ INSERT INTO `config` VALUES ('27', 'reset_traffic', 1);
 INSERT INTO `config` VALUES ('28', 'default_days', 7);
 INSERT INTO `config` VALUES ('29', 'subscribe_max', 3);
 INSERT INTO `config` VALUES ('30', 'min_port', 10000);
-INSERT INTO `config` VALUES ('31', 'max_port', 40000);
+INSERT INTO `config` VALUES ('31', 'max_port', 20000);
 INSERT INTO `config` VALUES ('32', 'is_captcha', 0);
 INSERT INTO `config` VALUES ('33', 'is_traffic_ban', 1);
 INSERT INTO `config` VALUES ('34', 'traffic_ban_value', 10);
@@ -333,6 +333,10 @@ INSERT INTO `config` VALUES ('59', 'is_push_bear', 0);
 INSERT INTO `config` VALUES ('60', 'push_bear_send_key', '');
 INSERT INTO `config` VALUES ('61', 'push_bear_qrcode', '');
 INSERT INTO `config` VALUES ('62', 'is_ban_status', 0);
+INSERT INTO `config` VALUES ('63', 'is_namesilo', 0);
+INSERT INTO `config` VALUES ('64', 'namesilo_key', '');
+INSERT INTO `config` VALUES ('65', 'website_logo', '');
+INSERT INTO `config` VALUES ('66', 'website_home_logo', '');
 
 
 -- ----------------------------

+ 0 - 2
sql/update/20180705.sql

@@ -1,5 +1,3 @@
 -- 用途可以多选
 ALTER TABLE `user`
 	CHANGE COLUMN `usage` `usage` VARCHAR(10) NOT NULL DEFAULT '4' COMMENT '用途:1-手机、2-电脑、3-路由器、4-其他' AFTER `qq`;
-
--- 支付方式增加季付

+ 5 - 0
sql/update/20180709.sql

@@ -0,0 +1,5 @@
+-- 加入namesilo节点自动更新域名DNS配置
+INSERT INTO `config` VALUES ('63', 'is_namesilo', 0);
+INSERT INTO `config` VALUES ('64', 'namesilo_key', '');
+INSERT INTO `config` VALUES ('65', 'website_logo', '');
+INSERT INTO `config` VALUES ('66', 'website_home_logo', '');