diff --git a/app/Http/Controllers/IndexController.php b/app/Http/Controllers/IndexController.php index 9d6a59d66..e542fad69 100755 --- a/app/Http/Controllers/IndexController.php +++ b/app/Http/Controllers/IndexController.php @@ -8,8 +8,6 @@ use Request; use Redirect; use Response; use App\Models\File; -use App\Models\User; -use App\Models\UserTransfer; use App\Module\Doo; use App\Module\Base; use App\Module\Extranet; @@ -502,43 +500,4 @@ class IndexController extends InvokeController $redirectUrl = Base::fillUrl("fileview/onlinePreview?url=" . urlencode(base64_encode($url))); return Redirect::to($redirectUrl, 301); } - - /** - * 修复操作离职后续操作(todo 临时,后期删除) - * @return array - */ - public function migration__userdialog() - { - if (Request::header('app-key') !== env('APP_KEY')) { - return Base::retError("key error"); - } - go(function() { - Coroutine::sleep(3); - $handled = []; - UserTransfer::orderBy('id')->chunkById(10, function ($transfers) use ($handled) { - /** @var UserTransfer $transfer */ - foreach ($transfers as $transfer) { - if (in_array($transfer->original_userid, $handled)) { - continue; - } - $handled[] = $transfer->original_userid; - // - $user = User::find($transfer->original_userid); - if ($user?->isDisable()) { - $transfer->exitDialog(); - } - } - }); - }); - return Base::retSuccess('success'); - } - - /** - * 保存配置 (todo 已废弃) - * @return string - */ - public function storage__synch() - { - return ''; - } } diff --git a/app/Models/WebSocketDialogSession.php b/app/Models/WebSocketDialogSession.php index 9d19b8228..f0911c952 100644 --- a/app/Models/WebSocketDialogSession.php +++ b/app/Models/WebSocketDialogSession.php @@ -3,8 +3,8 @@ namespace App\Models; use App\Module\Base; -use App\Module\Extranet; -use Swoole\Coroutine; +use App\Tasks\UpdateSessionTitleViaAiTask; +use Hhxsv5\LaravelS\Swoole\Task\Task; use Cache; /** @@ -82,18 +82,6 @@ class WebSocketDialogSession extends AbstractModel $session->title = $title; $session->save(); Cache::forever($cacheKey, true); - // 通过AI接口更新对话标题 - go(function () use ($session, $title, $originalTitle) { - Coroutine::sleep(0.1); - $res = Extranet::openAIGenerateTitle($originalTitle); - if (Base::isError($res)) { - return; - } - $newTitle = $res['data']; - if ($newTitle && $newTitle != $title) { - $session->title = Base::cutStr($newTitle, 100); - $session->save(); - } - }); + Task::deliver(new UpdateSessionTitleViaAiTask($session->id, $originalTitle)); } } diff --git a/app/Tasks/UpdateSessionTitleViaAiTask.php b/app/Tasks/UpdateSessionTitleViaAiTask.php new file mode 100644 index 000000000..c4ec0818c --- /dev/null +++ b/app/Tasks/UpdateSessionTitleViaAiTask.php @@ -0,0 +1,48 @@ +sessionId = $sessionId; + $this->msgText = $msgText; + } + + public function start() + { + if (empty($this->sessionId) || empty($this->msgText)) { + return; + } + + $session = WebSocketDialogSession::whereId($this->sessionId)->first(); + if (!$session) { + return; + } + + $res = Extranet::openAIGenerateTitle($this->msgText); + if (Base::isError($res)) { + return; + } + + $newTitle = $res['data']; + if ($newTitle && $newTitle != $session->title) { + $session->title = Base::cutStr($newTitle, 100); + $session->save(); + } + } + + public function end() + { + + } +}