mirror of
				https://github.com/v2board/v2board.git
				synced 2025-10-31 17:31:49 +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);
 | |
|     }
 | |
| }
 |