root 5 years ago
parent
commit
76ce89c17f

+ 37 - 0
app/Http/Controllers/Admin/MailController.php

@@ -0,0 +1,37 @@
+<?php
+
+namespace App\Http\Controllers\Admin;
+
+use App\Http\Requests\Admin\MailSend;
+use Illuminate\Http\Request;
+use App\Http\Controllers\Controller;
+use App\Models\User;
+use App\Jobs\SendEmail;
+
+class MailController extends Controller
+{
+    public function send (MailSend $request) {
+        if ($request->input('type') == 2 && $request->input('recevicer')) {
+            abort(500, '收件人不能为空');
+        }
+
+        if ($request->input('recevicer')) {
+            $users = User::whereIn('id', $recevicer)->get();
+        } else {
+            $users = User::all();
+        }
+
+        foreach ($users as $user) {
+            SendEmail::dispatch([
+                'email' => $user->email,
+                'subject' => $subject,
+                'template_name' => 'mail.sendCustom',
+                'template_value' => [
+                    'name' => config('v2board.app_name', 'V2Board'),
+                    'url' => config('v2board.app_url'),
+                    'content' => $content
+                ]
+            ]);
+        }
+    }
+}

+ 34 - 0
app/Http/Requests/Admin/MailSend.php

@@ -0,0 +1,34 @@
+<?php
+
+namespace App\Http\Requests\Admin;
+
+use Illuminate\Foundation\Http\FormRequest;
+
+class MailSend extends FormRequest
+{
+    /**
+     * Get the validation rules that apply to the request.
+     *
+     * @return array
+     */
+    public function rules()
+    {
+        return [
+            'type' => 'required|in:1,2',
+            'subject' => 'required',
+            'content' => 'required',
+            'receiver' => 'array'
+        ];
+    }
+    
+    public function messages()
+    {
+        return [
+            'type.required' => '发送类型不能为空',
+            'type.in' => '发送类型格式有误',
+            'subject.required' => '主题不能为空',
+            'content.required' => '内容不能为空',
+            'receiver.array' => '收件人格式有误'
+        ];
+    }
+}

+ 2 - 0
routes/api.php

@@ -54,6 +54,8 @@ Route::prefix('v1')
                 Route::get ('ticket/fetch', 'Admin\\TicketController@fetch');
                 Route::post('ticket/reply', 'Admin\\TicketController@reply');
                 Route::post('ticket/close', 'Admin\\TicketController@close');
+                // Mail
+                Route::post('mail/send', 'Admin\\MailController@send');
             });
         // User
         Route::prefix('user')