Tokumeikoi 5 years ago
parent
commit
47686d50c5

+ 2 - 2
app/Http/Controllers/Passport/AuthController.php

@@ -112,7 +112,7 @@ class AuthController extends Controller
             abort(500, '用户名或密码错误');
         }
 
-        if (!$user->enable) {
+        if ($user->banned) {
             abort(500, '该账户已被停止使用');
         }
 
@@ -159,7 +159,7 @@ class AuthController extends Controller
             if (!$user) {
                 abort(500, '用户不存在');
             }
-            if (!$user->enable) {
+            if ($user->banned) {
                 abort(500, '该账户已被停止使用');
             }
             $request->session()->put('email', $user->email);

+ 3 - 3
app/Http/Requests/Admin/UserUpdate.php

@@ -11,7 +11,7 @@ class UserUpdate extends FormRequest
         'password' => 'nullable',
         'transfer_enable' => 'numeric',
         'expired_at' => 'integer',
-        'enable' => 'required|in:0,1',
+        'banned' => 'required|in:0,1',
         'plan_id' => 'nullable|integer',
         'commission_rate' => 'nullable|integer|min:0|max:100',
         'discount' => 'nullable|integer|min:0|max:100',
@@ -38,8 +38,8 @@ class UserUpdate extends FormRequest
             'email.email' => '邮箱格式不正确',
             'transfer_enable.numeric' => '流量格式不正确',
             'expired_at.integer' => '到期时间格式不正确',
-            'enable.required' => '账户状态不能为空',
-            'enable.in' => '账户状态格式不正确',
+            'banned.required' => '是否封禁不能为空',
+            'banned.in' => '是否封禁格式不正确',
             'is_admin.required' => '是否管理员不能为空',
             'is_admin.in' => '是否管理员格式不正确',
             'plan_id.integer' => '订阅计划格式不正确',

+ 1 - 1
app/Services/ServerService.php

@@ -14,7 +14,7 @@ class ServerService
                 $query->where('expired_at', '>=', time())
                     ->orWhere('expired_at', NULL);
             })
-            ->where('enable', 1)
+            ->where('banned', 1)
             ->select([
                 'id',
                 'email',

+ 2 - 14
app/Services/UserService.php

@@ -8,7 +8,7 @@ class UserService
 {
     public function isAvailable(User $user)
     {
-        if ($user->enable && $user->transfer_enable && ($user->expired_at > time() || $user->expired_at === NULL)) {
+        if (!$user->banned && $user->transfer_enable && ($user->expired_at > time() || $user->expired_at === NULL)) {
             return true;
         }
         return false;
@@ -21,19 +21,7 @@ class UserService
                 $query->where('expired_at', '>=', time())
                     ->orWhere('expired_at', NULL);
             })
-            ->where('enable', 1)
-            ->select([
-                'id',
-                'email',
-                't',
-                'u',
-                'd',
-                'transfer_enable',
-                'enable',
-                'v2ray_uuid',
-                'v2ray_alter_id',
-                'v2ray_level'
-            ])
+            ->where('banned', 0)
             ->get();
     }
 

+ 38 - 39
database/install.sql

@@ -1,9 +1,9 @@
 -- Adminer 4.7.3 MySQL dump
 
 SET NAMES utf8;
-SET time_zone = ''+00:00'';
+SET time_zone = '+00:00';
 SET foreign_key_checks = 0;
-SET sql_mode = ''NO_AUTO_VALUE_ON_ZERO'';
+SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
 
 SET NAMES utf8mb4;
 
@@ -40,8 +40,8 @@ CREATE TABLE `v2_invite_code` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `user_id` int(11) NOT NULL,
   `code` char(32) NOT NULL,
-  `status` tinyint(1) NOT NULL DEFAULT ''0'',
-  `pv` int(11) NOT NULL DEFAULT ''0'',
+  `status` tinyint(1) NOT NULL DEFAULT '0',
+  `pv` int(11) NOT NULL DEFAULT '0',
   `created_at` int(11) NOT NULL,
   `updated_at` int(11) NOT NULL,
   PRIMARY KEY (`id`)
@@ -79,17 +79,17 @@ CREATE TABLE `v2_order` (
   `invite_user_id` int(11) DEFAULT NULL,
   `user_id` int(11) NOT NULL,
   `plan_id` int(11) NOT NULL,
-  `type` int(11) NOT NULL COMMENT ''1新购2续费3升级'',
+  `type` int(11) NOT NULL COMMENT '1新购2续费3升级',
   `cycle` varchar(255) NOT NULL,
   `trade_no` varchar(36) NOT NULL,
   `callback_no` varchar(255) DEFAULT NULL,
   `total_amount` int(11) NOT NULL,
   `discount_amount` int(11) DEFAULT NULL,
-  `surplus_amount` int(11) DEFAULT NULL COMMENT ''剩余价值'',
-  `refund_amount` int(11) DEFAULT NULL COMMENT ''退款金额'',
-  `status` tinyint(1) NOT NULL DEFAULT ''0'',
-  `commission_status` tinyint(1) NOT NULL DEFAULT ''0'',
-  `commission_balance` int(11) NOT NULL DEFAULT ''0'',
+  `surplus_amount` int(11) DEFAULT NULL COMMENT '剩余价值',
+  `refund_amount` int(11) DEFAULT NULL COMMENT '退款金额',
+  `status` tinyint(1) NOT NULL DEFAULT '0',
+  `commission_status` tinyint(1) NOT NULL DEFAULT '0',
+  `commission_balance` int(11) NOT NULL DEFAULT '0',
   `created_at` int(11) NOT NULL,
   `updated_at` int(11) NOT NULL,
   PRIMARY KEY (`id`)
@@ -102,14 +102,13 @@ CREATE TABLE `v2_plan` (
   `group_id` int(11) NOT NULL,
   `transfer_enable` int(11) NOT NULL,
   `name` varchar(255) NOT NULL,
-  `type` tinyint(1) NOT NULL DEFAULT ''0'' COMMENT ''0: 周期 1:一次性'',
-  `show` tinyint(1) NOT NULL DEFAULT ''0'',
-  `renew` tinyint(1) NOT NULL DEFAULT ''1'',
+  `show` tinyint(1) NOT NULL DEFAULT '0',
+  `renew` tinyint(1) NOT NULL DEFAULT '1',
   `content` text,
-  `month_price` int(11) DEFAULT NULL,
-  `quarter_price` int(11) DEFAULT NULL,
-  `half_year_price` int(11) DEFAULT NULL,
-  `year_price` int(11) DEFAULT NULL,
+  `month_price` int(11) DEFAULT '0',
+  `quarter_price` int(11) DEFAULT '0',
+  `half_year_price` int(11) DEFAULT '0',
+  `year_price` int(11) DEFAULT '0',
   `onetime_price` int(11) DEFAULT NULL,
   `created_at` int(11) NOT NULL,
   `updated_at` int(11) NOT NULL,
@@ -126,13 +125,13 @@ CREATE TABLE `v2_server` (
   `host` varchar(255) NOT NULL,
   `port` int(11) NOT NULL,
   `server_port` int(11) NOT NULL,
-  `tls` tinyint(4) NOT NULL DEFAULT ''0'',
+  `tls` tinyint(4) NOT NULL DEFAULT '0',
   `tags` varchar(255) DEFAULT NULL,
   `rate` varchar(11) NOT NULL,
   `network` varchar(11) NOT NULL,
   `settings` text,
   `rules` text,
-  `show` tinyint(1) NOT NULL DEFAULT ''0'',
+  `show` tinyint(1) NOT NULL DEFAULT '0',
   `created_at` int(11) NOT NULL,
   `updated_at` int(11) NOT NULL,
   PRIMARY KEY (`id`)
@@ -168,7 +167,7 @@ CREATE TABLE `v2_ticket` (
   `last_reply_user_id` int(11) NOT NULL,
   `subject` varchar(255) NOT NULL,
   `level` tinyint(1) NOT NULL,
-  `status` tinyint(1) NOT NULL DEFAULT ''0'' COMMENT ''0:已开启 1:已关闭'',
+  `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0:已开启 1:已关闭',
   `created_at` int(11) NOT NULL,
   `updated_at` int(11) NOT NULL,
   PRIMARY KEY (`id`)
@@ -194,17 +193,17 @@ CREATE TABLE `v2_tutorial` (
   `title` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
   `icon` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
   `steps` text,
-  `show` tinyint(1) NOT NULL DEFAULT ''0'',
+  `show` tinyint(1) NOT NULL DEFAULT '0',
   `created_at` int(11) NOT NULL,
   `updated_at` int(11) NOT NULL,
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 INSERT INTO `v2_tutorial` (`id`, `category_id`, `title`, `icon`, `steps`, `show`, `created_at`, `updated_at`) VALUES
-(1,	1,	''V2rayN'',	''fab fa-2x fa-windows'',	''[{\"default_area\":\"<div><div>下载 V2rayN 客户端。</div><div>下载完成后解压,解压完成后运行V2rayN</div><div>运行时请右键,以管理员身份运行</div></div>\",\"download_url\":\"/downloads/V2rayN.zip\"},{\"default_area\":\"<div>点击订阅按钮,选择订阅设置点击添加,输入如下内容后点击确定保存</div>\",\"safe_area\":\"<div>备注:<code onclick=\\\"safeAreaCopy(\''{{$app_name}}\'')\\\">{{$app_name}}</code></div>\\n<div>地址(url):<code onclick=\\\"safeAreaCopy(\''{{$subscribe_url}}\'')\\\">{{$subscribe_url}}</code></div>\",\"img_url\":\"https://i.loli.net/2019/11/21/UkcHNtERTnjLVS8.jpg\"},{\"default_area\":\"<div>点击订阅后,从服务器列表选择服务器</div>\",\"img_url\":\"https://i.loli.net/2019/11/21/BgPGFQ3kCSuIRjJ.jpg\"},{\"default_area\":\"<div>点击参数设置,找到Http代理,选择PAC模式后按确定保存即启动代理。</div>\",\"img_url\":\"https://i.loli.net/2019/11/21/vnVykKEFT8Lzo3f.jpg\"}]'',	1,	1577972408,	1577980882),
-(2,	4,	''V2rayNG'',	''fab fa-2x fa-android'',	''[{\"default_area\":\"<div>下载 V2rayNG 客户端。</div>\",\"safe_area\":\"\",\"download_url\":\"/downloads/V2rayNG.apk\"},{\"default_area\":\"<div>打开 V2rayNG 点击左上角的菜单图标打开侧边栏,随后点击 订阅设置,点击右上角的➕按钮新增订阅。</div><div>按照下方内容进行填写,填写完毕后点击右上角的☑️按钮。</div>\",\"safe_area\":\"<div>备注:<code onclick=\\\"safeAreaCopy(\''{{$app_name}}\'')\\\">{{$app_name}}</code></div>\\n<div>地址(url):<code onclick=\\\"safeAreaCopy(\''{{$subscribe_url}}\'')\\\">{{$subscribe_url}}</code></div>\",\"download_url\":\"\",\"img_url\":\"https://i.loli.net/2019/11/21/ghuVkTe6LBqRxSO.jpg\"},{\"default_area\":\"<div>再次从侧边栏进入 设置 页面,点击 路由模式 将其更改为 \\b绕过局域网及大陆地址。</div>\",\"img_url\":\"https://i.loli.net/2019/11/21/Tf1AGoXZuhJrwOq.jpg\"},{\"default_area\":\"<div>随后从侧边栏回到 配置文件 页面,点击右上角的省略号图标选择更新订阅。</div>\",\"img_url\":\"https://i.loli.net/2019/11/21/UtfPShQXupRmB4L.jpg\"},{\"img_url\":\"https://i.loli.net/2019/11/21/ZkbNsSrAg3m5Dny.jpg\",\"default_area\":\"<div>点击选择您需要的节点,点击右下角的V字按钮即可连接。</div>\"}]'',	1,	1577972534,	1577981610),
-(3,	2,	''ClashX'',	''fab fa-2x fa-apple'',	''[{\"default_area\":\"<div>下载 ClashX 客户端,安装后运行。</div>\",\"download_url\":\"/downloads/ClashX.dmg\",\"img_url\":\"https://i.loli.net/2019/11/20/uNGrjl2noCL1f5B.jpg\"},{\"default_area\":\"<div>点击通知栏 ClashX 图标保持选中状态,按快捷键 ⌘+M(订阅快捷键),在弹出的窗口点击添加输入下方信息</div>\",\"safe_area\":\"<div>Url:<code onclick=\\\"safeAreaCopy(\''{{$subscribe_url}}\'')\\\">{{$subscribe_url}}</code></div>\\n<div>Config Name:<code onclick=\\\"safeAreaCopy(\''{{$app_name}}\'')\\\">{{$app_name}}</code></div>\",\"img_url\":\"https://i.loli.net/2019/11/20/8eB13mRbFuszwxg.jpg\"},{\"default_area\":\"<div>点击通知栏 ClashX 图标保持选中状态,按快捷键 ⌘+S(设置为系统代理快捷键),即连接完成</div>\"}]'',	1,	1577979855,	1577981646),
-(4,	3,	''Shadowrocket'',	''fab fa-2x fa-apple'',	''[{\"default_area\":\"<div>iOS上使用请在iOS浏览器中打开本页</div>\"},{\"default_area\":\"<div>在 App Store 登录本站提供的美区 Apple ID 下载客户端。</div><div>为了保护您的隐私,请勿在手机设置里直接登录,仅在 App Store 登录即可。</div><div>登陆完成后点击下方下载会自动唤起下载。</div>\",\"safe_area\":\"<div>Apple ID:<code onclick=\\\"safeAreaCopy(\''{{$apple_id}}\'')\\\">{{$apple_id}}</code></div><div>密码:<code onclick=\\\"safeAreaCopy(\''{{$apple_id_password}}\'')\\\">点击复制密码</code></div>\",\"download_url\":\"https://apps.apple.com/us/app/shadowrocket/id932747118\",\"img_url\":\"https://i.loli.net/2019/11/21/5idkjJ61stWgREV.jpg\"},{\"default_area\":\"<div>待客户端安装完成后,点击下方一键订阅按钮会自动唤起并进行订阅</div>\",\"safe_area\":\"\",\"img_url\":\"https://i.loli.net/2019/11/21/ZcqlNMb3eg5Uhxd.jpg\",\"download_url\":\"shadowrocket://add/sub://{{$b64_subscribe_url}}?remark={{$app_name}}\"},{\"default_area\":\"<div>选择节点进行链接,首次链接过程授权窗口请一路允许。</div>\",\"img_url\":\"https://i.loli.net/2019/11/21/9Zdxksr7Ey6hjlm.jpg\"}]'',	1,	1577982016,	1577983283);
+(1,	1,	'V2rayN',	'fab fa-2x fa-windows',	'[{\"default_area\":\"<div><div>下载 V2rayN 客户端。</div><div>下载完成后解压,解压完成后运行V2rayN</div><div>运行时请右键,以管理员身份运行</div></div>\",\"download_url\":\"/downloads/V2rayN.zip\"},{\"default_area\":\"<div>点击订阅按钮,选择订阅设置点击添加,输入如下内容后点击确定保存</div>\",\"safe_area\":\"<div>备注:<code onclick=\\\"safeAreaCopy(\'{{$app_name}}\')\\\">{{$app_name}}</code></div>\\n<div>地址(url):<code onclick=\\\"safeAreaCopy(\'{{$subscribe_url}}\')\\\">{{$subscribe_url}}</code></div>\",\"img_url\":\"https://i.loli.net/2019/11/21/UkcHNtERTnjLVS8.jpg\"},{\"default_area\":\"<div>点击订阅后,从服务器列表选择服务器</div>\",\"img_url\":\"https://i.loli.net/2019/11/21/BgPGFQ3kCSuIRjJ.jpg\"},{\"default_area\":\"<div>点击参数设置,找到Http代理,选择PAC模式后按确定保存即启动代理。</div>\",\"img_url\":\"https://i.loli.net/2019/11/21/vnVykKEFT8Lzo3f.jpg\"}]',	1,	1577972408,	1577980882),
+(2,	4,	'V2rayNG',	'fab fa-2x fa-android',	'[{\"default_area\":\"<div>下载 V2rayNG 客户端。</div>\",\"safe_area\":\"\",\"download_url\":\"/downloads/V2rayNG.apk\"},{\"default_area\":\"<div>打开 V2rayNG 点击左上角的菜单图标打开侧边栏,随后点击 订阅设置,点击右上角的➕按钮新增订阅。</div><div>按照下方内容进行填写,填写完毕后点击右上角的☑️按钮。</div>\",\"safe_area\":\"<div>备注:<code onclick=\\\"safeAreaCopy(\'{{$app_name}}\')\\\">{{$app_name}}</code></div>\\n<div>地址(url):<code onclick=\\\"safeAreaCopy(\'{{$subscribe_url}}\')\\\">{{$subscribe_url}}</code></div>\",\"download_url\":\"\",\"img_url\":\"https://i.loli.net/2019/11/21/ghuVkTe6LBqRxSO.jpg\"},{\"default_area\":\"<div>再次从侧边栏进入 设置 页面,点击 路由模式 将其更改为 \\b绕过局域网及大陆地址。</div>\",\"img_url\":\"https://i.loli.net/2019/11/21/Tf1AGoXZuhJrwOq.jpg\"},{\"default_area\":\"<div>随后从侧边栏回到 配置文件 页面,点击右上角的省略号图标选择更新订阅。</div>\",\"img_url\":\"https://i.loli.net/2019/11/21/UtfPShQXupRmB4L.jpg\"},{\"img_url\":\"https://i.loli.net/2019/11/21/ZkbNsSrAg3m5Dny.jpg\",\"default_area\":\"<div>点击选择您需要的节点,点击右下角的V字按钮即可连接。</div>\"}]',	1,	1577972534,	1577981610),
+(3,	2,	'ClashX',	'fab fa-2x fa-apple',	'[{\"default_area\":\"<div>下载 ClashX 客户端,安装后运行。</div>\",\"download_url\":\"/downloads/ClashX.dmg\",\"img_url\":\"https://i.loli.net/2019/11/20/uNGrjl2noCL1f5B.jpg\"},{\"default_area\":\"<div>点击通知栏 ClashX 图标保持选中状态,按快捷键 ⌘+M(订阅快捷键),在弹出的窗口点击添加输入下方信息</div>\",\"safe_area\":\"<div>Url:<code onclick=\\\"safeAreaCopy(\'{{$subscribe_url}}\')\\\">{{$subscribe_url}}</code></div>\\n<div>Config Name:<code onclick=\\\"safeAreaCopy(\'{{$app_name}}\')\\\">{{$app_name}}</code></div>\",\"img_url\":\"https://i.loli.net/2019/11/20/8eB13mRbFuszwxg.jpg\"},{\"default_area\":\"<div>点击通知栏 ClashX 图标保持选中状态,按快捷键 ⌘+S(设置为系统代理快捷键),即连接完成</div>\"}]',	1,	1577979855,	1577981646),
+(4,	3,	'Shadowrocket',	'fab fa-2x fa-apple',	'[{\"default_area\":\"<div>iOS上使用请在iOS浏览器中打开本页</div>\"},{\"default_area\":\"<div>在 App Store 登录本站提供的美区 Apple ID 下载客户端。</div><div>为了保护您的隐私,请勿在手机设置里直接登录,仅在 App Store 登录即可。</div><div>登陆完成后点击下方下载会自动唤起下载。</div>\",\"safe_area\":\"<div>Apple ID:<code onclick=\\\"safeAreaCopy(\'{{$apple_id}}\')\\\">{{$apple_id}}</code></div><div>密码:<code onclick=\\\"safeAreaCopy(\'{{$apple_id_password}}\')\\\">点击复制密码</code></div>\",\"download_url\":\"https://apps.apple.com/us/app/shadowrocket/id932747118\",\"img_url\":\"https://i.loli.net/2019/11/21/5idkjJ61stWgREV.jpg\"},{\"default_area\":\"<div>待客户端安装完成后,点击下方一键订阅按钮会自动唤起并进行订阅</div>\",\"safe_area\":\"\",\"img_url\":\"https://i.loli.net/2019/11/21/ZcqlNMb3eg5Uhxd.jpg\",\"download_url\":\"shadowrocket://add/sub://{{$b64_subscribe_url}}?remark={{$app_name}}\"},{\"default_area\":\"<div>选择节点进行链接,首次链接过程授权窗口请一路允许。</div>\",\"img_url\":\"https://i.loli.net/2019/11/21/9Zdxksr7Ey6hjlm.jpg\"}]',	1,	1577982016,	1577983283);
 
 DROP TABLE IF EXISTS `v2_user`;
 CREATE TABLE `v2_user` (
@@ -213,27 +212,27 @@ CREATE TABLE `v2_user` (
   `email` varchar(64) NOT NULL,
   `password` varchar(64) NOT NULL,
   `password_algo` char(10) DEFAULT NULL,
-  `balance` int(11) NOT NULL DEFAULT ''0'',
+  `balance` int(11) NOT NULL DEFAULT '0',
   `discount` int(11) DEFAULT NULL,
   `commission_rate` int(11) DEFAULT NULL,
-  `commission_balance` int(11) NOT NULL DEFAULT ''0'',
-  `t` int(11) NOT NULL DEFAULT ''0'',
-  `u` bigint(20) NOT NULL DEFAULT ''0'',
-  `d` bigint(20) NOT NULL DEFAULT ''0'',
-  `transfer_enable` bigint(20) NOT NULL DEFAULT ''0'',
-  `enable` tinyint(1) NOT NULL DEFAULT ''1'',
-  `is_admin` tinyint(1) NOT NULL DEFAULT ''0'',
+  `commission_balance` int(11) NOT NULL DEFAULT '0',
+  `t` int(11) NOT NULL DEFAULT '0',
+  `u` bigint(20) NOT NULL DEFAULT '0',
+  `d` bigint(20) NOT NULL DEFAULT '0',
+  `transfer_enable` bigint(20) NOT NULL DEFAULT '0',
+  `banned` tinyint(1) NOT NULL DEFAULT '0',
+  `is_admin` tinyint(1) NOT NULL DEFAULT '0',
   `last_login_at` int(11) DEFAULT NULL,
   `last_login_ip` int(11) DEFAULT NULL,
   `v2ray_uuid` varchar(36) NOT NULL,
-  `v2ray_alter_id` tinyint(4) NOT NULL DEFAULT ''2'',
-  `v2ray_level` tinyint(4) NOT NULL DEFAULT ''0'',
+  `v2ray_alter_id` tinyint(4) NOT NULL DEFAULT '2',
+  `v2ray_level` tinyint(4) NOT NULL DEFAULT '0',
   `group_id` int(11) DEFAULT NULL,
   `plan_id` int(11) DEFAULT NULL,
-  `remind_expire` tinyint(4) DEFAULT ''1'',
-  `remind_traffic` tinyint(4) DEFAULT ''1'',
+  `remind_expire` tinyint(4) DEFAULT '1',
+  `remind_traffic` tinyint(4) DEFAULT '1',
   `token` char(32) NOT NULL,
-  `expired_at` bigint(20) NOT NULL DEFAULT ''0'',
+  `expired_at` bigint(20) DEFAULT '0',
   `created_at` int(11) NOT NULL,
   `updated_at` int(11) NOT NULL,
   PRIMARY KEY (`id`),
@@ -241,4 +240,4 @@ CREATE TABLE `v2_user` (
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 
--- 2020-02-28 08:19:57
+-- 2020-03-02 12:29:05

+ 2 - 1
database/update.sql

@@ -177,7 +177,8 @@ CHANGE `year_price` `year_price` int(11) NULL AFTER `half_year_price`,
 ADD `onetime_price` int(11) NULL AFTER `year_price`;
 
 ALTER TABLE `v2_user`
-DROP `banned`;
+DROP `enable`,
+ADD `banned` tinyint(1) NOT NULL DEFAULT '0' AFTER `transfer_enable`;
 
 ALTER TABLE `v2_user`
 CHANGE `expired_at` `expired_at` bigint(20) NULL DEFAULT '0' AFTER `token`;