diff --git a/app/Http/Controllers/Admin/MemberController.php b/app/Http/Controllers/Admin/MemberController.php index 006d349..d264dbf 100644 --- a/app/Http/Controllers/Admin/MemberController.php +++ b/app/Http/Controllers/Admin/MemberController.php @@ -11,7 +11,6 @@ class MemberController extends Controller public function index() { $data = Member::paginate(20); - return view('admin.member.index', ['data' => $data]); } } diff --git a/app/Http/Controllers/front/RegisterController.php b/app/Http/Controllers/front/RegisterController.php index 0d1aca9..a9e8e09 100644 --- a/app/Http/Controllers/front/RegisterController.php +++ b/app/Http/Controllers/front/RegisterController.php @@ -4,6 +4,9 @@ use App\Http\Controllers\Controller; use App\Models\Member; use Illuminate\Http\Request; +use Exception; +use App\Models\EmailVerifications; +use Mail; class RegisterController extends Controller { @@ -41,6 +44,111 @@ public function create(Request $request) } + + + public function forgotPassword(Request $request) + { + + return view('front.auth.forgot-password'); + } + + public function sendForgotPassword(Request $request) + { + \Log::info('sendForgotPassword', []); + $subject = "卡菲姬系統-密碼重新設定"; + $token = \Str::random(32); + $result = Member::where('email', $request->email)->first(); + + try { + if (!isset($result)) { + throw new Exception("找不到帳號", 404); + } else { + $verificationLink = route('reset.password.token', ['token' => $token, 'id' => $result->id]); + + \Log::info('sendForgotPassword go EmailVerifications', []); + $res = EmailVerifications::where('email', $request->email)->first(); + if ($res) { + + $res->email = $request->email; + $res->token = $token; + $res->save(); + + } else { + EmailVerifications::create([ + 'email' => $request->email, + 'token' => $token, + ]); + + } + + + } + // 郵件內容 + $message = "您好,\n\n請點擊以下鏈更換您的電子郵件地址:\n\n" . $verificationLink . "\n\n如果您未請求此操作,請忽略此郵件。\n\n感謝您!"; + // 發送電子郵件 + Mail::to($request->input('email'))->send(new \App\Mail\CustomMail($subject, $message)); + return response()->json(['status' => 'success', 'msg' => '郵件發送成功']); + } catch (\Exception $e) { + \Log::error('Failed to send mail', ['error' => $e->getMessage()]); + return response()->json(['status' => 'error', 'msg' => '郵件發送失敗,請稍後再試!', 'error' => $e->getMessage()], 500); + } + } + + public function resetPassword(Request $request) + { + $valid = true; + $request->validate([ + 'token' => 'required', + ]); + + $emailVerification = EmailVerifications::where('token', $request->token)->first(); + + if (!$emailVerification) { + $valid = false; + } + + $member = Member::where('email', $emailVerification->email)->firstOrFail(); + + if (!$member) { + $valid = false; + } + + // 刪除使用過的令牌 + $emailVerification->delete(); + + if ($valid == true) { + + return redirect()->route('change.password', ['id', $member->id]); + + + } else { + + return redirect()->route('front.login.view')->with('error', '驗證密碼token 失敗'); + } + + + } + + public function changePassword(Request $request) + { + + return view('front.auth.confirmpassword'); + } + + public function confrimPassword(Request $request) + { + + + return view('front.auth.confirmpassword'); + + } + + public function resetPasswordProcess($id, Request $request) + { + + + } + /** * Store a newly created resource in storage. */ diff --git a/app/Models/Member.php b/app/Models/Member.php index 127edad..7f1281c 100644 --- a/app/Models/Member.php +++ b/app/Models/Member.php @@ -2,9 +2,11 @@ namespace App\Models; +use App; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Laravel\Sanctum\HasApiTokens; +use App\Models\Promocode; class Member extends Authenticatable { @@ -58,4 +60,11 @@ public function getLevelNameAttribute() protected $casts = [ 'email_verified_at' => 'datetime', ]; + + + public function getPromoCode() + { + return $this->hasOne(Promocode::class, 'used_count', 'id'); + } + } diff --git a/resources/views/admin/member/index.blade.php b/resources/views/admin/member/index.blade.php index e020cbb..b228a29 100644 --- a/resources/views/admin/member/index.blade.php +++ b/resources/views/admin/member/index.blade.php @@ -2,193 +2,191 @@ @section('header') @endsection @section('content') -
會員共計
-(+29%)
-普通會員
-(+18%)
-白銀會員
-(-14%)
-白金會員
-(+42%)
-| 會員id | -會員名稱 | -手機號碼 | -會員等級 | -兌換碼 | -操 作 | -
|---|---|---|---|---|---|
| {{$item->id}} | -
-
-
-
-
-
-
-
-
- {{$item->name}}
- {{$item->email}}
-
- |
-
- {{$item->phone}} | -- - - @if($item->level == 0) - - @elseif($item->level == 1) - - @elseif($item->level == 2) - - - @endif - - {{$item->Level_Name}} - - - - | -未實作 | -- |
會員共計
+(+29%)
+普通會員
+(+18%)
+白銀會員
+(-14%)
+白金會員
+(+42%)
+| 會員id | +會員名稱 | +手機號碼 | +會員等級 | +兌換碼 | +操 作 | +
|---|---|---|---|---|---|
| {{ $item->id }} | +
+
+
+
+
+
+
+
+
+ {{ $item->name }}
+ {{ $item->email }}
+
+ |
+
+ {{ $item->phone }} | ++ + @if ($item->level == 0) + + @elseif($item->level == 1) + + @elseif($item->level == 2) + + @endif + + {{ $item->Level_Name }} + + | +{{ $item->getPromoCode->code }} + | ++ |
請設定新密碼
+ +
+
+