{{ $date }}
+{!! nl2br(e($news)) !!}
+diff --git a/app/Http/Controllers/MemberRegistrationController.php b/app/Http/Controllers/MemberRegistrationController.php
index e8fbfd6..b166d22 100644
--- a/app/Http/Controllers/MemberRegistrationController.php
+++ b/app/Http/Controllers/MemberRegistrationController.php
@@ -13,7 +13,7 @@ use Illuminate\Support\Facades\URL;
class MemberRegistrationController extends Controller
{
// 会員登録案内メール送信
- public function sendMail(Request $request)
+ public function sendMail(Request $request, $management_code)
{
// バリデーションチェック
$rules = ['email' => 'required | email'];
@@ -23,7 +23,7 @@ class MemberRegistrationController extends Controller
];
$validator = Validator::make($request->all(), $rules, $message);
if ($validator->fails()) {
- return redirect('swo2_1')
+ return redirect("{$management_code}/member_regist")
->withErrors($validator)
->withInput();
}
@@ -33,14 +33,14 @@ class MemberRegistrationController extends Controller
$existingMember = User::where('user_primemail', $email)->get();
foreach ($existingMember as $member) {
if ($member->user_quit_flag != 1) {
- return redirect('swo2_1')
+ return redirect("{$management_code}/member_regist")
->withErrors(['email' => '指定のメールアドレスは既に使用されています。'])
->withInput();
}
}
// 会員登録用暗号化URL生成(有効期限30分)
- $url = URL::temporarySignedRoute('swo2_3', now()->addMinutes(30), ['email' => encrypt($email)]);
+ $url = URL::temporarySignedRoute('member_regist_input', now()->addMinutes(30), ['management_code' => $management_code, 'email' => encrypt($email)]);
// メール送信
Mail::send(["text" => 'emails.member_regist_info'], ['url' => $url], function ($message) use ($email) {
@@ -48,35 +48,35 @@ class MemberRegistrationController extends Controller
});
// 完了画面遷移
- return view('general.swo2_2');
+ return view('general.member_regist_send_mail');
}
// メールのURLからアクセス
- public function index()
+ public function index($management_code)
{
// 署名付きURLの有効期限チェック
if (!request()->hasValidSignature()) {
- return redirect('error')->withErrors(['error' => '署名の有効期限が切れています']);
+ return redirect("{$management_code}/error")->withErrors(['error' => '署名の有効期限が切れています']);
}
// パラメータ存在チェック
$encryptedEmail = request()->query('email');
if (!$encryptedEmail) {
- return redirect('error')->withErrors(['error' => 'メールアドレスが指定されていません']);
+ return redirect("{$management_code}/error")->withErrors(['error' => 'メールアドレスが指定されていません']);
}
// パラメータ整合性チェック
try {
$email = decrypt($encryptedEmail);
} catch (\Exception $e) {
- return redirect('error')->withErrors(['error' => 'メールアドレスの情報が不正です']);
+ return redirect("{$management_code}/error")->withErrors(['error' => 'メールアドレスの情報が不正です']);
}
// 二重登録防止チェック
$existingMember = User::where('user_primemail', $email)->get();
foreach ($existingMember as $member) {
if ($member->user_quit_flag != 1) {
- return redirect('error')->withErrors(['error' => '既に登録済みです']);
+ return redirect("{$management_code}/error")->withErrors(['error' => '既に登録済みです']);
}
}
@@ -84,34 +84,71 @@ class MemberRegistrationController extends Controller
session(['email' => $email]);
// 入力画面に遷移
- return view('general.swo2_3');
+ return view('general.member_regist_input', ['management_code' => $management_code]);
}
// リダイレクト用
- public function indexBack(Request $request)
+ public function indexBack(Request $request, $management_code)
{
if (!session('email')) {
- return redirect('error')->withErrors(['error' => '不正なアクセスです']);
+ return redirect("{$management_code}/error")->withErrors(['error' => '不正なアクセスです']);
}
// 入力画面に遷移
- return view('general.swo2_3');
+ return view('general.member_regist_input', ['management_code' => $management_code]);
}
// 確認画面表示
- public function confirm(Request $request)
+ public function confirm(Request $request, $management_code)
{
// 登録完了後のブラウザバックによる二重登録対策
if (!session()->has('email')) {
- return redirect('error')->withErrors(['error' => '不正なアクセスです']);
+ return redirect("{$management_code}/error")->withErrors(['error' => '不正なアクセスです']);
}
// 入力チェック内容 (メールアドレスはセッションから取得するため対象外)
$rules = [
'name' => 'required',
'kana' => 'required|regex:/^[ァ-ヶー]+$/u',
- 'phone.*' => 'required|regex:/^[0-9]+$/',
- 'mobile.*' => 'nullable|regex:/^[0-9]+$/',
+ 'phone' => [
+ 'nullable',
+ function ($attribute, $value, $fail) use ($request) {
+ $phone = $request->input('phone');
+ $mobile = $request->input('mobile');
+
+ // 電話番号が部分的に入力されている場合はエラー
+ if (is_array($phone) && !empty(array_filter($phone))) {
+ $filtered = array_filter($phone);
+ if (count($filtered) != count($phone)) {
+ $fail('自宅電話番号は全ての項目を入力してください');
+ }
+ }
+ },
+ ],
+ 'mobile' => [
+ 'nullable',
+ function ($attribute, $value, $fail) use ($request) {
+ $phone = $request->input('phone');
+ $mobile = $request->input('mobile');
+
+ // どちらも未入力の場合はエラー
+ $phoneEmpty = is_array($phone) ? empty(array_filter($phone)) : empty($phone);
+ $mobileEmpty = is_array($mobile) ? empty(array_filter($mobile)) : empty($mobile);
+
+ if ($phoneEmpty && $mobileEmpty) {
+ $fail('電話番号はどちらかの入力が必須です');
+ }
+
+ // 携帯電話番号が部分的に入力されている場合はエラー
+ if (is_array($mobile) && !empty(array_filter($mobile))) {
+ $filtered = array_filter($mobile);
+ if (count($filtered) != count($mobile)) {
+ $fail('携帯電話番号は全ての項目を入力してください');
+ }
+ }
+ },
+ ],
+ 'birthdate' => 'required|date',
];
// エラーメッセージ (メールアドレスはセッションから取得するため対象外)
@@ -119,14 +156,14 @@ class MemberRegistrationController extends Controller
'name.required' => '名前を入力してください',
'kana.required' => 'フリガナを入力してください',
'kana.regex' => 'フリガナは全角カタカナで入力してください',
- 'phone.*' => '電話番号を正しく入力してください',
- 'mobile.*' => '予備電話番号を正しく入力してください',
+ 'birthdate.required' => '生年月日を入力してください',
+ 'birthdate.date' => '生年月日を正しく入力してください',
];
// バリデーションチェック
$validator = Validator::make($request->all(), $rules, $message);
if ($validator->fails()) {
- return redirect('swo2_3B')->withErrors($validator)->withInput();
+ return redirect("{$management_code}/member_regist_input_back")->withErrors($validator)->withInput();
}
// 画面返却値
@@ -135,24 +172,25 @@ class MemberRegistrationController extends Controller
"kana" => $request->input('kana'),
"phone" => $request->input('phone'),
"mobile" => $request->input('mobile'),
+ "birthdate" => $request->input('birthdate'),
"email" => session('email'),
];
// 確認画面に遷移
- return view('general.swo2_4', ['input_data' => $input_data]);
+ return view('general.member_regist_confirm', ['input_data' => $input_data, 'management_code' => $management_code]);
}
// 会員登録 or 戻る
- public function complete(Request $request)
+ public function complete(Request $request, $management_code)
{
// 前の画面に戻る
if($request->input('back') == 'back'){
- return redirect('swo2_3B')->withInput();
+ return redirect("{$management_code}/member_regist_input_back")->withInput();
}
// 登録完了後のブラウザバックによる二重登録対策
if (!session()->has('email')) {
- return redirect('error')->withErrors(['error' => '不正なアクセスです']);
+ return redirect("{$management_code}/error")->withErrors(['error' => '不正なアクセスです']);
}
// 利用者連番、利用者ID(利用者連番+7DSRチェックデジット)、初期パスワード(ハッシュ化)を生成
@@ -170,8 +208,9 @@ class MemberRegistrationController extends Controller
$user->tag_qr_flag = 1;
$user->user_name = $request->input('name');
$user->user_phonetic = $request->input('kana');
- $user->user_homephone = implode('-', $request->input('phone'));
- $user->user_mobile = implode('-', $request->input('mobile'));
+ $user->user_homephone = is_array($request->input('phone')) ? implode('-', $request->input('phone')) : $request->input('phone');
+ $user->user_mobile = is_array($request->input('mobile')) ? implode('-', $request->input('mobile')) : $request->input('mobile');
+ $user->user_birthdate = $request->input('birthdate');
$user->user_primemail = session('email');
$user->user_quit_flag = 0;
$user->created_at = now();
@@ -190,6 +229,6 @@ class MemberRegistrationController extends Controller
session()->forget('email');
// 完了画面に遷移
- return view('general.swo2_5');
+ return view('general.member_regist_complete');
}
}
\ No newline at end of file
diff --git a/app/Http/Controllers/NewsController.php b/app/Http/Controllers/NewsController.php
new file mode 100644
index 0000000..fb599c6
--- /dev/null
+++ b/app/Http/Controllers/NewsController.php
@@ -0,0 +1,24 @@
+ $news]);
+ }
+
+ // 前画面から受け取ったニュース情報の詳細を表示
+ public function detail(Request $request)
+ {
+ return view('general.news', ['date' => $request->date, 'news' => $request->news]);
+ }
+}
\ No newline at end of file
diff --git a/app/Models/News.php b/app/Models/News.php
new file mode 100644
index 0000000..ceba68a
--- /dev/null
+++ b/app/Models/News.php
@@ -0,0 +1,48 @@
+ 'integer',
+ 'open_datetime' => 'datetime',
+ 'mode' => 'integer',
+ 'created_at' => 'datetime',
+ 'updated_at' => 'datetime',
+ 'operator_id' => 'integer',
+ 'management_code' => 'string',
+ ];
+
+ /**
+ * ニュース情報の最新5件を取得
+ */
+ public static function getNews($management_code)
+ {
+ return self::where('management_code', $management_code)
+ ->whereIn('mode', [2, 3])
+ ->where('open_datetime', '<=', now())
+ ->orderBy('open_datetime', 'desc')
+ ->limit(5)
+ ->get();
+ }
+}
diff --git a/resources/views/general/management_top.blade.php b/resources/views/general/management_top.blade.php
new file mode 100644
index 0000000..51b89d7
--- /dev/null
+++ b/resources/views/general/management_top.blade.php
@@ -0,0 +1,26 @@
+@extends('layouts.general')
+@section('content')
+ ログインはこちらから
+  }})
マイページへログイン
+
+
会員登録ページのご案内をお送りします。お客様のメールアドレスをご入力ください。
-入力内容をご確認の上、登録ボタンを押して下さい。
会員情報を入力してください。
@if ($errors->has('name')) {{ $errors->first('name') }}
@endif
@if ($errors->has('kana')) {{ $errors->first('kana') }}
@endif
- @if ($errors->has('phone.*')) {{ $errors->first('phone.*') }}
@endif
- @if ($errors->has('mobile.*')) {{ $errors->first('mobile.*') }}
@endif
+ @if ($errors->has('phone')) {{ $errors->first('phone') }}
@endif
+ @if ($errors->has('mobile')) {{ $errors->first('mobile') }}
@endif
+ @if ($errors->has('birthdate')) {{ $errors->first('birthdate') }}
@endif
{!! nl2br(e($news)) !!}
+ }})
新規会員登録が完了しました。
- トップページへ戻る>>
株式会社ソーリンへのご訪問ありがとうございます。
- お問い合わせいただくお客さまは、当社のホームページにおける個人情報の取り扱いについて、あらかじめご確認いただき、ご同意いただいた上でお問い合わせください。個人情報の開示、訂正、削除、利用停止については、こちらをご覧下さい。
+ お問い合わせいただくお客さまは、当社のホームページにおける個人情報の取り扱いについて、あらかじめご確認いただき、ご同意いただいた上でお問い合わせください。個人情報の開示、訂正、削除、利用停止については、こちらをご覧下さい。
また、メールから送信ができないお客様はお手数ですが、下記電話までご連絡をお願い致します。
※ 携帯・スマートフォンからメールでのお問い合わせの際に、確実にご返信をさせていただくために、ドメイン (so-manager.com) の受信許可設定をお願い致します。