TicketChatController.php
3.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php
namespace App\Http\Controllers\Api\WorkOrder;
use App\Http\Controllers\Controller;
use App\Http\Requests\Api\WorkOrder\TicketChatStoreRequest;
use App\Models\WorkOrder\TicketChat;
use App\Models\WorkOrder\Tickets;
use Illuminate\Http\Request;
class TicketChatController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index($project_id, $ticket_id)
{
$ticket = Tickets::find($ticket_id);
if (!$ticket) return response()->json(['message' => '工单未找到'], 404);
if ($ticket->project->uuid !== $project_id) return response()->json(['message' => '无权限查看该工单'], 403);
if ($ticket->project->is_del) return response()->json(['message' => '项目状态异常'], 400);
$chats = TicketChat::where('ticket_id', $ticket->id)
->get();
return response()->json(['data' => $chats]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(TicketChatStoreRequest $request, $project_id, $ticket_id)
{
$request->validated();
$ticket = Tickets::with(['project'])->find($ticket_id);
if (!$ticket) return response()->json(['message' => '工单未找到'], 404);
if ($ticket->status >= Tickets::STATUS_COMPLETED) return response()->json(['message' => '工单已完成或已关闭'], 400);
if ($ticket->project->uuid !== $project_id) return response()->json(['message' => '无权限查看该工单'], 403);
if ($ticket->project->is_del) return response()->json(['message' => '项目状态异常'], 400);
$chat = new TicketChat();
$chat->ticket_id = $ticket->id;
$chat->content = $request->input('content');
$files = $request->input('files');
if (empty($files) || (is_array($files) && count(array_filter($files, function($v){ return !is_null($v); })) === 0)) {
$chat->files = null;
} else {
$chat->files = json_encode($files);
}
$chat->submit_side = 2;
$chat->submit_username = $request->input('submit_username');
$chat->save();
return response()->json(['data' => $chat]);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}