diff --git a/app/Http/Controllers/Api/ComplaintController.php b/app/Http/Controllers/Api/ComplaintController.php index 71d3b477a..4b4c55d89 100755 --- a/app/Http/Controllers/Api/ComplaintController.php +++ b/app/Http/Controllers/Api/ComplaintController.php @@ -113,8 +113,11 @@ class ComplaintController extends AbstractController ->each(function ($adminUser) use ($reason, $botUser) { $dialog = WebSocketDialog::checkUserDialog($botUser, $adminUser->userid); if ($dialog) { - $text = "

收到新的举报信息:{$reason} (请前往应用查看详情)

"; - WebSocketDialogMsg::sendMsg(null, $dialog->id, 'text', ['text' => $text], $botUser->userid); // todo 未能在任务end事件来发送任务 + WebSocketDialogMsg::sendMsg(null, $dialog->id, 'template', [ + 'type' => 'content', + 'title' => '收到新的举报信息', + 'content' => "收到新的举报信息:{$reason} (请前往应用查看详情)" + ], $botUser->userid); // todo 未能在任务end事件来发送任务 } }); // diff --git a/app/Http/Controllers/Api/DialogController.php b/app/Http/Controllers/Api/DialogController.php index 4532cd0de..7655d3c49 100755 --- a/app/Http/Controllers/Api/DialogController.php +++ b/app/Http/Controllers/Api/DialogController.php @@ -1324,7 +1324,10 @@ class DialogController extends AbstractController if (empty($dialog)) { return Base::retError('匿名机器人会话不存在'); } - return WebSocketDialogMsg::sendMsg(null, $dialog->id, 'text', ['text' => "

{$text}

"], $botUser->userid, true); + return WebSocketDialogMsg::sendMsg(null, $dialog->id, 'template', [ + 'type' => 'content', + 'content' => $text, + ], $botUser->userid, true); } /** diff --git a/app/Http/Controllers/Api/ProjectController.php b/app/Http/Controllers/Api/ProjectController.php index 25999efd0..a66dc60c4 100755 --- a/app/Http/Controllers/Api/ProjectController.php +++ b/app/Http/Controllers/Api/ProjectController.php @@ -1229,8 +1229,11 @@ class ProjectController extends AbstractController $headings[] = '状态'; $datas = []; // - $text = '导出任务统计已完成。'; - $text .= "\n\n"; + $content = []; + $content[] = [ + 'content' => '导出任务统计已完成', + 'style' => 'font-weight: bold;padding-bottom: 4px;', + ]; // $builder = ProjectTask::select(['project_tasks.*', 'project_task_users.userid as ownerid']) ->join('project_task_users', 'project_tasks.id', '=', 'project_task_users.task_id') @@ -1329,8 +1332,15 @@ class ProjectController extends AbstractController } }); if (empty($datas)) { - $text .= '没有任何数据'; - WebSocketDialogMsg::sendMsg(null, $dialog->id, 'text', ['text' => $text], $botUser->userid, false, false, true); + $content[] = [ + 'content' => '没有任何数据', + 'style' => 'color: #ff0000;', + ]; + WebSocketDialogMsg::sendMsg(null, $dialog->id, 'template', [ + 'type' => 'content', + 'title' => $content[0]['content'], + 'content' => $content, + ], $botUser->userid, false, false, true); return; } // @@ -1354,8 +1364,15 @@ class ProjectController extends AbstractController $export = new BillMultipleExport($sheets); $res = $export->store($filePath . "/" . $fileName); if ($res != 1) { - $text .= "导出失败,{$fileName}!"; - WebSocketDialogMsg::sendMsg(null, $dialog->id, 'text', ['text' => $text], $botUser->userid, false, false, true); + $content[] = [ + 'content' => "导出失败,{$fileName}!", + 'style' => 'color: #ff0000;', + ]; + WebSocketDialogMsg::sendMsg(null, $dialog->id, 'template', [ + 'type' => 'content', + 'title' => $content[0]['content'], + 'content' => $content, + ], $botUser->userid, false, false, true); return; } // @@ -1376,17 +1393,26 @@ class ProjectController extends AbstractController ])); $fileUrl = Base::fillUrl('api/project/task/down?key=' . urlencode($base64)); Session::put('task::export:userid', $user->userid); - $text .= "文件名:{$fileName}"; - $text .= "\n"; - $text .= "文件大小:" . Base::twoFloat(filesize($zipPath) / 1024, true) . "KB"; - $text .= "\n"; - $text .= ''; + WebSocketDialogMsg::sendMsg(null, $dialog->id, 'template', [ + 'type' => 'file_download', + 'title' => '导出任务统计已完成', + 'name' => $fileName, + 'size' => filesize($zipPath), + 'url' => $fileUrl, + ], $botUser->userid, false, false, true); } else { - $text .= '打包失败,请稍后再试...'; + $content[] = [ + 'content' => "打包失败,请稍后再试...", + 'style' => 'color: #ff0000;', + ]; + WebSocketDialogMsg::sendMsg(null, $dialog->id, 'template', [ + 'type' => 'content', + 'title' => $content[0]['content'], + 'content' => $content, + ], $botUser->userid, false, false, true); } - WebSocketDialogMsg::sendMsg(null, $dialog->id, 'text', ['text' => $text], $botUser->userid, false, false, true); }); - return Base::retSuccess('success', ['msg' => '正在打包,请留意系统消息。']); + return Base::retSuccess('success'); } /** diff --git a/app/Http/Controllers/Api/SystemController.php b/app/Http/Controllers/Api/SystemController.php index e4f0a8c2a..cde47f5f4 100755 --- a/app/Http/Controllers/Api/SystemController.php +++ b/app/Http/Controllers/Api/SystemController.php @@ -306,41 +306,45 @@ class SystemController extends AbstractController } $backup = $setting; $setting = Base::setting('aibotSetting', Base::newTrim($all)); + $tempMsg = [ + 'type' => 'content', + 'content' => '设置成功' + ]; // if ($backup['openai_key'] != $setting['openai_key']) { $botUser = User::botGetOrCreate('ai-openai'); if ($botUser && $dialog = WebSocketDialog::checkUserDialog($botUser, $user->userid)) { - WebSocketDialogMsg::sendMsg(null, $dialog->id, 'text', ['text' => "设置成功"], $botUser->userid, true, false, true); + WebSocketDialogMsg::sendMsg(null, $dialog->id, 'template', $tempMsg, $botUser->userid, true, false, true); } } if ($backup['claude_token'] != $setting['claude_token']) { $botUser = User::botGetOrCreate('ai-claude'); if ($botUser && $dialog = WebSocketDialog::checkUserDialog($botUser, $user->userid)) { - WebSocketDialogMsg::sendMsg(null, $dialog->id, 'text', ['text' => "设置成功"], $botUser->userid, true, false, true); + WebSocketDialogMsg::sendMsg(null, $dialog->id, 'template', $tempMsg, $botUser->userid, true, false, true); } } if ($backup['wenxin_key'] != $setting['wenxin_key']) { $botUser = User::botGetOrCreate('ai-wenxin'); if ($botUser && $dialog = WebSocketDialog::checkUserDialog($botUser, $user->userid)) { - WebSocketDialogMsg::sendMsg(null, $dialog->id, 'text', ['text' => "设置成功"], $botUser->userid, true, false, true); + WebSocketDialogMsg::sendMsg(null, $dialog->id, 'template', $tempMsg, $botUser->userid, true, false, true); } } if ($backup['qianwen_key'] != $setting['qianwen_key']) { $botUser = User::botGetOrCreate('ai-qianwen'); if ($botUser && $dialog = WebSocketDialog::checkUserDialog($botUser, $user->userid)) { - WebSocketDialogMsg::sendMsg(null, $dialog->id, 'text', ['text' => "设置成功"], $botUser->userid, true, false, true); + WebSocketDialogMsg::sendMsg(null, $dialog->id, 'template', $tempMsg, $botUser->userid, true, false, true); } } if ($backup['gemini_key'] != $setting['gemini_key']) { $botUser = User::botGetOrCreate('ai-gemini'); if ($botUser && $dialog = WebSocketDialog::checkUserDialog($botUser, $user->userid)) { - WebSocketDialogMsg::sendMsg(null, $dialog->id, 'text', ['text' => "设置成功"], $botUser->userid, true, false, true); + WebSocketDialogMsg::sendMsg(null, $dialog->id, 'template', $tempMsg, $botUser->userid, true, false, true); } } if ($backup['zhipu_key'] != $setting['zhipu_key']) { $botUser = User::botGetOrCreate('ai-zhipu'); if ($botUser && $dialog = WebSocketDialog::checkUserDialog($botUser, $user->userid)) { - WebSocketDialogMsg::sendMsg(null, $dialog->id, 'text', ['text' => "设置成功"], $botUser->userid, true, false, true); + WebSocketDialogMsg::sendMsg(null, $dialog->id, 'template', $tempMsg, $botUser->userid, true, false, true); } } } @@ -1095,7 +1099,7 @@ class SystemController extends AbstractController } catch (\Throwable $e) { // 一般是请求超时 if (str_contains($e->getMessage(), "Timed Out")) { - return Base::retError("language.TimedOut"); + return Base::retError("邮件发送超时,请检查邮箱配置是否正确"); } elseif ($e->getCode() === 550) { return Base::retError('邮件内容被拒绝,请检查邮箱是否开启接收功能'); } else { diff --git a/app/Models/UserBot.php b/app/Models/UserBot.php index 2da645a66..5656caf25 100644 --- a/app/Models/UserBot.php +++ b/app/Models/UserBot.php @@ -300,14 +300,20 @@ class UserBot extends AbstractModel /** * 隐私机器人 * @param $command - * @return string + * @return array */ public static function anonBotQuickMsg($command) { return match ($command) { - "help" => "使用说明:打开你想要发匿名消息的个人对话,点击输入框右边的 ⊕ 号,选择 匿名消息 即可输入你想要发送的匿名消息内容。", - "privacy" => "匿名消息将通过 匿名消息(机器人) 发送给对方,不会记录你的身份信息。", - default => '', + "help" => [ + "title" => "匿名消息使用说明", + "content" => "使用说明:打开你想要发匿名消息的个人对话,点击输入框右边的 ⊕ 号,选择「匿名消息」即可输入你想要发送的匿名消息内容。" + ], + "privacy" => [ + "title" => "匿名消息隐私说明", + "content" => "匿名消息将通过「匿名消息(机器人)」发送给对方,不会记录你的身份信息。" + ], + default => [], }; } } diff --git a/app/Models/UserEmailVerification.php b/app/Models/UserEmailVerification.php index 15eaca172..e20ada5e4 100644 --- a/app/Models/UserEmailVerification.php +++ b/app/Models/UserEmailVerification.php @@ -93,7 +93,7 @@ class UserEmailVerification extends AbstractModel ->send(); } catch (\Throwable $e) { if (str_contains($e->getMessage(), "Timed Out")) { - throw new ApiException("language.TimedOut"); + throw new ApiException("邮件发送超时,请检查邮箱配置是否正确"); } elseif ($e->getCode() === 550) { throw new ApiException('邮件内容被拒绝,请检查邮箱是否开启接收功能'); } else { diff --git a/app/Tasks/BotReceiveMsgTask.php b/app/Tasks/BotReceiveMsgTask.php index 2ebb3ec2d..c3226499a 100644 --- a/app/Tasks/BotReceiveMsgTask.php +++ b/app/Tasks/BotReceiveMsgTask.php @@ -93,21 +93,22 @@ class BotReceiveMsgTask extends AbstractTask } // 签到机器人 if ($botUser->email === 'check-in@bot.system') { - $text = UserBot::checkinBotQuickMsg($command, $msg->userid); - if ($text) { + $content = UserBot::checkinBotQuickMsg($command, $msg->userid); + if ($content) { WebSocketDialogMsg::sendMsg(null, $msg->dialog_id, 'template', [ 'type' => 'content', - 'content' => $text, + 'content' => $content, ], $botUser->userid, false, false, true); // todo 未能在任务end事件来发送任务 } } // 隐私机器人 if ($botUser->email === 'anon-msg@bot.system') { - $text = UserBot::anonBotQuickMsg($command); - if ($text) { + $array = UserBot::anonBotQuickMsg($command); + if ($array) { WebSocketDialogMsg::sendMsg(null, $msg->dialog_id, 'template', [ 'type' => 'content', - 'content' => $text, + 'title' => $array['title'], + 'content' => $array['content'], ], $botUser->userid, false, false, true); // todo 未能在任务end事件来发送任务 } } @@ -118,10 +119,9 @@ class BotReceiveMsgTask extends AbstractTask } elseif (UserBot::whereBotId($botUser->userid)->whereUserid($msg->userid)->exists()) { $isManager = false; } else { - $text = "非常抱歉,我不是你的机器人,无法完成你的指令。"; WebSocketDialogMsg::sendMsg(null, $msg->dialog_id, 'template', [ 'type' => 'content', - 'content' => $text, + 'content' => "非常抱歉,我不是你的机器人,无法完成你的指令。", ], $botUser->userid, false, false, true); // todo 未能在任务end事件来发送任务 return; } diff --git a/resources/assets/js/pages/manage/components/DialogItem.vue b/resources/assets/js/pages/manage/components/DialogItem.vue index 62e153637..31149fbe9 100644 --- a/resources/assets/js/pages/manage/components/DialogItem.vue +++ b/resources/assets/js/pages/manage/components/DialogItem.vue @@ -26,7 +26,7 @@
- {{source.msg.notice}} + {{$L(source.msg.notice)}}