Browse Source

使用验证器,精简代码

admin 7 years ago
parent
commit
2b7d17d7d0
38 changed files with 473 additions and 514 deletions
  1. 201 104
      _ide_helper.php
  2. 2 2
      app/Exceptions/Handler.php
  3. 151 264
      app/Http/Controllers/AuthController.php
  4. 3 3
      app/Http/Controllers/CouponController.php
  5. 25 49
      app/Http/Controllers/UserController.php
  6. 6 0
      app/Http/Models/Coupon.php
  7. 2 2
      app/Http/Models/Device.php
  8. 1 1
      app/Http/Models/Goods.php
  9. 3 3
      app/Http/Models/Invite.php
  10. 1 1
      app/Http/Models/Marketing.php
  11. 2 2
      app/Http/Models/Order.php
  12. 5 5
      app/Http/Models/Payment.php
  13. 1 1
      app/Http/Models/PaymentCallback.php
  14. 2 0
      app/Http/Models/SsConfig.php
  15. 1 1
      app/Http/Models/SsNode.php
  16. 2 2
      app/Http/Models/SsNodeIp.php
  17. 1 1
      app/Http/Models/SsNodeLabel.php
  18. 1 1
      app/Http/Models/SsNodeTrafficDaily.php
  19. 1 1
      app/Http/Models/SsNodeTrafficHourly.php
  20. 2 2
      app/Http/Models/Ticket.php
  21. 1 1
      app/Http/Models/TicketReply.php
  22. 1 1
      app/Http/Models/User.php
  23. 1 1
      app/Http/Models/UserBalanceLog.php
  24. 1 1
      app/Http/Models/UserBanLog.php
  25. 1 1
      app/Http/Models/UserLabel.php
  26. 1 1
      app/Http/Models/UserScoreLog.php
  27. 1 1
      app/Http/Models/UserTrafficDaily.php
  28. 1 1
      app/Http/Models/UserTrafficHourly.php
  29. 2 2
      app/Http/Models/UserTrafficLog.php
  30. 2 2
      app/Http/Models/UserTrafficModifyLog.php
  31. 7 1
      app/Http/Models/Verify.php
  32. 5 6
      resources/views/auth/activeUser.blade.php
  33. 2 3
      resources/views/auth/login.blade.php
  34. 16 22
      resources/views/auth/register.blade.php
  35. 6 9
      resources/views/auth/reset.blade.php
  36. 5 9
      resources/views/auth/resetPassword.blade.php
  37. 6 7
      resources/views/user/profile.blade.php
  38. 1 0
      sql/db.sql

File diff suppressed because it is too large
+ 201 - 104
_ide_helper.php


+ 2 - 2
app/Exceptions/Handler.php

@@ -85,9 +85,9 @@ class Handler extends ExceptionHandler
         // 捕获CSRF异常
         if ($exception instanceof TokenMismatchException) {
             if ($request->ajax()) {
-                return response()->json(['status' => 'fail', 'data' => '', 'message' => 'Refresh Page, Try One More Time']);
+                return response()->json(['status' => 'fail', 'data' => '', 'message' => 'System Error, Please Refresh Page, Try One More Time']);
             } else {
-                return response()->view('auth.error', ['message' => 'Refresh Page, Try One More Time']);
+                return response()->view('auth.error', ['message' => 'System Error, Please Refresh Page, Try One More Time']);
             }
         }
 

+ 151 - 264
app/Http/Controllers/AuthController.php

@@ -17,6 +17,7 @@ use App\Mail\activeUser;
 use App\Mail\resetPassword;
 use App\Mail\sendVerifyCode;
 use Illuminate\Http\Request;
+use Validator;
 use Response;
 use Redirect;
 use Captcha;
@@ -47,28 +48,22 @@ class AuthController extends Controller
     public function login(Request $request)
     {
         if ($request->isMethod('POST')) {
-            $username = trim($request->get('username'));
-            $password = trim($request->get('password'));
-            $captcha = trim($request->get('captcha'));
-            $remember = trim($request->get('remember'));
-
-            if (empty($username) || empty($password)) {
-                Session::flash('errorMsg', '请输入用户名和密码');
-
-                return Redirect::back();
-            }
+            $this->validate($request, [
+                'username' => 'required',
+                'password' => 'required'
+            ], [
+                'username.required' => '请输入用户名',
+                'password.required' => '请输入密码'
+            ]);
 
             // 是否校验验证码
             switch (self::$systemConfig['is_captcha']) {
-                case 1:
-                    // Default Captcha
-                    if (!Captcha::check($captcha)) {
-                        Session::flash('errorMsg', '验证码错误,请重新输入');
-                        return Redirect::back()->withInput();
+                case 1: // 默认图形验证码
+                    if (!Captcha::check($request->captcha)) {
+                        return Redirect::back()->withInput()->withErrors('验证码错误,请重新输入');
                     }
                     break;
-                case 2:
-                    // Geetest
+                case 2: // Geetest
                     $result = $this->validate($request, [
                         'geetest_challenge' => 'required|geetest'
                     ], [
@@ -76,49 +71,39 @@ class AuthController extends Controller
                     ]);
 
                     if (!$result) {
-                        Session::flash('errorMsg', trans('login.fail_captcha'));
-                        return Redirect::back()->withInput();
+                        return Redirect::back()->withInput()->withErrors(trans('login.fail_captcha'));
                     }
                     break;
-                case 3:
-                    // Google reCAPTCHA
+                case 3: // Google reCAPTCHA
                     $result = $this->validate($request, [
                         'g-recaptcha-response' => 'required|NoCaptcha'
                     ]);
 
                     if (!$result) {
-                        Session::flash('errorMsg', trans('login.fail_captcha'));
-                        return Redirect::back()->withInput();
+                        return Redirect::back()->withInput()->withErrors(trans('login.fail_captcha'));
                     }
                     break;
-                default:
-                    # nothing..
+                default: // 不启用验证码
                     break;
             }
 
             // 验证账号并创建会话
-            if (!Auth::attempt(['username' => $username, 'password' => $password], $remember)) {
-                Session::flash('errorMsg', '用户名或密码错误');
-
-                return Redirect::back()->withInput();
+            if (!Auth::attempt(['username' => $request->username, 'password' => $request->password], $request->remember)) {
+                return Redirect::back()->withInput()->withErrors('用户名或密码错误');
             }
 
             // 校验普通用户账号状态
             if (!Auth::user()->is_admin) {
                 if (Auth::user()->status < 0) {
-                    Session::flash('errorMsg', '账号已禁用');
-
                     Auth::logout(); // 强制销毁会话,因为Auth::attempt的时候会产生会话
 
-                    return Redirect::back()->withInput();
+                    return Redirect::back()->withInput()->withErrors('账号已禁用');
                 }
 
                 if (Auth::user()->status == 0 && self::$systemConfig['is_active_register']) {
-                    Session::flash('errorMsg', '账号未激活,请点击<a href="/activeUser?username=' . Auth::user()->username . '" target="_blank"><span style="color:#000">【激活账号】</span></a>');
-
                     Auth::logout(); // 强制销毁会话,因为Auth::attempt的时候会产生会话
 
-                    return Redirect::back()->withInput();
+                    return Redirect::back()->withInput()->withErrors('账号未激活,请点击<a href="/activeUser?username=' . $request->username . '" target="_blank"><span style="color:#000">【激活账号】</span></a>');
                 }
             }
 
@@ -161,95 +146,63 @@ class AuthController extends Controller
         $cacheKey = 'register_times_' . md5(getClientIp()); // 注册限制缓存key
 
         if ($request->isMethod('POST')) {
-            $username = trim($request->get('username'));
-            $password = trim($request->get('password'));
-            $repassword = trim($request->get('repassword'));
-            $captcha = trim($request->get('captcha'));
-            $code = trim($request->get('code'));
-            $verify_code = trim($request->get('verify_code'));
-            $register_token = $request->get('register_token');
-            $aff = intval($request->get('aff', 0));
+            $this->validate($request, [
+                'username'   => 'required|email|unique:user',
+                'password'   => 'required|min:6',
+                'repassword' => 'required|same:password',
+            ], [
+                'username.required'   => '请输入用户名',
+                'username.email'      => '用户名必须是合法邮箱',
+                'username.unique'     => '用户已存在,如果忘记密码请找回密码',
+                'password.required'   => '请输入密码',
+                'password.min'        => '密码最少要6位数',
+                'repassword.required' => '请再次输入密码',
+                'repassword.same'     => '两次输入密码不一致'
+            ]);
 
             // 防止重复提交
-            $session_register_token = Session::get('register_token');
-            if (empty($register_token) || $register_token != $session_register_token) {
-                Session::flash('errorMsg', '请勿重复请求,刷新一下页面再试试');
-
-                return Redirect::back()->withInput();
+            if ($request->register_token != Session::get('register_token')) {
+                return Redirect::back()->withInput()->withErrors('请勿重复请求,刷新一下页面再试试');
             } else {
                 Session::forget('register_token');
             }
 
             // 是否开启注册
             if (!self::$systemConfig['is_register']) {
-                Session::flash('errorMsg', '系统维护,暂停注册');
-
-                return Redirect::back();
-            }
-
-            if (empty($username)) {
-                Session::flash('errorMsg', '请输入用户名');
-
-                return Redirect::back()->withInput();
-            } elseif (empty($password)) {
-                Session::flash('errorMsg', '请输入密码');
-
-                return Redirect::back()->withInput();
-            } elseif (empty($repassword)) {
-                Session::flash('errorMsg', '请重新输入密码');
-
-                return Redirect::back()->withInput();
-            } elseif (md5($password) != md5($repassword)) {
-                Session::flash('errorMsg', '两次输入密码不一致,请重新输入');
-
-                return Redirect::back()->withInput($request->except(['password', 'repassword']));
-            } elseif (false === filter_var($username, FILTER_VALIDATE_EMAIL)) {
-                Session::flash('errorMsg', '用户名必须是合法邮箱,请重新输入');
-
-                return Redirect::back()->withInput();
+                return Redirect::back()->withErrors('系统维护,暂停注册');
             }
 
             // 校验域名邮箱是否在敏感词中
             $sensitiveWords = $this->sensitiveWords();
-            $usernameSuffix = explode('@', $username); // 提取邮箱后缀
+            $usernameSuffix = explode('@', $request->username); // 提取邮箱后缀
             if (in_array(strtolower($usernameSuffix[1]), $sensitiveWords)) {
-                Session::flash('errorMsg', '邮箱含有敏感词,请重新输入');
-
-                return Redirect::back()->withInput();
+                return Redirect::back()->withInput()->withErrors('邮箱含有敏感词,请重新输入');
             }
 
             // 如果需要邀请注册
             if (self::$systemConfig['is_invite_register']) {
                 // 必须使用邀请码
-                if (self::$systemConfig['is_invite_register'] == 2 && empty($code)) {
-                    Session::flash('errorMsg', '请输入邀请码');
-
-                    return Redirect::back()->withInput();
+                if (self::$systemConfig['is_invite_register'] == 2 && !$request->code) {
+                    return Redirect::back()->withInput()->withErrors('请输入邀请码');
                 }
 
                 // 校验邀请码合法性
-                if (!empty($code)) {
-                    $codeEnable = Invite::query()->where('code', $code)->where('status', 0)->first();
-                    if (empty($codeEnable)) {
-                        Session::flash('errorMsg', '邀请码不可用,请更换邀请码后重试');
-
-                        return Redirect::back()->withInput($request->except(['code']));
+                if ($request->code) {
+                    $codeEnable = Invite::query()->where('code', $request->code)->where('status', 0)->first();
+                    if (!$codeEnable) {
+                        return Redirect::back()->withInput($request->except(['code']))->withErrors('邀请码不可用,请重试');
                     }
                 }
             }
 
             // 如果开启注册发送验证码
             if (self::$systemConfig['is_verify_register']) {
-                if (!$verify_code) {
-                    Session::flash('errorMsg', '请输入验证码');
-
-                    return Redirect::back()->withInput($request->except(['verify_code']));
+                if (!$request->verify_code) {
+                    return Redirect::back()->withInput($request->except(['verify_code']))->withErrors('请输入验证码');
                 } else {
-                    $verifyCode = VerifyCode::query()->where('username', $username)->where('code', $verify_code)->where('status', 0)->first();
+                    $verifyCode = VerifyCode::query()->where('username', $request->username)->where('code', $request->verify_code)->where('status', 0)->first();
                     if (!$verifyCode) {
-                        Session::flash('errorMsg', '验证码不合法,可能已过期,请重试');
-
-                        return Redirect::back()->withInput($request->except(['verify_code']));
+                        return Redirect::back()->withInput($request->except(['verify_code']))->withErrors('验证码不合法,可能已过期,请重试');
                     }
 
                     $verifyCode->status = 1;
@@ -257,15 +210,12 @@ class AuthController extends Controller
                 }
             } elseif (self::$systemConfig['is_captcha']) { // 是否校验验证码
                 switch (self::$systemConfig['is_captcha']) {
-                    case 1:
-                        // Default Captcha
-                        if (!Captcha::check($captcha)) {
-                            Session::flash('errorMsg', '验证码错误,请重新输入');
-                            return Redirect::back()->withInput();
+                    case 1: // 默认图形验证码
+                        if (!Captcha::check($request->captcha)) {
+                            return Redirect::back()->withInput()->withErrors('验证码错误,请重新输入');
                         }
                         break;
-                    case 2:
-                        // Geetest
+                    case 2: // Geetest
                         $result = $this->validate($request, [
                             'geetest_challenge' => 'required|geetest'
                         ], [
@@ -273,22 +223,19 @@ class AuthController extends Controller
                         ]);
 
                         if (!$result) {
-                            Session::flash('errorMsg', trans('login.fail_captcha'));
-                            return Redirect::back()->withInput();
+                            return Redirect::back()->withInput()->withErrors(trans('login.fail_captcha'));
                         }
                         break;
-                    case 3:
-                        // Google reCAPTCHA
+                    case 3: // Google reCAPTCHA
                         $result = $this->validate($request, [
                             'g-recaptcha-response' => 'required|NoCaptcha'
                         ]);
+
                         if (!$result) {
-                            Session::flash('errorMsg', trans('login.fail_captcha'));
-                            return Redirect::back()->withInput();
+                            return Redirect::back()->withInput()->withErrors(trans('login.fail_captcha'));
                         }
                         break;
-                    default:
-                        # nothing..
+                    default: // 不启用验证码
                         break;
                 }
             }
@@ -298,39 +245,27 @@ class AuthController extends Controller
                 if (Cache::has($cacheKey)) {
                     $registerTimes = Cache::get($cacheKey);
                     if ($registerTimes >= self::$systemConfig['register_ip_limit']) {
-                        Session::flash('errorMsg', '系统已开启防刷机制,请勿频繁注册');
-
-                        return Redirect::back()->withInput($request->except(['code']));
+                        return Redirect::back()->withInput($request->except(['code']))->withErrors('系统已开启防刷机制,请勿频繁注册');
                     }
                 }
             }
 
-            // 校验用户名是否已存在
-            $exists = User::query()->where('username', $username)->exists();
-            if ($exists) {
-                Session::flash('errorMsg', '用户名已存在,请更换用户名');
-
-                return Redirect::back()->withInput();
-            }
-
             // 获取可用端口
             $port = self::$systemConfig['is_rand_port'] ? Helpers::getRandPort() : Helpers::getOnlyPort();
             if ($port > self::$systemConfig['max_port']) {
-                Session::flash('errorMsg', '用户已满,请联系管理员');
-
-                return Redirect::back()->withInput();
+                return Redirect::back()->withInput()->withErrors('系统不再接受新用户,请联系管理员');
             }
 
             // 获取aff
-            $affArr = $this->getAff($code, $aff);
+            $affArr = $this->getAff($request->code, intval($request->aff));
             $referral_uid = $affArr['referral_uid'];
 
             $transfer_enable = $referral_uid ? (self::$systemConfig['default_traffic'] + self::$systemConfig['referral_traffic']) * 1048576 : self::$systemConfig['default_traffic'] * 1048576;
 
             // 创建新用户
             $user = new User();
-            $user->username = $username;
-            $user->password = Hash::make($password);
+            $user->username = $request->username;
+            $user->password = Hash::make($request->password);
             $user->port = $port;
             $user->passwd = makeRandStr();
             $user->vmess_id = createGuid();
@@ -346,9 +281,7 @@ class AuthController extends Controller
 
             // 注册失败,抛出异常
             if (!$user->id) {
-                Session::flash('errorMsg', '注册失败,请联系管理员');
-
-                return Redirect::back()->withInput();
+                return Redirect::back()->withInput()->withErrors('注册失败,请联系管理员');
             }
 
             // 生成订阅码
@@ -399,12 +332,12 @@ class AuthController extends Controller
                 // 发送激活邮件
                 if (self::$systemConfig['is_active_register']) {
                     // 生成激活账号的地址
-                    $token = md5(self::$systemConfig['website_name'] . $username . microtime());
+                    $token = md5(self::$systemConfig['website_name'] . $request->username . microtime());
                     $activeUserUrl = self::$systemConfig['website_url'] . '/active/' . $token;
                     $this->addVerify($user->id, $token);
 
-                    $logId = Helpers::addEmailLog($username, '注册激活', '请求地址:' . $activeUserUrl);
-                    Mail::to($username)->send(new activeUser($logId, $activeUserUrl));
+                    $logId = Helpers::addEmailLog($request->username, '注册激活', '请求地址:' . $activeUserUrl);
+                    Mail::to($request->username)->send(new activeUser($logId, $activeUserUrl));
 
                     Session::flash('regSuccessMsg', '注册成功:激活邮件已发送,如未收到,请查看垃圾邮箱');
                 } else {
@@ -434,43 +367,36 @@ class AuthController extends Controller
     public function resetPassword(Request $request)
     {
         if ($request->isMethod('POST')) {
-            $username = trim($request->get('username'));
-
-            // 校验账号合法性
-            if (false === filter_var($username, FILTER_VALIDATE_EMAIL)) {
-                Session::flash('errorMsg', '用户名必须是合法邮箱,请重新输入');
-
-                return Redirect::back();
-            }
+            // 校验请求
+            $this->validate($request, [
+                'username' => 'required|email'
+            ], [
+                'username.required' => '请输入用户名',
+                'username.email'    => '用户名必须是合法邮箱'
+            ]);
 
             // 是否开启重设密码
             if (!self::$systemConfig['is_reset_password']) {
-                Session::flash('errorMsg', '系统未开启重置密码功能,请联系管理员');
-
-                return Redirect::back();
+                return Redirect::back()->withErrors('系统未开启重置密码功能,请联系管理员');
             }
 
             // 查找账号
-            $user = User::query()->where('username', $username)->first();
+            $user = User::query()->where('username', $request->username)->first();
             if (!$user) {
-                Session::flash('errorMsg', '账号不存在,请重试');
-
-                return Redirect::back();
+                return Redirect::back()->withErrors('账号不存在,请重试');
             }
 
             // 24小时内重设密码次数限制
             $resetTimes = 0;
-            if (Cache::has('resetPassword_' . md5($username))) {
-                $resetTimes = Cache::get('resetPassword_' . md5($username));
+            if (Cache::has('resetPassword_' . md5($request->username))) {
+                $resetTimes = Cache::get('resetPassword_' . md5($request->username));
                 if ($resetTimes >= self::$systemConfig['reset_password_times']) {
-                    Session::flash('errorMsg', '同一个账号24小时内只能重设密码' . self::$systemConfig['reset_password_times'] . '次,请勿频繁操作');
-
-                    return Redirect::back();
+                    return Redirect::back()->withErrors('同一个账号24小时内只能重设密码' . self::$systemConfig['reset_password_times'] . '次,请勿频繁操作');
                 }
             }
 
             // 生成取回密码的地址
-            $token = md5(self::$systemConfig['website_name'] . $username . microtime());
+            $token = md5(self::$systemConfig['website_name'] . $request->username . microtime());
             $verify = new Verify();
             $verify->type = 1;
             $verify->user_id = $user->id;
@@ -480,16 +406,13 @@ class AuthController extends Controller
 
             // 发送邮件
             $resetPasswordUrl = self::$systemConfig['website_url'] . '/reset/' . $token;
-            $title = '重置密码';
-            $content = '请求地址:' . $resetPasswordUrl;
 
-            $logId = Helpers::addEmailLog($username, $title, $content);
-            Mail::to($username)->send(new resetPassword($logId, $resetPasswordUrl));
+            $logId = Helpers::addEmailLog($request->username, '重置密码', '请求地址:' . $resetPasswordUrl);
+            Mail::to($request->username)->send(new resetPassword($logId, $resetPasswordUrl));
 
-            Cache::put('resetPassword_' . md5($username), $resetTimes + 1, 1440);
-            Session::flash('successMsg', '重置成功,请查看邮箱');
+            Cache::put('resetPassword_' . md5($request->username), $resetTimes + 1, 1440);
 
-            return Redirect::back();
+            return Redirect::back()->with('successMsg', '重置成功,请查看邮箱');
         } else {
             return Response::view('auth.resetPassword');
         }
@@ -498,77 +421,57 @@ class AuthController extends Controller
     // 重设密码
     public function reset(Request $request, $token)
     {
-        if ($request->isMethod('POST')) {
-            $password = trim($request->get('password'));
-            $repassword = trim($request->get('repassword'));
-
-            if (empty($token)) {
-                return Redirect::to('login');
-            } elseif (empty($password) || empty($repassword)) {
-                Session::flash('errorMsg', '密码不能为空');
-
-                return Redirect::back();
-            } elseif (md5($password) != md5($repassword)) {
-                Session::flash('errorMsg', '两次输入密码不一致,请重新输入');
+        if (!$token) {
+            return Redirect::to('login');
+        }
 
-                return Redirect::back();
-            }
+        if ($request->isMethod('POST')) {
+            $this->validate($request, [
+                'password'   => 'required|min:6',
+                'repassword' => 'required|same:password'
+            ], [
+                'password.required'   => '密码不能为空',
+                'password.min'        => '密码最少要6位数',
+                'repassword.required' => '密码不能为空',
+                'repassword.min'      => '密码最少要6位数',
+                'repassword.same'     => '两次输入密码不一致',
+            ]);
 
             // 校验账号
-            $verify = Verify::query()->where('type', 1)->where('token', $token)->with('User')->first();
-            if (empty($verify)) {
+            $verify = Verify::type(1)->with('user')->where('token', $token)->first();
+            if (!$verify) {
                 return Redirect::to('login');
             } elseif ($verify->status == 1) {
-                Session::flash('errorMsg', '该链接已失效');
-
-                return Redirect::back();
+                return Redirect::back()->withErrors('该链接已失效');
             } elseif ($verify->user->status < 0) {
-                Session::flash('errorMsg', '账号已被禁用');
-
-                return Redirect::back();
-            } elseif (Hash::check($password, $verify->user->password)) {
-                Session::flash('errorMsg', '新旧密码一样,请重新输入');
-
-                return Redirect::back();
+                return Redirect::back()->withErrors('账号已被禁用');
+            } elseif (Hash::check($request->password, $verify->user->password)) {
+                return Redirect::back()->withErrors('新旧密码一样,请重新输入');
             }
 
             // 更新密码
-            $ret = User::query()->where('id', $verify->user_id)->update(['password' => Hash::make($password)]);
+            $ret = User::query()->where('id', $verify->user_id)->update(['password' => Hash::make($request->password)]);
             if (!$ret) {
-                Session::flash('errorMsg', '重设密码失败');
-
-                return Redirect::back();
+                return Redirect::back()->withErrors('重设密码失败');
             }
 
             // 置为已使用
             $verify->status = 1;
             $verify->save();
 
-            Session::flash('successMsg', '新密码设置成功,请自行登录');
-
-            return Redirect::back();
+            return Redirect::back()->with('successMsg', '新密码设置成功,请自行登录');
         } else {
-            if (empty($token)) {
-                return Redirect::to('login');
-            }
-
-            $verify = Verify::query()->where('type', 1)->where('token', $token)->with('user')->first();
-            if (empty($verify)) {
+            $verify = Verify::type(1)->where('token', $token)->first();
+            if (!$verify) {
                 return Redirect::to('login');
             } elseif (time() - strtotime($verify->created_at) >= 1800) {
-                Session::flash('errorMsg', '该链接已过期');
-
                 // 置为已失效
                 $verify->status = 2;
                 $verify->save();
-
-                // 重新获取一遍verify
-                $view['verify'] = Verify::query()->where('type', 1)->where('token', $token)->with('user')->first();
-
-                return Response::view('auth.reset', $view);
             }
 
-            $view['verify'] = $verify;
+            // 重新获取一遍verify
+            $view['verify'] = Verify::type(1)->where('token', $token)->first();
 
             return Response::view('auth.reset', $view);
         }
@@ -578,44 +481,38 @@ class AuthController extends Controller
     public function activeUser(Request $request)
     {
         if ($request->isMethod('POST')) {
-            $username = trim($request->get('username'));
+            $this->validate($request, [
+                'username' => 'required|email|exists:user,username'
+            ], [
+                'username.required' => '请输入用户名',
+                'username.email'    => '用户名必须是合法邮箱',
+                'username.exists'   => '账号不存在,请重试'
+            ]);
 
             // 是否开启账号激活
             if (!self::$systemConfig['is_active_register']) {
-                Session::flash('errorMsg', '系统未开启账号激活功能,请联系管理员');
-
-                return Redirect::back()->withInput();
+                return Redirect::back()->withInput()->withErrors('系统未开启账号激活功能,请联系管理员');
             }
 
             // 查找账号
-            $user = User::query()->where('username', $username)->first();
-            if (!$user) {
-                Session::flash('errorMsg', '账号不存在,请重试');
-
-                return Redirect::back();
-            } elseif ($user->status < 0) {
-                Session::flash('errorMsg', '账号已禁止登陆,无需激活');
-
-                return Redirect::back();
+            $user = User::query()->where('username', $request->username)->first();
+            if ($user->status < 0) {
+                return Redirect::back()->withErrors('账号已封禁,请联系管理员');
             } elseif ($user->status > 0) {
-                Session::flash('errorMsg', '账号无需激活');
-
-                return Redirect::back();
+                return Redirect::back()->withErrors('账号状态正常,无需激活');
             }
 
             // 24小时内激活次数限制
             $activeTimes = 0;
-            if (Cache::has('activeUser_' . md5($username))) {
-                $activeTimes = Cache::get('activeUser_' . md5($username));
+            if (Cache::has('activeUser_' . md5($request->username))) {
+                $activeTimes = Cache::get('activeUser_' . md5($request->username));
                 if ($activeTimes >= self::$systemConfig['active_times']) {
-                    Session::flash('errorMsg', '同一个账号24小时内只能请求激活' . self::$systemConfig['active_times'] . '次,请勿频繁操作');
-
-                    return Redirect::back();
+                    return Redirect::back()->withErrors('同一个账号24小时内只能请求激活' . self::$systemConfig['active_times'] . '次,请勿频繁操作');
                 }
             }
 
             // 生成激活账号的地址
-            $token = md5(self::$systemConfig['website_name'] . $username . microtime());
+            $token = md5(self::$systemConfig['website_name'] . $request->username . microtime());
             $verify = new Verify();
             $verify->type = 1;
             $verify->user_id = $user->id;
@@ -625,16 +522,13 @@ class AuthController extends Controller
 
             // 发送邮件
             $activeUserUrl = self::$systemConfig['website_url'] . '/active/' . $token;
-            $title = '重新激活账号';
-            $content = '请求地址:' . $activeUserUrl;
 
-            $logId = Helpers::addEmailLog($username, $title, $content);
-            Mail::to($username)->send(new activeUser($logId, $activeUserUrl));
+            $logId = Helpers::addEmailLog($request->username, '激活账号', '请求地址:' . $activeUserUrl);
+            Mail::to($request->username)->send(new activeUser($logId, $activeUserUrl));
 
-            Cache::put('activeUser_' . md5($username), $activeTimes + 1, 1440);
-            Session::flash('successMsg', '激活邮件已发送,如未收到,请查看垃圾箱');
+            Cache::put('activeUser_' . md5($request->username), $activeTimes + 1, 1440);
 
-            return Redirect::back();
+            return Redirect::back()->with('successMsg', '激活邮件已发送,如未收到,请查看垃圾箱');
         } else {
             return Response::view('auth.activeUser');
         }
@@ -643,18 +537,18 @@ class AuthController extends Controller
     // 激活账号
     public function active(Request $request, $token)
     {
-        if (empty($token)) {
+        if (!$token) {
             return Redirect::to('login');
         }
 
-        $verify = Verify::query()->where('type', 1)->where('token', $token)->with('user')->first();
-        if (empty($verify)) {
+        $verify = Verify::type(1)->with('user')->where('token', $token)->first();
+        if (!$verify) {
             return Redirect::to('login');
         } elseif (empty($verify->user)) {
             Session::flash('errorMsg', '该链接已失效');
 
             return Response::view('auth.active');
-        } elseif ($verify->status == 1) {
+        } elseif ($verify->status > 0) {
             Session::flash('errorMsg', '该链接已失效');
 
             return Response::view('auth.active');
@@ -700,29 +594,25 @@ class AuthController extends Controller
     // 发送注册验证码
     public function sendCode(Request $request)
     {
-        $username = trim($request->get('username'));
-
-        if (!$username) {
-            return Response::json(['status' => 'fail', 'data' => '', 'message' => '请填入邮箱']);
-        }
-
-        // 校验账号合法性
-        if (false === filter_var($username, FILTER_VALIDATE_EMAIL)) {
-            return Response::json(['status' => 'fail', 'data' => '', 'message' => '邮箱地址不合法,请重新输入']);
+        $validator = Validator::make($request->all(), [
+            'username' => 'required|email|unique:user'
+        ], [
+            'username.required' => '请填入邮箱',
+            'username.email'    => '邮箱地址不合法,请重新输入',
+            'username.unique'   => '用户已存在,如果忘记密码请找回密码'
+        ]);
+
+        if ($validator->fails()) {
+            return Response::json(['status' => 'fail', 'data' => '', 'message' => $validator->getMessageBag()->first()]);
         }
 
         // 校验域名邮箱是否在敏感词中
         $sensitiveWords = $this->sensitiveWords();
-        $usernameSuffix = explode('@', $username); // 提取邮箱后缀
+        $usernameSuffix = explode('@', $request->username); // 提取邮箱后缀
         if (in_array(strtolower($usernameSuffix[1]), $sensitiveWords)) {
             return Response::json(['status' => 'fail', 'data' => '', 'message' => '邮箱含有敏感词,请重新输入']);
         }
 
-        $user = User::query()->where('username', $username)->first();
-        if ($user) {
-            return Response::json(['status' => 'fail', 'data' => '', 'message' => '用户已存在,无需注册,如果忘记密码请找回密码']);
-        }
-
         // 是否开启注册发送验证码
         if (!self::$systemConfig['is_verify_register']) {
             return Response::json(['status' => 'fail', 'data' => '', 'message' => '系统未启用通过验证码注册']);
@@ -735,13 +625,10 @@ class AuthController extends Controller
 
         // 发送邮件
         $code = makeRandStr(6, true);
-        $title = '发送注册验证码';
-        $content = '验证码:' . $code;
-
-        $logId = Helpers::addEmailLog($username, $title, $content);
-        Mail::to($username)->send(new sendVerifyCode($logId, $code));
+        $logId = Helpers::addEmailLog($request->username, '发送注册验证码', '验证码:' . $code);
+        Mail::to($request->username)->send(new sendVerifyCode($logId, $code));
 
-        $this->addVerifyCode($username, $code);
+        $this->addVerifyCode($request->username, $code);
 
         Cache::put('send_verify_code_' . md5(getClientIP()), getClientIP(), 1);
 
@@ -768,7 +655,7 @@ class AuthController extends Controller
      * 添加用户登录日志
      *
      * @param string $userId 用户ID
-     * @param string $ip IP地址
+     * @param string $ip     IP地址
      */
     private function addUserLoginLog($userId, $ip)
     {
@@ -816,7 +703,7 @@ class AuthController extends Controller
      * 获取AFF
      *
      * @param string $code 邀请码
-     * @param string $aff URL中的aff参数
+     * @param int    $aff  URL中的aff参数
      *
      * @return array
      */

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

@@ -119,9 +119,9 @@ class CouponController extends Controller
     // 导出卡券
     public function exportCoupon(Request $request)
     {
-        $cashCouponList = Coupon::query()->where('status', 0)->where('type', 1)->get();
-        $discountCouponList = Coupon::query()->where('status', 0)->where('type', 2)->get();
-        $chargeCouponList = Coupon::query()->where('status', 0)->where('type', 3)->get();
+        $cashCouponList = Coupon::type(1)->where('status', 0)->get();
+        $discountCouponList = Coupon::type(2)->where('status', 0)->get();
+        $chargeCouponList = Coupon::type(3)->where('status', 0)->get();
 
         $filename = '卡券' . date('Ymd') . '.xlsx';
         $spreadsheet = new Spreadsheet();

+ 25 - 49
app/Http/Controllers/UserController.php

@@ -34,6 +34,7 @@ use Log;
 use DB;
 use Auth;
 use Hash;
+use Validator;
 
 /**
  * 用户控制器
@@ -287,51 +288,35 @@ class UserController extends Controller
             // 修改密码
             if ($old_password && $new_password) {
                 if (!Hash::check($old_password, Auth::user()->password)) {
-                    Session::flash('errorMsg', '旧密码错误,请重新输入');
-
-                    return Redirect::to('profile#tab_1');
+                    return Redirect::to('profile#tab_1')->withErrors('旧密码错误,请重新输入');
                 } elseif (Hash::check($new_password, Auth::user()->password)) {
-                    Session::flash('errorMsg', '新密码不可与旧密码一样,请重新输入');
-
-                    return Redirect::to('profile#tab_1');
+                    return Redirect::to('profile#tab_1')->withErrors('新密码不可与旧密码一样,请重新输入');
                 }
 
                 // 演示环境禁止改管理员密码
                 if (env('APP_DEMO') && Auth::user()->id == 1) {
-                    Session::flash('errorMsg', '演示环境禁止修改管理员密码');
-
-                    return Redirect::to('profile#tab_1');
+                    return Redirect::to('profile#tab_1')->withErrors('演示环境禁止修改管理员密码');
                 }
 
                 $ret = User::uid()->update(['password' => Hash::make($new_password)]);
                 if (!$ret) {
-                    Session::flash('errorMsg', '修改失败');
-
-                    return Redirect::to('profile#tab_1');
+                    return Redirect::to('profile#tab_1')->withErrors('修改失败');
                 } else {
-                    Session::flash('successMsg', '修改成功');
-
-                    return Redirect::to('profile#tab_1');
+                    return Redirect::to('profile#tab_1')->with('successMsg', '修改成功');
                 }
             }
 
             // 修改联系方式
             if ($wechat || $qq) {
                 if (empty(clean($wechat)) && empty(clean($qq))) {
-                    Session::flash('errorMsg', '修改失败');
-
-                    return Redirect::to('profile#tab_2');
+                    return Redirect::to('profile#tab_2')->withErrors('修改失败');
                 }
 
                 $ret = User::uid()->update(['wechat' => $wechat, 'qq' => $qq]);
                 if (!$ret) {
-                    Session::flash('errorMsg', '修改失败');
-
-                    return Redirect::to('profile#tab_2');
+                    return Redirect::to('profile#tab_2')->withErrors('修改失败');
                 } else {
-                    Session::flash('successMsg', '修改成功');
-
-                    return Redirect::to('profile#tab_2');
+                    return Redirect::to('profile#tab_2')->with('successMsg', '修改成功');
                 }
             }
 
@@ -339,23 +324,15 @@ class UserController extends Controller
             if ($passwd) {
                 $ret = User::uid()->update(['passwd' => $passwd]);
                 if (!$ret) {
-                    Session::flash('errorMsg', '修改失败');
-
-                    return Redirect::to('profile#tab_3');
+                    return Redirect::to('profile#tab_3')->withErrors('修改失败');
                 } else {
-                    Session::flash('successMsg', '修改成功');
-
-                    return Redirect::to('profile#tab_3');
+                    return Redirect::to('profile#tab_3')->with('successMsg', '修改成功');
                 }
             }
 
-            Session::flash('errorMsg', '非法请求');
-
-            return Redirect::to('profile#tab_1');
+            return Redirect::to('profile#tab_1')->withErrors('非法请求');
         } else {
-            $view['info'] = User::uid()->first();
-
-            return Response::view('user.profile', $view);
+            return Response::view('user.profile');
         }
     }
 
@@ -442,10 +419,7 @@ class UserController extends Controller
     {
         $id = intval($request->get('id'));
 
-        $ticket = Ticket::query()->with('user')->where('id', $id)->first();
-        if (empty($ticket) || $ticket->user_id != Auth::user()->id) {
-            return Redirect::to('tickets');
-        }
+        $ticket = Ticket::uid()->with('user')->where('id', $id)->firstOrFail();
 
         if ($request->isMethod('POST')) {
             $content = clean($request->get('content'));
@@ -899,26 +873,28 @@ class UserController extends Controller
     // 卡券余额充值
     public function charge(Request $request)
     {
-        $coupon_sn = trim($request->get('coupon_sn'));
-        if (empty($coupon_sn)) {
-            return Response::json(['status' => 'fail', 'data' => '', 'message' => '券码不能为空']);
+        $validator = Validator::make($request->all(), [
+            'coupon_sn' => 'required'
+        ], [
+            'coupon_sn.required' => '券码不能为空'
+        ]);
+
+        if ($validator->fails()) {
+            return Response::json(['status' => 'fail', 'data' => '', 'message' => $validator->getMessageBag()->first()]);
         }
 
-        $coupon = Coupon::query()->where('sn', $coupon_sn)->where('type', 3)->where('status', 0)->first();
+        $coupon = Coupon::type(3)->where('sn', $request->coupon_sn)->where('status', 0)->first();
         if (!$coupon) {
             return Response::json(['status' => 'fail', 'data' => '', 'message' => '该券不可用']);
         }
 
         DB::beginTransaction();
         try {
-            $user = User::uid()->first();
-
             // 写入日志
-            $this->addUserBalanceLog($user->id, 0, $user->balance, $user->balance + $coupon->amount, $coupon->amount, '用户手动充值 - [充值券:' . $coupon_sn . ']');
+            $this->addUserBalanceLog(Auth::user()->id, 0, Auth::user()->balance, Auth::user()->balance + $coupon->amount, $coupon->amount, '用户手动充值 - [充值券:' . $request->coupon_sn . ']');
 
             // 余额充值
-            $user->balance = $user->balance + $coupon->amount;
-            $user->save();
+            User::uid()->increment('balance', $coupon->amount);
 
             // 更改卡券状态
             $coupon->status = 1;

+ 6 - 0
app/Http/Models/Coupon.php

@@ -20,6 +20,12 @@ class Coupon extends Model
     protected $primaryKey = 'id';
     protected $dates = ['deleted_at'];
 
+    // 筛选类型
+    function scopeType($query, $type)
+    {
+        return $query->where('type', $type);
+    }
+
     function getAmountAttribute($value)
     {
         return $value / 100;

+ 2 - 2
app/Http/Models/Device.php

@@ -17,7 +17,7 @@ class Device extends Model
     protected $primaryKey = 'id';
     public $timestamps = false;
 
-    public function getTypeLabelAttribute()
+    function getTypeLabelAttribute()
     {
         switch ($this->attributes['type']) {
             case 1:
@@ -33,7 +33,7 @@ class Device extends Model
         return $type_label;
     }
 
-    public function getPlatformLabelAttribute()
+    function getPlatformLabelAttribute()
     {
         switch ($this->attributes['platform']) {
             case 1:

+ 1 - 1
app/Http/Models/Goods.php

@@ -34,7 +34,7 @@ class Goods extends Model
         $this->attributes['price'] = $value * 100;
     }
 
-    public function getTrafficLabelAttribute()
+    function getTrafficLabelAttribute()
     {
         $traffic_label = flowAutoShow($this->attributes['traffic'] * 1048576);
 

+ 3 - 3
app/Http/Models/Invite.php

@@ -21,17 +21,17 @@ class Invite extends Model
     protected $primaryKey = 'id';
     protected $dates = ['deleted_at'];
 
-    public function scopeUid($query)
+    function scopeUid($query)
     {
         return $query->where('uid', Auth::user()->id);
     }
 
-    public function Generator()
+    function generator()
     {
         return $this->hasOne(User::class, 'id', 'uid');
     }
 
-    public function User()
+    function user()
     {
         return $this->hasOne(User::class, 'id', 'fuid');
     }

+ 1 - 1
app/Http/Models/Marketing.php

@@ -17,7 +17,7 @@ class Marketing extends Model
     protected $primaryKey = 'id';
     protected $appends = ['status_label'];
 
-    public function getStatusLabelAttribute()
+    function getStatusLabelAttribute()
     {
         $status_label = '';
         switch ($this->attributes['status']) {

+ 2 - 2
app/Http/Models/Order.php

@@ -18,7 +18,7 @@ class Order extends Model
     protected $primaryKey = 'oid';
     protected $appends = ['status_label'];
 
-    public function scopeUid($query)
+    function scopeUid($query)
     {
         return $query->where('user_id', Auth::user()->id);
     }
@@ -63,7 +63,7 @@ class Order extends Model
         return $this->attributes['amount'] = $value * 100;
     }
 
-    public function getStatusLabelAttribute()
+    function getStatusLabelAttribute()
     {
         switch ($this->attributes['status']) {
             case -1:

+ 5 - 5
app/Http/Models/Payment.php

@@ -18,17 +18,17 @@ class Payment extends Model
     protected $primaryKey = 'id';
     protected $appends = ['status_label'];
 
-    public function scopeUid($query)
+    function scopeUid($query)
     {
         return $query->where('user_id', Auth::user()->id);
     }
 
-    public function user()
+    function user()
     {
         return $this->belongsTo(User::class, 'user_id', 'id');
     }
 
-    public function order()
+    function order()
     {
         return $this->belongsTo(Order::class, 'oid', 'oid');
     }
@@ -44,7 +44,7 @@ class Payment extends Model
     }
 
     // 订单状态
-    public function getStatusLabelAttribute()
+    function getStatusLabelAttribute()
     {
         switch ($this->attributes['status']) {
             case -1:
@@ -62,7 +62,7 @@ class Payment extends Model
     }
 
     // 支付方式
-    public function getPayWayLabelAttribute()
+    function getPayWayLabelAttribute()
     {
         switch ($this->attributes['pay_way']) {
             case 1:

+ 1 - 1
app/Http/Models/PaymentCallback.php

@@ -17,7 +17,7 @@ class PaymentCallback extends Model
     protected $primaryKey = 'id';
     protected $appends = ['status_label'];
 
-    public function getStatusLabelAttribute()
+    function getStatusLabelAttribute()
     {
         $status_label = '';
         switch ($this->attributes['status']) {

+ 2 - 0
app/Http/Models/SsConfig.php

@@ -17,11 +17,13 @@ class SsConfig extends Model
     protected $primaryKey = 'id';
     public $timestamps = false;
 
+    // 筛选默认
     function scopeDefault($query)
     {
         $query->where('is_default', 1);
     }
 
+    // 筛选类型
     function scopeType($query, $type)
     {
         $query->where('type', $type);

+ 1 - 1
app/Http/Models/SsNode.php

@@ -16,7 +16,7 @@ class SsNode extends Model
     protected $table = 'ss_node';
     protected $primaryKey = 'id';
 
-    public function label()
+    function label()
     {
         return $this->hasMany(SsNodeLabel::class, 'node_id', 'id');
     }

+ 2 - 2
app/Http/Models/SsNodeIp.php

@@ -16,12 +16,12 @@ class SsNodeIp extends Model
     protected $table = 'ss_node_ip';
     protected $primaryKey = 'id';
 
-    public function node()
+    function node()
     {
         return $this->belongsTo(SsNode::class, 'node_id', 'id');
     }
 
-    public function user()
+    function user()
     {
         return $this->belongsTo(User::class, 'port', 'port');
     }

+ 1 - 1
app/Http/Models/SsNodeLabel.php

@@ -18,7 +18,7 @@ class SsNodeLabel extends Model
     protected $primaryKey = 'id';
     public $timestamps = false;
 
-    public function labelInfo()
+    function labelInfo()
     {
         return $this->hasOne(Label::class, 'id', 'label_id');
     }

+ 1 - 1
app/Http/Models/SsNodeTrafficDaily.php

@@ -16,7 +16,7 @@ class SsNodeTrafficDaily extends Model
     protected $table = 'ss_node_traffic_daily';
     protected $primaryKey = 'id';
 
-    public function info()
+    function info()
     {
         return $this->hasOne(SsNode::class, 'id', 'node_id');
     }

+ 1 - 1
app/Http/Models/SsNodeTrafficHourly.php

@@ -16,7 +16,7 @@ class SsNodeTrafficHourly extends Model
     protected $table = 'ss_node_traffic_hourly';
     protected $primaryKey = 'id';
 
-    public function info()
+    function info()
     {
         return $this->hasOne(SsNode::class, 'id', 'node_id');
     }

+ 2 - 2
app/Http/Models/Ticket.php

@@ -17,12 +17,12 @@ class Ticket extends Model
     protected $table = 'ticket';
     protected $primaryKey = 'id';
 
-    public function scopeUid($query)
+    function scopeUid($query)
     {
         return $query->where('user_id', Auth::user()->id);
     }
 
-    public function User()
+    function user()
     {
         return $this->hasOne(User::class, 'id', 'user_id');
     }

+ 1 - 1
app/Http/Models/TicketReply.php

@@ -16,7 +16,7 @@ class TicketReply extends Model
     protected $table = 'ticket_reply';
     protected $primaryKey = 'id';
 
-    public function User()
+    function user()
     {
         return $this->hasOne(User::class, 'id', 'user_id');
     }

+ 1 - 1
app/Http/Models/User.php

@@ -19,7 +19,7 @@ class User extends Authenticatable
     protected $table = 'user';
     protected $primaryKey = 'id';
 
-    public function scopeUid($query)
+    function scopeUid($query)
     {
         return $query->where('id', Auth::user()->id);
     }

+ 1 - 1
app/Http/Models/UserBalanceLog.php

@@ -17,7 +17,7 @@ class UserBalanceLog extends Model
     protected $primaryKey = 'id';
     public $timestamps = false;
 
-    public function User()
+    function user()
     {
         return $this->hasOne(User::class, 'id', 'user_id');
     }

+ 1 - 1
app/Http/Models/UserBanLog.php

@@ -16,7 +16,7 @@ class UserBanLog extends Model
     protected $table = 'user_ban_log';
     protected $primaryKey = 'id';
 
-    public function User()
+    function user()
     {
         return $this->hasOne(User::class, 'id', 'user_id');
     }

+ 1 - 1
app/Http/Models/UserLabel.php

@@ -18,7 +18,7 @@ class UserLabel extends Model
     protected $primaryKey = 'id';
     public $timestamps = false;
 
-    public function scopeUid($query)
+    function scopeUid($query)
     {
         return $query->where('user_id', Auth::user()->id);
     }

+ 1 - 1
app/Http/Models/UserScoreLog.php

@@ -17,7 +17,7 @@ class UserScoreLog extends Model
     protected $primaryKey = 'id';
     public $timestamps = false;
 
-    public function User()
+    function user()
     {
         return $this->hasOne(User::class, 'id', 'user_id');
     }

+ 1 - 1
app/Http/Models/UserTrafficDaily.php

@@ -16,7 +16,7 @@ class UserTrafficDaily extends Model
     protected $table = 'user_traffic_daily';
     protected $primaryKey = 'id';
 
-    public function node()
+    function node()
     {
         return $this->hasOne(SsNode::class, 'id', 'node_id');
     }

+ 1 - 1
app/Http/Models/UserTrafficHourly.php

@@ -16,7 +16,7 @@ class UserTrafficHourly extends Model
     protected $table = 'user_traffic_hourly';
     protected $primaryKey = 'id';
 
-    public function node()
+    function node()
     {
         return $this->hasOne(SsNode::class, 'id', 'node_id');
     }

+ 2 - 2
app/Http/Models/UserTrafficLog.php

@@ -18,13 +18,13 @@ class UserTrafficLog extends Model
     public $timestamps = false;
 
     // 关联账号
-    public function user()
+    function user()
     {
         return $this->belongsTo(User::class, 'user_id', 'id');
     }
 
     // 关联节点
-    public function node()
+    function node()
     {
         return $this->belongsTo(SsNode::class, 'node_id', 'id');
     }

+ 2 - 2
app/Http/Models/UserTrafficModifyLog.php

@@ -17,13 +17,13 @@ class UserTrafficModifyLog extends Model
     protected $primaryKey = 'id';
 
     // 关联账号
-    public function User()
+    function user()
     {
         return $this->hasOne(User::class, 'id', 'user_id');
     }
 
     // 关联订单
-    public function Order()
+    function order()
     {
         return $this->hasOne(Order::class, 'oid', 'order_id');
     }

+ 7 - 1
app/Http/Models/Verify.php

@@ -16,7 +16,13 @@ class Verify extends Model
     protected $table = 'verify';
     protected $primaryKey = 'id';
 
-    public function User()
+    // 筛选类型
+    function scopeType($query, $type)
+    {
+        return $query->where('type', $type);
+    }
+
+    function user()
     {
         return $this->hasOne(User::class, 'id', 'user_id');
     }

+ 5 - 6
resources/views/auth/activeUser.blade.php

@@ -4,18 +4,17 @@
     <link href="/assets/pages/css/login-2.min.css" rel="stylesheet" type="text/css" />
 @endsection
 @section('content')
-    @if (Session::get('errorMsg'))
-        <div class="alert alert-danger">
-            <button class="close" data-close="alert"></button>
-            <span> {{Session::get('errorMsg')}} </span>
-        </div>
-    @endif
     @if (Session::get('successMsg'))
         <div class="alert alert-success">
             <button class="close" data-close="alert"></button>
             <span> {{Session::get('successMsg')}} </span>
         </div>
     @endif
+    @if($errors->any())
+        <div class="alert alert-danger">
+            <span> {{$errors->first()}} </span>
+        </div>
+    @endif
     <!-- BEGIN FORGOT PASSWORD FORM -->
     <form class="forget-form" action="{{url('activeUser')}}" method="post" style="display: block;">
         @if(\App\Components\Helpers::systemConfig()['is_active_register'])

+ 2 - 3
resources/views/auth/login.blade.php

@@ -19,10 +19,9 @@
 @section('content')
     <!-- BEGIN LOGIN FORM -->
     <form class="login-form" action="{{url('login')}}" id="login-form" method="post">
-        @if (Session::get('errorMsg'))
+        @if($errors->any())
             <div class="alert alert-danger">
-                <button class="close" data-close="alert"></button>
-                <span> {!! Session::get('errorMsg') !!} </span>
+                <span> {!! $errors->first() !!} </span>
             </div>
         @endif
         @if (Session::get('regSuccessMsg'))

+ 16 - 22
resources/views/auth/register.blade.php

@@ -20,10 +20,9 @@
     <!-- BEGIN REGISTRATION FORM -->
     <form class="register-form" id="register-form" action="{{url('register')}}" method="post" style="display: block;">
         @if(\App\Components\Helpers::systemConfig()['is_register'])
-            @if(Session::get('errorMsg'))
+            @if($errors->any())
                 <div class="alert alert-danger">
-                    <button class="close" data-close="alert"></button>
-                    <span> {{Session::get('errorMsg')}} </span>
+                    <span> {{$errors->first()}} </span>
                 </div>
             @endif
             <div class="form-group">
@@ -36,7 +35,7 @@
             @if(\App\Components\Helpers::systemConfig()['is_verify_register'])
                 <div class="form-group" style="margin-bottom:75px;">
                     <label class="control-label visible-ie8 visible-ie9">验证码</label>
-                    <input class="form-control placeholder-no-fix" style="width:60%;float:left;" type="text" autocomplete="off" placeholder="验证码" name="verify_code" value="" required />
+                    <input class="form-control placeholder-no-fix" style="width:60%;float:left;" type="text" autocomplete="off" placeholder="验证码" name="verify_code" value="{{Request::old('verify_code')}}" required />
                     <input type="button" class="btn grey" id="sendCode" value="发送" style="float:right;" onclick="sendVerifyCode()" >
                 </div>
             @endif
@@ -115,23 +114,18 @@
         // 服务条款
         function showTnc() {
             layer.open({
-                type: 1
-                ,title: false //不显示标题栏
-                ,closeBtn: false
-                ,area: '500px;'
-                ,shade: 0.8
-                ,id: 'tnc' //设定一个id,防止重复弹出
-                ,resize: false
-                ,btn: ['{{trans('register.tnc_title')}}']
-                ,btnAlign: 'c'
-                ,moveType: 1 //拖拽模式,0或者1
-                ,content: '<div style="padding: 20px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">{!! trans('register.tnc_content') !!}</div>'
-                ,success: function(layero){
-//                var btn = layero.find('.layui-layer-btn');
-//                btn.find('.layui-layer-btn0').attr({
-//                    href: 'http://www.layui.com/'
-//                    ,target: '_blank'
-//                });
+                type: 1,
+                title: false, //不显示标题栏
+                closeBtn: false,
+                area: '500px;',
+                shade: 0.8,
+                id: 'tnc', //设定一个id,防止重复弹出
+                resize: false,
+                btn: ['{{trans('register.tnc_title')}}'],
+                btnAlign: 'c',
+                moveType: 1, //拖拽模式,0或者1
+                content: '<div style="padding: 20px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">{!! trans('register.tnc_content') !!}</div>',
+                success: function(layero){
                 }
             });
         }
@@ -158,7 +152,7 @@
                         $("#sendCode").attr('disabled', false);
                         flag = false;
                     } else {
-                        layer.alert('验证码已发送至您的邮箱,请稍作等待或查看垃圾箱');
+                        layer.alert('验证码已发送至您的邮箱,请稍作等待或查看垃圾箱', {icon:1, title:'提示'});
                         $("#sendCode").attr('disabled', true);
                         flag = true;
                     }

+ 6 - 9
resources/views/auth/reset.blade.php

@@ -6,21 +6,18 @@
 @section('content')
     <!-- BEGIN REGISTRATION FORM -->
     <form class="register-form" action="{{url(Request::getRequestUri())}}" method="post" style="display: block;">
-        @if(Session::get('errorMsg'))
-            <div class="alert alert-danger">
-                <button class="close" data-close="alert"></button>
-                <span> {{Session::get('errorMsg')}} </span>
-            </div>
-        @endif
         @if(Session::get('successMsg'))
             <div class="alert alert-success">
-                <button class="close" data-close="alert"></button>
                 <span> {{Session::get('successMsg')}} </span>
             </div>
         @endif
-        @if ($verify->status > 0 && empty(Session::get('errorMsg')) && empty(Session::get('successMsg')))
+        @if($errors->any())
+            <div class="alert alert-danger">
+                <span> {{$errors->first()}} </span>
+            </div>
+        @endif
+        @if ($verify->status > 0 && count($errors) <= 0 && empty(Session::get('successMsg')))
             <div class="alert alert-danger">
-                <button class="close" data-close="alert"></button>
                 <span> 该链接已失效 </span>
             </div>
         @else

+ 5 - 9
resources/views/auth/resetPassword.blade.php

@@ -4,19 +4,16 @@
     <link href="/assets/pages/css/login-2.min.css" rel="stylesheet" type="text/css" />
 @endsection
 @section('content')
-    @if (Session::get('errorMsg'))
-        <div class="alert alert-danger">
-            <button class="close" data-close="alert"></button>
-            <span> {{Session::get('errorMsg')}} </span>
-        </div>
-    @endif
     @if (Session::get('successMsg'))
         <div class="alert alert-success">
-            <button class="close" data-close="alert"></button>
             <span> {{Session::get('successMsg')}} </span>
         </div>
     @endif
-    <!-- BEGIN FORGOT PASSWORD FORM -->
+    @if($errors->any())
+        <div class="alert alert-danger">
+            <span> {{$errors->first()}} </span>
+        </div>
+    @endif
     <form class="forget-form" action="{{url('resetPassword')}}" method="post" style="display: block;">
         @if(\App\Components\Helpers::systemConfig()['is_reset_password'])
             <div class="form-title">
@@ -38,7 +35,6 @@
             @endif
         </div>
     </form>
-    <!-- END FORGOT PASSWORD FORM -->
 @endsection
 @section('script')
     <script type="text/javascript">

+ 6 - 7
resources/views/user/profile.blade.php

@@ -14,10 +14,9 @@
                         {{Session::get('successMsg')}}
                     </div>
                 @endif
-                @if (Session::has('errorMsg'))
-                    <div class="alert alert-danger alert-dismissable">
-                        <button type="button" class="close" data-dismiss="alert" aria-hidden="true"></button>
-                        <strong>{{trans('home.error')}}:</strong> {{Session::get('errorMsg')}}
+                @if($errors->any())
+                    <div class="alert alert-danger">
+                        <span> {{$errors->first()}} </span>
                     </div>
                 @endif
                 <!-- BEGIN PROFILE CONTENT -->
@@ -68,12 +67,12 @@
                                             <form action="{{url('profile')}}" method="post" enctype="multipart/form-data" class="form-bordered">
                                                 <div class="form-group">
                                                     <label class="control-label">{{trans('home.wechat')}}</label>
-                                                    <input type="text" class="form-control" name="wechat" value="{{$info->wechat}}" id="wechat" required />
+                                                    <input type="text" class="form-control" name="wechat" value="{{Auth::user()->wechat}}" id="wechat" required />
                                                     <input type="hidden" name="_token" value="{{csrf_token()}}" />
                                                 </div>
                                                 <div class="form-group">
                                                     <label class="control-label"> QQ </label>
-                                                    <input type="text" class="form-control" name="qq" value="{{$info->qq}}" id="qq" required />
+                                                    <input type="text" class="form-control" name="qq" value="{{Auth::user()->qq}}" id="qq" required />
                                                 </div>
                                                 <div class="form-actions">
                                                     <div class="row">
@@ -88,7 +87,7 @@
                                             <form action="{{url('profile')}}" method="post" enctype="multipart/form-data" class="form-bordered">
                                                 <div class="form-group">
                                                     <label class="control-label"> {{trans('home.connection_password')}} </label>
-                                                    <input type="text" class="form-control" name="passwd" value="{{$info->passwd}}" id="passwd" required />
+                                                    <input type="text" class="form-control" name="passwd" value="{{Auth::user()->passwd}}" id="passwd" required />
                                                     <input type="hidden" name="_token" value="{{csrf_token()}}" />
                                                 </div>
                                                 <div class="form-actions">

+ 1 - 0
sql/db.sql

@@ -418,6 +418,7 @@ CREATE TABLE `invite` (
   `dateline` datetime DEFAULT NULL COMMENT '有效期至',
   `created_at` datetime DEFAULT NULL,
   `updated_at` datetime DEFAULT NULL,
+  `deleted_at` datetime DEFAULT NULL COMMENT '删除时间',
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='邀请码表';
 

Some files were not shown because too many files changed in this diff