mirror of
				https://github.com/v2board/v2board.git
				synced 2025-11-04 19:31:45 +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);
 | 
						|
    }
 | 
						|
}
 |