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() }} + + + @else +实人认证时间: {{ $user->real_name_verified_at }}
@endif + + + @endsection