95 lines
2.9 KiB
PHP
95 lines
2.9 KiB
PHP
<?php
|
|
namespace App\Http\Controllers\front;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\EmailVerifications;
|
|
use App\Models\Member;
|
|
use App\Models\Promocode;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Http\Request;
|
|
use Mail;
|
|
use Illuminate\Support\Facades\Hash;
|
|
|
|
class MemberController extends Controller
|
|
{
|
|
//
|
|
public function index()
|
|
{
|
|
$code = null;
|
|
|
|
if (isset(Auth::guard('member')->user()->id)) {
|
|
$user_id = Auth::guard('member')->user()->id;
|
|
$code = Promocode::where('used_count', $user_id)->first();
|
|
|
|
return view('front.member.index', ['code' => $code]);
|
|
} else {
|
|
Auth::guard('member')->logout();
|
|
return redirect()->route('front.login.view');
|
|
}
|
|
}
|
|
public function profile()
|
|
{
|
|
return view('front.member.profile');
|
|
}
|
|
/**
|
|
* Summary of profileUpdate
|
|
* @param \Illuminate\Http\Request $request
|
|
* @return \Illuminate\Http\RedirectResponse
|
|
* @todo 目前沒有錢包與購買方案與report 以後要 一起下壓
|
|
* @method put
|
|
*/
|
|
public function profileUpdate(Request $request)
|
|
{
|
|
// 驗證輸入的數據
|
|
$validatedData = $request->validate([
|
|
'email' => 'required|email',
|
|
'password' => 'nullable|min:6', // password 與 password_confirmation 必須匹配
|
|
'phone' => 'nullable|string|max:15',
|
|
]);
|
|
|
|
$auth = Member::find(Auth::guard('member')->id());
|
|
|
|
// 檢查是否已有其他會員使用相同的 email
|
|
$user = Member::where('email', $validatedData['email'])->first();
|
|
|
|
if ($user && $user->id != $auth->id) {
|
|
// 如果該 Email 已被其他用戶使用,返回錯誤信息
|
|
return response()->json(['status' => 'error', 'msg' => '該 Email 已被其他帳戶使用'], 422);
|
|
}
|
|
|
|
// 更新當前用戶的資料
|
|
$auth->email = $validatedData['email'];
|
|
if ($request->has('password')) {
|
|
$auth->password = Hash::make($validatedData['password']);
|
|
}
|
|
$auth->phone = $validatedData['phone'] ?? $auth->phone;
|
|
|
|
// 保存更改
|
|
$auth->save();
|
|
|
|
return response()->json(['status' => 'success', 'msg' => '更新成功']);
|
|
}
|
|
|
|
public function pageProfile(Request $request)
|
|
{
|
|
|
|
return view('front.member.page-profile');
|
|
}
|
|
|
|
public function checkPhone(Request $request)
|
|
{
|
|
$validatedData = $request->validate([
|
|
'phone' => 'required|string|max:15',
|
|
]);
|
|
\Log::info('checkPhone', []);
|
|
$user = Member::where('phone', $validatedData['phone'])->first();
|
|
|
|
if ($user) {
|
|
return response()->json(['status' => 'error', 'msg' => '該電話號碼已被其他帳戶使用']);
|
|
}
|
|
|
|
return response()->json(['status' => 'success', 'msg' => '該電話號碼可用']);
|
|
}
|
|
|
|
}
|