mirror of
https://github.com/v2board/v2board.git
synced 2024-11-14 07:29:13 +08:00
38 lines
1.1 KiB
PHP
38 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Plugins\Telegram\Commands;
|
|
|
|
use App\Models\User;
|
|
use App\Plugins\Telegram\Telegram;
|
|
use App\Services\TicketService;
|
|
|
|
class ReplyTicket extends Telegram {
|
|
public $regex = '/[#](.*)/';
|
|
public $description = '快速工单回复';
|
|
|
|
public function handle($message, $match = []) {
|
|
if (!$message->is_private) return;
|
|
$this->replayTicket($message, $match[1]);
|
|
}
|
|
|
|
|
|
private function replayTicket($msg, $ticketId)
|
|
{
|
|
$user = User::where('telegram_id', $msg->chat_id)->first();
|
|
if (!$user) {
|
|
abort(500, '用户不存在');
|
|
}
|
|
if (!$msg->text) return;
|
|
if (!($user->is_admin || $user->is_staff)) return;
|
|
$ticketService = new TicketService();
|
|
$ticketService->replyByAdmin(
|
|
$ticketId,
|
|
$msg->text,
|
|
$user->id
|
|
);
|
|
$telegramService = $this->telegramService;
|
|
$telegramService->sendMessage($msg->chat_id, "#`{$ticketId}` 的工单已回复成功", 'markdown');
|
|
$telegramService->sendMessageWithAdmin("#`{$ticketId}` 的工单已由 {$user->email} 进行回复", true);
|
|
}
|
|
}
|