From 56d1aacc79b5af735ea9f355a2a5aed6dd8ff1b0 Mon Sep 17 00:00:00 2001 From: "iVampireSP.com" Date: Wed, 22 Feb 2023 21:32:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E8=90=A5=E9=94=80?= =?UTF-8?q?=E9=82=AE=E4=BB=B6=E6=8E=A5=E6=94=B6=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/NotificationController.php | 5 ++ app/Http/Controllers/Web/AuthController.php | 16 +++-- app/Models/User.php | 1 + ...receive_marketing_email_to_users_table.php | 28 ++++++++ .../admin/notifications/create.blade.php | 72 ++++++++++--------- resources/views/index.blade.php | 39 ++++++++++ 6 files changed, 121 insertions(+), 40 deletions(-) create mode 100644 database/migrations/2023_02_22_210524_add_receive_marketing_email_to_users_table.php diff --git a/app/Http/Controllers/Admin/NotificationController.php b/app/Http/Controllers/Admin/NotificationController.php index 98c04e6..4a84254 100644 --- a/app/Http/Controllers/Admin/NotificationController.php +++ b/app/Http/Controllers/Admin/NotificationController.php @@ -58,6 +58,11 @@ public function query(Request|array $request): User|CachedBuilder|Builder }); } + // 是否是营销邮件 + if (! empty($request['receive_marketing_email'])) { + $users = $users->where('receive_marketing_email', true); + } + return $users; } diff --git a/app/Http/Controllers/Web/AuthController.php b/app/Http/Controllers/Web/AuthController.php index 193a722..9544cc2 100644 --- a/app/Http/Controllers/Web/AuthController.php +++ b/app/Http/Controllers/Web/AuthController.php @@ -2,12 +2,11 @@ namespace App\Http\Controllers\Web; -// use App\Helpers\ApiResponse; - use App\Http\Controllers\Controller; use App\Notifications\User\UserNotification; use function back; use function config; +use Illuminate\Http\JsonResponse; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Support\Carbon; @@ -65,17 +64,20 @@ public function confirm_redirect(Request $request): View return view('confirm_redirect', compact('callback', 'referer_host')); } - public function update(Request $request): RedirectResponse + public function update(Request $request): RedirectResponse|JsonResponse { $request->validate([ - 'name' => 'required|string|max:255', + 'name' => 'nullable|sometimes|string|max:255', + 'receive_marketing_email' => 'nullable|sometimes|boolean', ]); $user = $request->user('web'); - $user->update([ - 'name' => $request->input('name'), - ]); + $user->update($request->only('name', 'receive_marketing_email')); + + if ($request->ajax()) { + return $this->success($user->only('name', 'receive_marketing_email')); + } return back()->with('success', '更新成功。'); } diff --git a/app/Models/User.php b/app/Models/User.php index 2118e4b..0078275 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -47,6 +47,7 @@ class User extends Authenticatable implements MustVerifyEmail 'name', 'email', 'password', + 'receive_marketing_email', ]; /** diff --git a/database/migrations/2023_02_22_210524_add_receive_marketing_email_to_users_table.php b/database/migrations/2023_02_22_210524_add_receive_marketing_email_to_users_table.php new file mode 100644 index 0000000..904d9b9 --- /dev/null +++ b/database/migrations/2023_02_22_210524_add_receive_marketing_email_to_users_table.php @@ -0,0 +1,28 @@ +boolean('receive_marketing_email')->default(true)->index()->after('remember_token'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + $table->dropColumn('receive_marketing_email'); + }); + } +}; diff --git a/resources/views/admin/notifications/create.blade.php b/resources/views/admin/notifications/create.blade.php index 34d0ee1..935aee7 100644 --- a/resources/views/admin/notifications/create.blade.php +++ b/resources/views/admin/notifications/create.blade.php @@ -32,6 +32,15 @@ +
+
+ + +
+
+

这两个搜搜条件只能二选一。

@@ -96,40 +105,37 @@ - {{-- 分页 --}} {{ $users->links() }} +
+ @csrf + + + + + +
+ + +
+ +
+ + +
+ +
+ + +
+ + + 通知一旦发送,将无法撤销! +
+ + @else +
没有符合条件的用户。
@endif - - -
- @csrf - - - - - - {{-- checkbox send_mail --}} -
- - -
- - -
- - -
- - {{-- 通知内容 --}} -
- - -
- - - 通知一旦发送,将无法撤销! -
- @endsection diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php index 82825a9..9aa2d3e 100644 --- a/resources/views/index.blade.php +++ b/resources/views/index.blade.php @@ -90,6 +90,12 @@ @if ($user->real_name_verified_at)

实人认证时间: {{ $user->real_name_verified_at }}

@endif +

+ 营销邮件订阅: + +

+ + @endsection