新增聊天室发送图片功能
This commit is contained in:
@@ -16,22 +16,25 @@ use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Foundation\Queue\Queueable;
|
||||
use Illuminate\Support\Carbon;
|
||||
|
||||
/**
|
||||
* 异步聊天消息持久化任务
|
||||
* 负责把 Redis 中的聊天消息安全写入数据库归档。
|
||||
*/
|
||||
class SaveMessageJob implements ShouldQueue
|
||||
{
|
||||
use Queueable;
|
||||
|
||||
/**
|
||||
* Create a new job instance.
|
||||
* 创建聊天消息持久化任务。
|
||||
*
|
||||
* @param array $messageData 包装好的消息数组
|
||||
* @param array<string, mixed> $messageData 包装好的消息数组
|
||||
*/
|
||||
public function __construct(
|
||||
public readonly array $messageData
|
||||
) {}
|
||||
|
||||
/**
|
||||
* Execute the job.
|
||||
* 将缓存在 Redis 刚广播出去的消息,真实映射写入到 `messages` 数据表。
|
||||
* 执行队列任务,将已广播的聊天消息写入数据库。
|
||||
*/
|
||||
public function handle(): void
|
||||
{
|
||||
@@ -43,6 +46,10 @@ class SaveMessageJob implements ShouldQueue
|
||||
'is_secret' => $this->messageData['is_secret'] ?? false,
|
||||
'font_color' => $this->messageData['font_color'] ?? '',
|
||||
'action' => $this->messageData['action'] ?? '',
|
||||
'message_type' => $this->messageData['message_type'] ?? 'text',
|
||||
'image_path' => $this->messageData['image_path'] ?? null,
|
||||
'image_thumb_path' => $this->messageData['image_thumb_path'] ?? null,
|
||||
'image_original_name' => $this->messageData['image_original_name'] ?? null,
|
||||
// 恢复 Carbon 时间对象
|
||||
'sent_at' => Carbon::parse($this->messageData['sent_at']),
|
||||
]);
|
||||
|
||||
Reference in New Issue
Block a user