root 5 years ago
parent
commit
aa07facebd

+ 0 - 2
app/Http/Controllers/Admin/StatController.php

@@ -2,8 +2,6 @@
 
 namespace App\Http\Controllers\Admin;
 
-use App\Http\Requests\Admin\ServerSave;
-use App\Http\Requests\Admin\ServerUpdate;
 use Illuminate\Http\Request;
 use App\Http\Controllers\Controller;
 use App\Models\ServerGroup;

+ 16 - 0
app/Http/Controllers/Admin/TicketController.php

@@ -0,0 +1,16 @@
+<?php
+
+namespace App\Http\Controllers\Admin;
+
+use Illuminate\Http\Request;
+use App\Http\Controllers\Controller;
+use App\Models\Ticket;
+use App\Models\TicketMessage;
+use Illuminate\Support\Facades\Redis;
+
+class TicketController extends Controller
+{
+    public function index (Request $request) {
+        
+    }
+}

+ 0 - 2
app/Http/Controllers/PlanController.php

@@ -5,7 +5,6 @@ namespace App\Http\Controllers;
 use Illuminate\Http\Request;
 use App\Http\Controllers\Controller;
 use App\Models\Plan;
-use App\Models\User;
 
 class PlanController extends Controller
 {
@@ -17,7 +16,6 @@ class PlanController extends Controller
         if (!$plan) {
             abort(500, '该订阅不存在');
         }
-        $user = User::find($request->session()->get('id'));
         return response([
             'data' => $plan
         ]);

+ 49 - 0
app/Http/Controllers/TicketController.php

@@ -0,0 +1,49 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use App\Http\Requests\TicketSave;
+use Illuminate\Http\Request;
+use App\Http\Controllers\Controller;
+use App\Models\Ticket;
+use App\Models\TicketMessage;
+use App\Utils\Helper;
+use Illuminate\Support\Facades\DB;
+
+class TicketController extends Controller
+{
+    public function index (Request $request) {
+        return response([
+            'data' => Ticket::where('user_id', $request->session()->get('id'))
+                ->orderBy('created_at', 'DESC')
+                ->get()
+        ]);
+    }
+
+    public function save (TicketSave $request) {
+        DB::beginTransaction();
+        $ticket = Ticket::create(array_merge($request->only([
+            'subject',
+            'level'
+        ]), [
+            'user_id' => $request->session()->get('id')
+        ]));
+        if (!$ticket) {
+            DB::rollback();
+            abort(500, '工单创建失败');
+        }
+        $ticketMessage = TicketMessage::create([
+            'user_id' => $request->session()->get('id'),
+            'ticket_id' => $ticket->id,
+            'message' => $request->input('message')
+        ]);
+        if (!$ticketMessage) {
+            DB::rollback();
+            abort(500, '工单创建失败');
+        }
+        DB::commit();
+        return response([
+            'data' => true
+        ]);
+    }
+}

+ 32 - 0
app/Http/Requests/TicketSave.php

@@ -0,0 +1,32 @@
+<?php
+
+namespace App\Http\Requests;
+
+use Illuminate\Foundation\Http\FormRequest;
+
+class TicketSave extends FormRequest
+{
+    /**
+     * Get the validation rules that apply to the request.
+     *
+     * @return array
+     */
+    public function rules()
+    {
+        return [
+            'subject' => 'required',
+            'level' => 'required|in:0,1,2',
+            'message' => 'required'
+        ];
+    }
+    
+    public function messages()
+    {
+        return [
+            'subject.required' => '工单主题不能为空',
+            'level.required' => '工单级别不能为空',
+            'level.in' => '工单级别格式不正确',
+            'message.required' => '消息不能为空'
+        ];
+    }
+}

+ 12 - 0
app/Models/Ticket.php

@@ -0,0 +1,12 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Model;
+
+class Ticket extends Model
+{
+    protected $table = 'v2_ticket';
+    protected $dateFormat = 'U';
+    protected $guarded = ['id'];
+}

+ 12 - 0
app/Models/TicketMessage.php

@@ -0,0 +1,12 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Model;
+
+class TicketMessage extends Model
+{
+    protected $table = 'v2_ticket_message';
+    protected $dateFormat = 'U';
+    protected $guarded = ['id'];
+}

+ 2 - 0
routes/api.php

@@ -80,6 +80,8 @@ Route::prefix('v1')
                 Route::get ('tutorial/getAppleID', 'TutorialController@getAppleID');
                 // Notice
                 Route::get ('notice', 'NoticeController@index');
+                // Ticket
+                Route::post('ticket/save', 'TicketController@save');
             });
 
         // Passport