From ef67dc144f36bb490bbf480567e35612a5e00947 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Wed, 16 Jul 2025 23:14:45 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=9C=BA=E5=99=A8?= =?UTF-8?q?=E4=BA=BA=E5=8F=91=E9=80=81=E6=B6=88=E6=81=AF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Api/DialogController.php | 17 ++++++++++++++--- app/Models/User.php | 4 ++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/Api/DialogController.php b/app/Http/Controllers/Api/DialogController.php index 59b9c221d..83862fe6a 100755 --- a/app/Http/Controllers/Api/DialogController.php +++ b/app/Http/Controllers/Api/DialogController.php @@ -1612,6 +1612,8 @@ class DialogController extends AbstractController * - check-in: 签到打卡 * - approval-alert: 审批 * - meeting-alert: 会议通知 + * - xxxxxx: 其他机器人,xxxxxx 是任意6-20个字符串(如果不存在,则自动创建) + * @apiParam {String} [bot_name] 机器人名称(bot_type 为 xxxxxx 时有效) * @apiParam {Boolean} [silence] 静默发送 * * @apiSuccess {Number} ret 返回状态码(1正确、0错误) @@ -1620,11 +1622,12 @@ class DialogController extends AbstractController */ public function msg__sendbot() { - User::auth(); + $user = User::auth(); // $userid = intval(Request::input('userid')); $text = trim(Request::input('text')); $botType = trim(Request::input('bot_type', 'system-msg')); + $botName = trim(Request::input('bot_name')); $silence = Request::input('silence', false); // $toUser = User::whereUserid($userid)->first(); @@ -1642,6 +1645,7 @@ class DialogController extends AbstractController return Base::retError('消息内容最大不能超过2000字'); } // + $botUpdate = []; if (!in_array($botType, [ 'system-msg', 'task-alert', @@ -1650,9 +1654,16 @@ class DialogController extends AbstractController 'meeting-alert', 'bot-manager', ])) { - return Base::retError('机器人类型错误'); + if (strlen($botType) < 6 || strlen($botType) > 20) { + return Base::retError("机器人类型由6-20个字符组成。"); + } + if ($botName && (strlen($botName) < 2 || strlen($botName) > 20)) { + return Base::retError("机器人名称由2-20个字符组成。"); + } + $botType = 'user-auto-' . $botType; + $botUpdate['nickname'] = $botName; } - $botUser = User::botGetOrCreate($botType); + $botUser = User::botGetOrCreate($botType, $botUpdate, $user->userid); if (empty($botUser)) { return Base::retError('机器人不存在'); } diff --git a/app/Models/User.php b/app/Models/User.php index a72e1ee59..a8e2a3191 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -753,11 +753,11 @@ class User extends AbstractModel } } if ($update) { - $botUser->updateInstance($update); - if (isset($update['nickname'])) { + if (isset($update['nickname']) && $botUser->nickname != $update['nickname']) { $botUser->az = Base::getFirstCharter($botUser->nickname); $botUser->pinyin = Base::cn2pinyin($botUser->nickname); } + $botUser->updateInstance($update); $botUser->save(); } return $botUser;