mirror of
https://github.com/cedar2025/Xboard.git
synced 2025-02-02 07:28:13 -05:00
refactor: 规范工单接口代码规范
This commit is contained in:
parent
20466d07df
commit
1270a60ad8
@ -22,25 +22,20 @@ class TicketController extends Controller
|
|||||||
if ($request->input('id')) {
|
if ($request->input('id')) {
|
||||||
$ticket = Ticket::where('id', $request->input('id'))
|
$ticket = Ticket::where('id', $request->input('id'))
|
||||||
->where('user_id', $request->user['id'])
|
->where('user_id', $request->user['id'])
|
||||||
->first();
|
->first()
|
||||||
|
->load('message');
|
||||||
if (!$ticket) {
|
if (!$ticket) {
|
||||||
return $this->fail([400, __('Ticket does not exist')]);
|
return $this->fail([400, __('Ticket does not exist')]);
|
||||||
}
|
}
|
||||||
$ticket['message'] = TicketMessage::where('ticket_id', $ticket->id)->get();
|
$ticket['message'] = TicketMessage::where('ticket_id', $ticket->id)->get();
|
||||||
for ($i = 0; $i < count($ticket['message']); $i++) {
|
$ticket['message']->each(function ($message) use ($ticket) {
|
||||||
if ($ticket['message'][$i]['user_id'] == $ticket->user_id) {
|
$message['is_me'] = ($message['user_id'] == $ticket->user_id);
|
||||||
$ticket['message'][$i]['is_me'] = true;
|
});
|
||||||
} else {
|
return $this->success(TicketResource::make($ticket)->additional(['message' => true]));
|
||||||
$ticket['message'][$i]['is_me'] = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $this->success($ticket);
|
|
||||||
}
|
}
|
||||||
$ticket = Ticket::where('user_id', $request->user['id'])
|
$ticket = Ticket::where('user_id', $request->user['id'])
|
||||||
->orderBy('created_at', 'DESC')
|
->orderBy('created_at', 'DESC')
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
|
|
||||||
return $this->success(TicketResource::collection($ticket));
|
return $this->success(TicketResource::collection($ticket));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
26
app/Http/Resources/MessageResource.php
Normal file
26
app/Http/Resources/MessageResource.php
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Resources;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
|
||||||
|
class MessageResource extends JsonResource
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Transform the resource into an array.
|
||||||
|
*
|
||||||
|
* @return array<string, mixed>
|
||||||
|
*/
|
||||||
|
public function toArray(Request $request): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
"id" => $this['id'],
|
||||||
|
"ticket_id" => $this['ticket_id'],
|
||||||
|
"is_me" => $this['is_me'],
|
||||||
|
"message" => $this["message"],
|
||||||
|
"created_at" => $this['created_at'],
|
||||||
|
"updated_at" => $this['updated_at']
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
@ -20,6 +20,7 @@ class TicketResource extends JsonResource
|
|||||||
"reply_status" => $this['reply_status'],
|
"reply_status" => $this['reply_status'],
|
||||||
"status" => $this['status'],
|
"status" => $this['status'],
|
||||||
"subject" => $this['subject'],
|
"subject" => $this['subject'],
|
||||||
|
"message" => array_key_exists('message',$this->additional) ? MessageResource::collection($this['message']) : null,
|
||||||
"created_at" => $this['created_at'],
|
"created_at" => $this['created_at'],
|
||||||
"updated_at" => $this['updated_at']
|
"updated_at" => $this['updated_at']
|
||||||
];
|
];
|
||||||
|
@ -13,4 +13,10 @@ class Ticket extends Model
|
|||||||
'created_at' => 'timestamp',
|
'created_at' => 'timestamp',
|
||||||
'updated_at' => 'timestamp'
|
'updated_at' => 'timestamp'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
public function message()
|
||||||
|
{
|
||||||
|
return $this->hasMany(TicketMessage::class, 'ticket_id', 'id');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user