mapper = $mapper; } /** * 保存公告 * @throws \Psr\Container\ContainerExceptionInterface * @throws \Throwable * @throws \Psr\Container\NotFoundExceptionInterface */ #[Transaction] public function save(array $data): int { $message = new QueueMessageVo(); $message->setTitle($data['title']); $message->setContentType( $data['type'] === '1' ? SystemQueueMessage::TYPE_NOTICE : SystemQueueMessage::TYPE_ANNOUNCE ); $message->setContent($data['content']); $message->setSendBy(user()->getId()); // 待发送用户 $userIds = $data['users'] ?? []; if (empty($userIds)) { $userMapper = container()->get(SystemUserMapper::class); $userIds = $userMapper->pluck(['status' => \Builder\BaseModel::ENABLE]); } $data['message_id'] = push_queue_message($message, $userIds); if ($data['message_id'] !== -1) { return parent::save($data); } throw new NormalStatusException; } }