瀏覽代碼

replaced BaseController with Controller

leo 8 年之前
父節點
當前提交
e94d03af6e

+ 4 - 4
.env

@@ -1,6 +1,6 @@
 APP_NAME=Laravel
 APP_ENV=local
-APP_KEY=base64:6nNq+XYCwjwi/FQ/x9tK40ETErxtRUzLWk8Jny9bRa8=
+APP_KEY=
 APP_DEBUG=true
 APP_LOG_LEVEL=debug
 APP_URL=http://localhost
@@ -8,9 +8,9 @@ APP_URL=http://localhost
 DB_CONNECTION=mysql
 DB_HOST=127.0.0.1
 DB_PORT=3306
-DB_DATABASE=homestead
-DB_USERNAME=homestead
-DB_PASSWORD=secret
+DB_DATABASE=ssrpanel
+DB_USERNAME=root
+DB_PASSWORD=
 
 BROADCAST_DRIVER=log
 CACHE_DRIVER=file

+ 3 - 3
.env.example

@@ -8,9 +8,9 @@ APP_URL=http://localhost
 DB_CONNECTION=mysql
 DB_HOST=127.0.0.1
 DB_PORT=3306
-DB_DATABASE=homestead
-DB_USERNAME=homestead
-DB_PASSWORD=secret
+DB_DATABASE=ssrpanel
+DB_USERNAME=root
+DB_PASSWORD=
 
 BROADCAST_DRIVER=log
 CACHE_DRIVER=file

+ 0 - 1
.gitignore

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

+ 2 - 2
app/Http/Controllers/AdminController.php

@@ -30,7 +30,7 @@ use Redirect;
 use Response;
 use Log;
 
-class AdminController extends BaseController
+class AdminController extends Controller
 {
     protected static $config;
 
@@ -1657,4 +1657,4 @@ class AdminController extends BaseController
 
         return Response::json(['status' => 'success', 'data' => '', 'message' => '操作成功']);
     }
-}
+}

+ 1 - 1
app/Http/Controllers/ArticleController.php

@@ -11,7 +11,7 @@ use Response;
  * Class SubscribeController
  * @package App\Http\Controllers
  */
-class ArticleController extends BaseController
+class ArticleController extends Controller
 {
     // 文章详情页
     public function index(Request $request)

+ 0 - 233
app/Http/Controllers/BaseController.php

@@ -1,233 +0,0 @@
-<?php
-
-namespace App\Http\Controllers;
-
-use App\Http\Models\Config;
-use App\Http\Models\EmailLog;
-use App\Http\Models\Level;
-use App\Http\Models\SsConfig;
-use App\Http\Models\User;
-
-/**
- * 基础控制器
- * Class BaseController
- * @package App\Http\Controllers
- */
-class BaseController extends Controller
-{
-    // 生成SS密码
-    public function makeRandStr($length = 6)
-    {
-        // 密码字符集,可任意添加你需要的字符
-        $chars = 'abcdefghijkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ23456789';
-        $char = '';
-        for ($i = 0; $i < $length; $i++) {
-            $char .= $chars[mt_rand(0, strlen($chars) - 1)];
-        }
-
-        return $char;
-    }
-
-    // base64加密(处理URL)
-    function base64url_encode($data)
-    {
-        return strtr(base64_encode($data), array('+' => '-', '/' => '_', '=' => ''));
-    }
-
-    // base64解密(处理URL)
-    function base64url_decode($data)
-    {
-        return base64_decode(strtr($data, '-_', '+/'));
-    }
-
-    // 根据流量值自动转换单位输出
-    public static function flowAutoShow($value = 0)
-    {
-        $kb = 1024;
-        $mb = 1048576;
-        $gb = 1073741824;
-        $tb = $gb * 1024;
-        $pb = $tb * 1024;
-        if (abs($value) > $pb) {
-            return round($value / $pb, 2) . "PB";
-        } elseif (abs($value) > $tb) {
-            return round($value / $tb, 2) . "TB";
-        } elseif (abs($value) > $gb) {
-            return round($value / $gb, 2) . "GB";
-        } elseif (abs($value) > $mb) {
-            return round($value / $mb, 2) . "MB";
-        } elseif (abs($value) > $kb) {
-            return round($value / $kb, 2) . "KB";
-        } else {
-            return round($value, 2) . "B";
-        }
-    }
-
-    public static function toMB($traffic)
-    {
-        $mb = 1048576;
-        return $traffic * $mb;
-    }
-
-    public static function toGB($traffic)
-    {
-        $gb = 1048576 * 1024;
-        return $traffic * $gb;
-    }
-
-    public static function flowToGB($traffic)
-    {
-        $gb = 1048576 * 1024;
-        return $traffic / $gb;
-    }
-
-    // 加密方式
-    public function methodList()
-    {
-        return SsConfig::query()->where('type', 1)->get();
-    }
-
-    // 协议
-    public function protocolList()
-    {
-        return SsConfig::query()->where('type', 2)->get();
-    }
-
-    // 混淆
-    public function obfsList()
-    {
-        return SsConfig::query()->where('type', 3)->get();
-    }
-
-    // 等级
-    public function levelList()
-    {
-        return Level::query()->get()->sortBy('level');
-    }
-
-    // 系统配置
-    public function systemConfig()
-    {
-        $config = Config::query()->get();
-        $data = [];
-        foreach ($config as $vo) {
-            $data[$vo->name] = $vo->value;
-        }
-
-        return $data;
-    }
-
-    // 获取一个随机端口
-    public function getRandPort()
-    {
-        $config = $this->systemConfig();
-
-        $port = mt_rand($config['min_port'], $config['max_port']);
-        $deny_port = [1068, 1109, 1434, 3127, 3128, 3129, 3130, 3332, 4444, 5554, 6669, 8080, 8081, 8082, 8181, 8282, 9996, 17185, 24554, 35601, 60177, 60179]; // 不生成的端口
-
-        $exists_port = User::query()->pluck('port')->toArray();
-        if (in_array($port, $exists_port) || in_array($port, $deny_port)) {
-            $port = $this->getRandPort();
-        }
-
-        return $port;
-    }
-
-    // 类似Linux中的tail命令
-    public function tail($file, $n, $base = 5)
-    {
-        $fileLines = $this->countLine($file);
-        if ($fileLines < 15000) {
-            return false;
-        }
-
-        $fp = fopen($file, "r+");
-        assert($n > 0);
-        $pos = $n + 1;
-        $lines = array();
-        while (count($lines) <= $n) {
-            try {
-                fseek($fp, -$pos, SEEK_END);
-            } catch (Exception $e) {
-                fseek(0);
-                break;
-            }
-
-            $pos *= $base;
-            while (!feof($fp)) {
-                array_unshift($lines, fgets($fp));
-            }
-        }
-
-        return array_slice($lines, 0, $n);
-    }
-
-    /**
-     * 计算文件行数
-     */
-    function countLine($file)
-    {
-        $fp = fopen($file, "r");
-        $i = 0;
-        while (!feof($fp)) {
-            //每次读取2M
-            if ($data = fread($fp, 1024 * 1024 * 2)) {
-                //计算读取到的行数
-                $num = substr_count($data, "\n");
-                $i += $num;
-            }
-        }
-
-        fclose($fp);
-
-        return $i;
-    }
-
-    /**
-     * 文件大小转换
-     *
-     * @param int $bytes
-     * @param int $precision
-     *
-     * @return string
-     */
-    public function formatBytes($bytes, $precision = 2)
-    {
-        $units = array('B', 'KB', 'MB', 'GB', 'TB');
-        $bytes = max($bytes, 0);
-        $pow = floor(($bytes ? log($bytes) : 0) / log(1024));
-        $pow = min($pow, count($units) - 1);
-        $bytes /= pow(1024, $pow);
-
-        return round($bytes, $precision) . ' ' . $units[$pow];
-    }
-
-    // 禁止注册的邮箱后缀
-    public function forbidDomain()
-    {
-        return [
-            'gov.cn',
-            'edu.cn'
-        ];
-    }
-
-    /**
-     * 写入邮件发送日志
-     * @param int $user_id 用户ID
-     * @param string $title 投递类型(投递标题)
-     * @param string $content 投递内容(简要概述)
-     * @param int $status 投递状态
-     * @param string $error 投递失败时记录的异常信息
-     */
-    public function sendEmailLog($user_id, $title, $content, $status = 1, $error = '')
-    {
-        $emailLogObj = new EmailLog();
-        $emailLogObj->user_id = $user_id;
-        $emailLogObj->title = $title;
-        $emailLogObj->content = $content;
-        $emailLogObj->status = $status;
-        $emailLogObj->error = $error;
-        $emailLogObj->created_at = date('Y-m-d H:i:s');
-        $emailLogObj->save();
-    }
-}

+ 220 - 0
app/Http/Controllers/Controller.php

@@ -6,8 +6,228 @@ use Illuminate\Foundation\Bus\DispatchesJobs;
 use Illuminate\Routing\Controller as BaseController;
 use Illuminate\Foundation\Validation\ValidatesRequests;
 use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
+use App\Http\Models\Config;
+use App\Http\Models\EmailLog;
+use App\Http\Models\Level;
+use App\Http\Models\SsConfig;
+use App\Http\Models\User;
 
 class Controller extends BaseController
 {
     use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
+    // 生成SS密码
+    public function makeRandStr($length = 6)
+    {
+        // 密码字符集,可任意添加你需要的字符
+        $chars = 'abcdefghijkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ23456789';
+        $char = '';
+        for ($i = 0; $i < $length; $i++) {
+            $char .= $chars[mt_rand(0, strlen($chars) - 1)];
+        }
+
+        return $char;
+    }
+
+    // base64加密(处理URL)
+    function base64url_encode($data)
+    {
+        return strtr(base64_encode($data), array('+' => '-', '/' => '_', '=' => ''));
+    }
+
+    // base64解密(处理URL)
+    function base64url_decode($data)
+    {
+        return base64_decode(strtr($data, '-_', '+/'));
+    }
+
+    // 根据流量值自动转换单位输出
+    public static function flowAutoShow($value = 0)
+    {
+        $kb = 1024;
+        $mb = 1048576;
+        $gb = 1073741824;
+        $tb = $gb * 1024;
+        $pb = $tb * 1024;
+        if (abs($value) > $pb) {
+            return round($value / $pb, 2) . "PB";
+        } elseif (abs($value) > $tb) {
+            return round($value / $tb, 2) . "TB";
+        } elseif (abs($value) > $gb) {
+            return round($value / $gb, 2) . "GB";
+        } elseif (abs($value) > $mb) {
+            return round($value / $mb, 2) . "MB";
+        } elseif (abs($value) > $kb) {
+            return round($value / $kb, 2) . "KB";
+        } else {
+            return round($value, 2) . "B";
+        }
+    }
+
+    public static function toMB($traffic)
+    {
+        $mb = 1048576;
+        return $traffic * $mb;
+    }
+
+    public static function toGB($traffic)
+    {
+        $gb = 1048576 * 1024;
+        return $traffic * $gb;
+    }
+
+    public static function flowToGB($traffic)
+    {
+        $gb = 1048576 * 1024;
+        return $traffic / $gb;
+    }
+
+    // 加密方式
+    public function methodList()
+    {
+        return SsConfig::query()->where('type', 1)->get();
+    }
+
+    // 协议
+    public function protocolList()
+    {
+        return SsConfig::query()->where('type', 2)->get();
+    }
+
+    // 混淆
+    public function obfsList()
+    {
+        return SsConfig::query()->where('type', 3)->get();
+    }
+
+    // 等级
+    public function levelList()
+    {
+        return Level::query()->get()->sortBy('level');
+    }
+
+    // 系统配置
+    public function systemConfig()
+    {
+        $config = Config::query()->get();
+        $data = [];
+        foreach ($config as $vo) {
+            $data[$vo->name] = $vo->value;
+        }
+
+        return $data;
+    }
+
+    // 获取一个随机端口
+    public function getRandPort()
+    {
+        $config = $this->systemConfig();
+
+        $port = mt_rand($config['min_port'], $config['max_port']);
+        $deny_port = [1068, 1109, 1434, 3127, 3128, 3129, 3130, 3332, 4444, 5554, 6669, 8080, 8081, 8082, 8181, 8282, 9996, 17185, 24554, 35601, 60177, 60179]; // 不生成的端口
+
+        $exists_port = User::query()->pluck('port')->toArray();
+        if (in_array($port, $exists_port) || in_array($port, $deny_port)) {
+            $port = $this->getRandPort();
+        }
+
+        return $port;
+    }
+
+    // 类似Linux中的tail命令
+    public function tail($file, $n, $base = 5)
+    {
+        $fileLines = $this->countLine($file);
+        if ($fileLines < 15000) {
+            return false;
+        }
+
+        $fp = fopen($file, "r+");
+        assert($n > 0);
+        $pos = $n + 1;
+        $lines = array();
+        while (count($lines) <= $n) {
+            try {
+                fseek($fp, -$pos, SEEK_END);
+            } catch (Exception $e) {
+                fseek(0);
+                break;
+            }
+
+            $pos *= $base;
+            while (!feof($fp)) {
+                array_unshift($lines, fgets($fp));
+            }
+        }
+
+        return array_slice($lines, 0, $n);
+    }
+
+    /**
+     * 计算文件行数
+     */
+    function countLine($file)
+    {
+        $fp = fopen($file, "r");
+        $i = 0;
+        while (!feof($fp)) {
+            //每次读取2M
+            if ($data = fread($fp, 1024 * 1024 * 2)) {
+                //计算读取到的行数
+                $num = substr_count($data, "\n");
+                $i += $num;
+            }
+        }
+
+        fclose($fp);
+
+        return $i;
+    }
+
+    /**
+     * 文件大小转换
+     *
+     * @param int $bytes
+     * @param int $precision
+     *
+     * @return string
+     */
+    public function formatBytes($bytes, $precision = 2)
+    {
+        $units = array('B', 'KB', 'MB', 'GB', 'TB');
+        $bytes = max($bytes, 0);
+        $pow = floor(($bytes ? log($bytes) : 0) / log(1024));
+        $pow = min($pow, count($units) - 1);
+        $bytes /= pow(1024, $pow);
+
+        return round($bytes, $precision) . ' ' . $units[$pow];
+    }
+
+    // 禁止注册的邮箱后缀
+    public function forbidDomain()
+    {
+        return [
+            'gov.cn',
+            'edu.cn'
+        ];
+    }
+
+    /**
+     * 写入邮件发送日志
+     * @param int $user_id 用户ID
+     * @param string $title 投递类型(投递标题)
+     * @param string $content 投递内容(简要概述)
+     * @param int $status 投递状态
+     * @param string $error 投递失败时记录的异常信息
+     */
+    public function sendEmailLog($user_id, $title, $content, $status = 1, $error = '')
+    {
+        $emailLogObj = new EmailLog();
+        $emailLogObj->user_id = $user_id;
+        $emailLogObj->title = $title;
+        $emailLogObj->content = $content;
+        $emailLogObj->status = $status;
+        $emailLogObj->error = $error;
+        $emailLogObj->created_at = date('Y-m-d H:i:s');
+        $emailLogObj->save();
+    }
 }

+ 1 - 1
app/Http/Controllers/CouponController.php

@@ -15,7 +15,7 @@ use Log;
  * Class LoginController
  * @package App\Http\Controllers
  */
-class CouponController extends BaseController
+class CouponController extends Controller
 {
     protected static $config;
 

+ 1 - 1
app/Http/Controllers/EmailLogController.php

@@ -11,7 +11,7 @@ use Response;
  * Class LoginController
  * @package App\Http\Controllers
  */
-class EmailLogController extends BaseController
+class EmailLogController extends Controller
 {
     protected static $config;
 

+ 1 - 1
app/Http/Controllers/LocateController.php

@@ -12,7 +12,7 @@ use Agent;
  * Class LocateController
  * @package App\Http\Controllers
  */
-class LocateController extends BaseController
+class LocateController extends Controller
 {
     // 接收打开文章时上报的定位坐标信息
     public function locate(Request $request)

+ 1 - 1
app/Http/Controllers/LoginController.php

@@ -15,7 +15,7 @@ use Cache;
  * Class LoginController
  * @package App\Http\Controllers
  */
-class LoginController extends BaseController
+class LoginController extends Controller
 {
     protected static $config;
 

+ 1 - 1
app/Http/Controllers/RegisterController.php

@@ -18,7 +18,7 @@ use Mail;
  * Class LoginController
  * @package App\Http\Controllers
  */
-class RegisterController extends BaseController
+class RegisterController extends Controller
 {
     protected static $config;
     protected static $forbidDomain;

+ 1 - 1
app/Http/Controllers/ShopController.php

@@ -12,7 +12,7 @@ use Redirect;
  * Class LoginController
  * @package App\Http\Controllers
  */
-class ShopController extends BaseController
+class ShopController extends Controller
 {
     protected static $config;
 

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

@@ -16,7 +16,7 @@ use Redirect;
  * Class SubscribeController
  * @package App\Http\Controllers
  */
-class SubscribeController extends BaseController
+class SubscribeController extends Controller
 {
     protected static $config;
 

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

@@ -12,7 +12,7 @@ use Response;
  * Class TicketController
  * @package App\Http\Controllers
  */
-class TicketController extends BaseController
+class TicketController extends Controller
 {
     protected static $config;
 

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

@@ -31,7 +31,7 @@ use Mail;
 use DB;
 use Log;
 
-class UserController extends BaseController
+class UserController extends Controller
 {
     protected static $config;
     protected static $userLevel;

+ 1 - 1
config/database.php

@@ -45,7 +45,7 @@ return [
             'port' => '3306',
             'database' => 'ssrpanel',
             'username' => 'root',
-            'password' => 'root',
+            'password' => '',
             'unix_socket' => '',
             'charset' => 'utf8mb4',
             'collation' => 'utf8mb4_unicode_ci',

+ 0 - 0
storage/app/.gitignore